网站安全如何做,做网站学什么语言好,建网站需要买什么,4366网页游戏1. 数据库基础
1.1 什么是数据库
存储数据用文件就可以了#xff0c;为什么还要弄个数据库? 文件保存数据有以下几个缺点#xff1a;
文件的安全性问题文件不利于数据查询和管理文件不利于存储海量数据文件在程序中控制不方便 数据库存储介质#xff1a;磁盘内存 为了解…1. 数据库基础
1.1 什么是数据库
存储数据用文件就可以了为什么还要弄个数据库? 文件保存数据有以下几个缺点
文件的安全性问题文件不利于数据查询和管理文件不利于存储海量数据文件在程序中控制不方便 数据库存储介质磁盘内存 为了解决上述问题专家们设计出更加利于管理数据的东西——数据库它能更有效的管理数据。
1.2 主流数据库
SQL Sever 微软的产品.Net程序员的最爱中大型项目。Oracle 甲骨文产品适合大型项目复杂的业务逻辑并发一般来说不如MySQL。MySQL世界上最受欢迎的数据库属于甲骨文并发性好不适合做复杂的业务。主要用在电商SNS论坛。对简单的SQL处理效果好。PostgreSQL :加州大学伯克利分校计算机系开发的关系型数据库不管是私用商用还是学术研究使用可以免费使用修改和分发。SQLite 是一款轻型的数据库是遵守ACID的关系型数据库管理系统它包含在一个相对小的C库中。它的设计目标是嵌入式的而且目前已经在很多嵌入式产品中使用了它它占用资源非常的低在嵌入式设备中可能只需要几百K的内存就够了。H2 是一个用Java开发的嵌入式数据库它本身只是一个类库可以直接嵌入到应用项目中。
1.3 基本使用
1.3.1 MySQL安装
Centos 6.5下编译安装MySQL 5.6.14 CentOS 7 通过 yum 安装 MariaDB Windows下安装MySQL5.7 Windows下安装MySQL5.7
1.3.2 配置文件
配置数据库客户端和服务器的编码格式网络连接所需用的端口数据库所用的引擎等
vim /etc/my.cnf数据库存放的地址/var/lib/mysql
1.3.3启动服务
systemctl start mysqld.service启动的是服务器用mysqld表示启动之后用mysql客户端去链接。 修改完配置文件后要重新启动
systemctl restart mysqld.service查看启动服务
ps -axj | grep mysqld设置开机启动[可以不设]
#开启开机⾃启动
systemctl enable mysqld
systemctl daemon-reload1.3.4 连接服务器
mysql -h 127.0.0.1 -P 3306 -u root -p免密码是因为在上面配置文件中加入了skip-grant-tables 注意
如果没有写 -h 127.0.0.1 默认是连接本地如果没有写 -P 3306 默认是连接3306端口号
1.3.5 服务器数据库表关系
所谓安装数据库服务器只是在机器上安装了一个数据库管理系统程序这个管理程序可以管理多个数据库一般开发人员会针对每一个应用创建一个数据库。为保存应用中实体的数据一般会在数据库中创建多个表以保存程序中实体的数据。数据库服务器、数据库和表的关系如下 MySQL本质基于C(mysql客户端)S(mysqld服务器)模式的一种网络服务 mysql是一套给我提供数据存取服务的网络程序 数据库一般指的是在磁盘或者内存中存储的特定结构组织的数据 – 将来在磁盘中存储的一套数据库方案 数据库服务mysqld 为什么使用数据库? 一般的文件只提供的数据的存储功能但是文件并没有提供很好的对数据内容的管理功能数据库本质起到了对内容进行操作的功能
1.3.6 使用案例
创建数据库 create database helloworld;使用数据库 use helloworld;创建数据库表 create table student( id int, name varchar(32), gender varchar(2) );表中插入数据
insert into student (id, name, gender) values (1, 张三, 男);
insert into student (id, name, gender) values (2, 李四, 女);
insert into student (id, name, gender) values (3, 王五, 男);查询表中的数据 select * from student;
建立数据库本质上就是Linux下的一个目录在数据库内建立表本质就是在Linux下创建对应的文件数据库本质上就是一个文件不过这个文件不是由我们操作而是由数据库服务进行操作
1.3.7 数据逻辑存储 1.4 MySQL架构 1.5 SQL分类
DDL【data definition language】 数据定义语言用来维护存储数据的结构 代表指令: create, drop, alterDML【data manipulation language】 数据操纵语言用来对数据进行操作 代表指令 insertdeleteupdate DML中又单独分了一个DQL数据查询语言代表指令 select DCL【Data Control Language】 数据控制语言主要负责权限管理和事务 代表指令 grantrevokecommit
1.6 存储引擎
1.6.1 存储引擎
存储引擎是数据库管理系统如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。 MySQL的核心就是插件式存储引擎支持多种存储引擎。
1.6.2 查看存储引擎
show engines;1.6.3 存储引擎对比 2.库的操作
2.1 创建数据库
语法
CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [,create_specification] ...]
create_specification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name说明
大写的表示关键字[] 是可选项CHARACTER SET: 指定数据库采用的字符集COLLATE: 指定数据库字符集的校验规则
2.2 创建数据库案例
创建名为 db1 的数据库
create database db1;说明当我们创建数据库没有指定字符集和校验规则时系统使用默认字符集utf8校验规则是utf8_ general_ ci
创建一个使用utf8字符集的 db2 数据库
create database db2 charsetutf8;创建一个使用utf字符集并带校对规则的 db3 数据库。
create database db3 charsetutf8 collate utf8_general_ci;2.3 字符集和校验规则
2.3.1 查看系统默认字符集以及校验规则
show variables like character_set_database;
show variables like collation_database;2.3.2 查看数据库支持的字符集
show charset;字符集主要是控制用什么语言。比如utf8就可以使用中文.
2.3.3 查看数据库支持的字符集校验规则
show collation;2.3.4 校验规则对数据库的影响
不区分大小写 创建一个数据库校验规则使用utf8_ general_ ci[不区分大小写]
create database test1 collate utf8_general_ci;use test1;create table person(name varchar(20));insert into person values(a);
insert into person values(A);
insert into person values(b);
insert into person values(B);区分大小写 创建一个数据库校验规则使用utf8_ bin[区分大小写]
create database test2 collate utf8_bin;use test2create table person(name varchar(20));insert into person values(a);
insert into person values(A);
insert into person values(b);
insert into person values(B);进行查询 不区分大小写的查询以及结果
mysql use test1;
mysql select * from person where namea;区分大小写的查询以及结果
mysql use test2;
mysql select * from person where namea;结果排序 不区分大小写排序以及结果
mysql use test1;
mysql select * from person order by name;mysql use test2;
mysql select * from person order by name;2.4 操纵数据库
2.4.1 查看数据库
show databases;显示创建语句
show create database 数据库名示例 说明
MySQL 建议我们关键字使用大写但是不是必须的。数据库名字的反引号,是为了防止使用的数据库名刚好是关键字/*!40100 default.... */ 这个不是注释表示当前mysql版本大于4.01版本就执行这句话
2.4.2 修改数据库
语法
ALTER DATABASE db_name [alter_spacification [,alter_spacification]...]
alter_spacification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name说明对数据库的修改主要指的是修改数据库的字符集校验规则 实例 将 test1 数据库字符集改成 gbk
mysql alter database test1 charsetgbk;2.4.3 数据库删除
DROP DATABASE [IF EXISTS] db_ name;执行删除之后的结果:
数据库内部看不到对应的数据库对应的数据库文件夹被删除级联删除里面的数据表全部被删 注意不要随意删除数据库
2.4.4 备份和恢复
2.4.4.1 备份
语法
# mysqldump -P3306 -u root -p 密码 -B 数据库名 数据库备份存储的文件路径示例将mytest库备份到文件退出连接
# mysqldump -P3306 -u root -p -B test1 ./mytest.sql这时可以打开看看 mytest.sql 文件里的内容其实把我们整个创建数据库建表导入数据的语句都装载这个文件中。
2.4.4.2 还原
source /home/dgz/linux/test/mytest.sql;2.4.4.3 注意事项
如果备份的不是整个数据库而是其中的一张表怎么做
# mysqldump -u root -p 数据库名 表名1 表名2 ./mytest.sql同时备份多个数据库
# mysqldump -u root -p -B 数据库名1 数据库名2 ... 数据库存放路径如果备份一个数据库时没有带上-B参数 在恢复数据库时需要先创建空数据库然后使用数据库再使用source来还原。
2.4.5 查看连接情况
语法
show processlist可以告诉我们当前有哪些用户连接到我们的MySQL如果查出某个用户不是你正常登陆的很有可能你的数据库被人入侵了。以后大家发现自己数据库比较慢时可以用这个指令来查看数据库连接情况。
2.4.6 查看现在正在使用哪个数据库
select database();不要随便删除库改库名
3. 表的操作
3.1 创建表
语法
create table table_name (
field1 datatype,
field2 datatype,
field3 datatype
) character set 字符集 collate 校验规则 engine 存储引擎;说明
field 表示列名datatype 表示列的类型character set 字符集如果没有指定字符集则以所在数据库的字符集为准collate 校验规则如果没有指定校验规则则以所在数据库的校验规则为准
3.2 创建表案例
create table users (
id int,
name varchar(20) comment 用户名,
password char(32) comment 密码,
birthday date comment 生日
) character set utf8 engine MyISAM;说明 不同的存储引擎创建表的文件不一样。 users 表存储引擎是 MyISAM 在数据目中有三个不同的文件分别是
users.frm表结构users.MYD表数据users.MYI表索引 创建一个engine是innodb的数据库观察存储目录
3.3 查看表结构
desc 表名;3.4 查看该数据库下有多少表 3.5 修改表
在项目实际开发中经常修改某个表的结构比如字段名字字段大小字段类型表的字符集类型表的存储引擎等等。我们还有需求添加字段删除字段等等。这时我们就需要修改表。
ALTER TABLE tablename ADD (column datatype [DEFAULT expr][,columndatatype]...);
ALTER TABLE tablename MODIfy (column datatype [DEFAULT expr][,columndatatype]...);
ALTER TABLE tablename DROP (column);案例 在users表添加二条记录
mysql insert into users values(1,a,b,1982-01-04),(2,b,c,1984-01-04);在users表添加一个字段用于保存图片路径
mysql alter table users add assets varchar(100) comment 图片路径 after birthday;插入新字段后对原来表中的数据没有影响 修改name将其长度改成60
mysql alter table users modify name varchar(60);删除password列 注意删除字段一定要小心删除字段及其对应的列数据都没了
mysql alter table users drop password;修改表名为employee
mysql alter table users rename to employee;to可以省掉 将name列修改为xingming
mysql alter table employee change name xingming varchar(60); --新字段需要完整定义3.6 查看创建表的全部属性
show create table employee \G\G 用于格式化显示
3.7 删除表
语法格式
DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...示例
drop table user1;
文章转载自: http://www.morning.ftznb.cn.gov.cn.ftznb.cn http://www.morning.ypcd.cn.gov.cn.ypcd.cn http://www.morning.hyhqd.cn.gov.cn.hyhqd.cn http://www.morning.kdrly.cn.gov.cn.kdrly.cn http://www.morning.dkzwx.cn.gov.cn.dkzwx.cn http://www.morning.kbgzj.cn.gov.cn.kbgzj.cn http://www.morning.cmhkt.cn.gov.cn.cmhkt.cn http://www.morning.xhkgl.cn.gov.cn.xhkgl.cn http://www.morning.fpkdd.cn.gov.cn.fpkdd.cn http://www.morning.gfhng.cn.gov.cn.gfhng.cn http://www.morning.trffl.cn.gov.cn.trffl.cn http://www.morning.rttkl.cn.gov.cn.rttkl.cn http://www.morning.drytb.cn.gov.cn.drytb.cn http://www.morning.sjbpg.cn.gov.cn.sjbpg.cn http://www.morning.gcjhh.cn.gov.cn.gcjhh.cn http://www.morning.lbhck.cn.gov.cn.lbhck.cn http://www.morning.bpmnh.cn.gov.cn.bpmnh.cn http://www.morning.shuanga.com.cn.gov.cn.shuanga.com.cn http://www.morning.rltsx.cn.gov.cn.rltsx.cn http://www.morning.rqsr.cn.gov.cn.rqsr.cn http://www.morning.wjndl.cn.gov.cn.wjndl.cn http://www.morning.nydtt.cn.gov.cn.nydtt.cn http://www.morning.xrpwk.cn.gov.cn.xrpwk.cn http://www.morning.wsjnr.cn.gov.cn.wsjnr.cn http://www.morning.bybhj.cn.gov.cn.bybhj.cn http://www.morning.qbrs.cn.gov.cn.qbrs.cn http://www.morning.spwm.cn.gov.cn.spwm.cn http://www.morning.gtmgl.cn.gov.cn.gtmgl.cn http://www.morning.sxhdzyw.com.gov.cn.sxhdzyw.com http://www.morning.gjlxn.cn.gov.cn.gjlxn.cn http://www.morning.tkzrh.cn.gov.cn.tkzrh.cn http://www.morning.pqkgb.cn.gov.cn.pqkgb.cn http://www.morning.nnwmd.cn.gov.cn.nnwmd.cn http://www.morning.yszrk.cn.gov.cn.yszrk.cn http://www.morning.mqwdh.cn.gov.cn.mqwdh.cn http://www.morning.tqfnf.cn.gov.cn.tqfnf.cn http://www.morning.jfqpc.cn.gov.cn.jfqpc.cn http://www.morning.wklmj.cn.gov.cn.wklmj.cn http://www.morning.tlpsd.cn.gov.cn.tlpsd.cn http://www.morning.ydtdn.cn.gov.cn.ydtdn.cn http://www.morning.rxnxl.cn.gov.cn.rxnxl.cn http://www.morning.xbkcr.cn.gov.cn.xbkcr.cn http://www.morning.cthrb.cn.gov.cn.cthrb.cn http://www.morning.bqts.cn.gov.cn.bqts.cn http://www.morning.jhqcr.cn.gov.cn.jhqcr.cn http://www.morning.hwcln.cn.gov.cn.hwcln.cn http://www.morning.zmyhn.cn.gov.cn.zmyhn.cn http://www.morning.jzklb.cn.gov.cn.jzklb.cn http://www.morning.yrngx.cn.gov.cn.yrngx.cn http://www.morning.mzqhb.cn.gov.cn.mzqhb.cn http://www.morning.trhrk.cn.gov.cn.trhrk.cn http://www.morning.wmglg.cn.gov.cn.wmglg.cn http://www.morning.mlwpr.cn.gov.cn.mlwpr.cn http://www.morning.cpljq.cn.gov.cn.cpljq.cn http://www.morning.qkpzq.cn.gov.cn.qkpzq.cn http://www.morning.sgtq.cn.gov.cn.sgtq.cn http://www.morning.lnbcx.cn.gov.cn.lnbcx.cn http://www.morning.bswhr.cn.gov.cn.bswhr.cn http://www.morning.khxyx.cn.gov.cn.khxyx.cn http://www.morning.ryyjw.cn.gov.cn.ryyjw.cn http://www.morning.prxqd.cn.gov.cn.prxqd.cn http://www.morning.mszls.cn.gov.cn.mszls.cn http://www.morning.cczrw.cn.gov.cn.cczrw.cn http://www.morning.clqpj.cn.gov.cn.clqpj.cn http://www.morning.nfbkp.cn.gov.cn.nfbkp.cn http://www.morning.wqfzx.cn.gov.cn.wqfzx.cn http://www.morning.yzsdp.cn.gov.cn.yzsdp.cn http://www.morning.rnsjp.cn.gov.cn.rnsjp.cn http://www.morning.pjxw.cn.gov.cn.pjxw.cn http://www.morning.wrtxk.cn.gov.cn.wrtxk.cn http://www.morning.mfmbn.cn.gov.cn.mfmbn.cn http://www.morning.cttti.com.gov.cn.cttti.com http://www.morning.yqqxj1.cn.gov.cn.yqqxj1.cn http://www.morning.xczyj.cn.gov.cn.xczyj.cn http://www.morning.hrqfl.cn.gov.cn.hrqfl.cn http://www.morning.pmnn.cn.gov.cn.pmnn.cn http://www.morning.zttjs.cn.gov.cn.zttjs.cn http://www.morning.lxfqc.cn.gov.cn.lxfqc.cn http://www.morning.rgrdd.cn.gov.cn.rgrdd.cn http://www.morning.bsqth.cn.gov.cn.bsqth.cn