一、数据库
1、定义:对大量的信息进行管理的高效的解决方案,按照数据结构来组织、存储和管理数据的载体
数据库系统 = 数据库管理系统 + 数据库 + 数据库管理员
DataBase System (DBS) = DataBase Management System (DBMS) + DataBase(DB) + DataBase Administrator(DBA)
2、SQL语言
SQL:Structured Query Language,结构化查询语言,是一种关系型数据库操作语言,也是一种数据库编程语言。
3、分类
1)DDL:Data Definition Language,数据定义语言
主要是用来定义和维护数据库的各种操作对象,比如库、表、索引、视图,操作数据库的库和表的逻辑结构和存储结构
2)DML:Data Manipulation Language,数据操作语言
主要是对表中的记录进行增删改查的操作
3)DQL:Data Query Language,数据查询语言
4)DCL:Data Control Language,数据控制语言
主要是对数据库进行统一管理和统一控制,比如并发控制,存取控制,安全控制等;具体的有数据库的权限管理(创建用户,给用户分配权限,回收权限等),数据的
备份与恢复等!
二、开启MySQL服务器和客户端连接服务器
开启MySQL服务器:
1, 通过windows管理的方式进行开启(运行services.msc,找到mysql开启)
2, 通过dos命令行开启(net start mysql)
3, 直接使用bin目录下的mysqld来完成(mysqld --defaults-file=”D:webmysqlmy.ini”)
客户端连接服务器:
cmd下,输入:mysql –hlocalhost –P3306 –uroot –p回车,Enter password输入密码,回车即可连接服务器
通过help或h获取MySQL的帮助信息,另外,cmd下,Ctrl+C代表退出,在操作时特别小心,而Ctrl+V不起作用。
三、数据库操作
1、创建数据库(增)
create database 数据库名[数据库选项]
数据库选项主要有两个:一个是字符集,一个是校对规则
default charset gbk; collate 校对规则名字;(一般使用默认) 如:create database php2016 default charset utf8 collate utf8_bin;
每次创建一个数据库,都会在data目录下创建一个新的目录,新目录的名字就是数据库的名字
数据库名的命名规则:
1)数据库是否区分大小写取决于当前的当前的操作系统,原则上,认为区分大小写
2)数据库名最好采用下划线方式,尽量做到见名知意
3)原则上数据库名可以是使用任意的字符,甚至是中文,但是一些字符(比如中文、关键字、纯数字),应该使用标识限定符(即是按下键盘的Esc下面的键)来进行包
裹,不建议使用特殊字符的库名。
由于客户端默认的编码是gbk,而服务器默认的编码是utf8,因此需要设置命令:set names gbk;
2、查看数据库(查)
1)查看当前有哪些数据库:show databases;
2)查看创建的数据库语句:show create database 数据库名;
3、删除数据库(删)
drop database 数据库名; 慎重,将会删除此数据库的所有数据
4、修改数据库(改)
数据库的名称不可以修改!只能修改库选项信息!
alter database 数据库名 新的库选项; 如:alter database php2016 default charset gbk;
修改数据库名:先把当前数据表导出,创建一个新的数据库,把导出的数据表再全部导入,删除以前的数据库
四、数据表操作
有关数据表的任何操作都需要先指定其所属的数据库!
显示的指定数据库:create table php2016.test(number int);
指定默认的数据库:use php2016; 指定之后,后面的操作如果省略库名,则默认操作当前数据表
1、创建数据表(增)
create table 表名(
字段1 字段1类型,
字段2 字段2类型,
字段3 字段3类型,
字段n 字段n类型
)表选项信息;
如果肯定会涉及到中文,表选项可以一同设置:default charset gbk; 表选项信息其实就是规定表的字符集与存储引擎
2、查看数据表(查)
1) 查询当前数据库下有哪些数据表:show tables;
2) 模糊查询:show tables like 'class%'; 查找带有class开头的数据表名
数据表名带引号通配符:_可以代表任意的单个字符,%可以代表任意的字符
3) 查看创建的表的语句:show create table 表名; 有时用G来取代分号来查看更有条理的结果
4) 查看表结构:desc 表名;
3、删除数据表(删)
drop table 表名;
如果删除一个不存在的表会报错,使用完整语法drop table if exists 表名; 在删除之前需要进行一次判断,判断该表是否存在,如果不存在,既不执行也不报错!
4、修改数据表(改)
修改命令以(上级命令+下级命令)来记忆
上级命令:alter table 表名
1) 修改表名
alter table 旧表名 rename to 新表名; 或者:rename table 旧表名 to 新表名;
可以利用rename语法实现数据库的重命名:
① 先创建一个新的数据库
② 把旧数据库下所有的表全部rename到新数据库下
③ 删除旧数据库
2) 修改列定义
增加:add
删除:drop
重命名:change
修改:modify
① 增加一列:alter table 表名 add 新列名 字段类型;
alter table php_test add age tinyint;
alter table php20 add (age int,sex char(1));
② 删除一列:alter table 表名 drop 字段名;
alter table php_test drop score;
③ 修改字段类型:alter table 表名 modify 字段名 新的数据类型;
alter table php_test modify age int;
④ 修改字段排序:alter table 表名 modify 字段名 数据类型 first;
alter table php_test modify number tinyint first;
alter table 表名 modify 字段名1 数据类型 after 字段名2; 把字段名1放在字段名2的后面
alter table php_test modify name varchar(20) after number;
⑤ 重命名字段类型:alter table 表名 change 原字段名 新字段名 新字段类型;
alter table php_test change number id int;
3) 修改表选项
① alter table 表名 表选项信息;
alter table php_test default charset gbk;
② alter table php_test engine Myisam; -- 修改存储引擎
默认InnoDB
五、数据操作
1、 插入数据(增):insert into 表名(字段列表) values(值列表);
insert into php22(username,age) values
('张三',23),
('李四',24),
('王五',25);
2、 查询数据(查):select *|字段列表 from 表名[查询条件];
select * from student where 1;
3、 删除数据(删):delete from 表名[删除条件];
delete from student where 1;where 1表示条件都满足,即全部删除,删除条件最好不省略
4, 修改数据(改):update 表名 set 字段1=新值1,字段2=新值2……[修改条件];
update php20 set username = '张山' where username = '张三';
update student set stu_age = stu_age + 1 where 1;
六、总结数据库三步走:
1、create database php22 default charset gbk;
2、set names gbk;
3、use php22;
操作命令较多,多复习多使用,重复多了自然就记住了。
在登陆数据库时,使用mysql --default-character-set=latin1 -u用户名 -p密码,可以解决数据的对齐问题。