1.SQL(Structure Query Language):结构化查询语言
2.SQL分类:DCL(数据控制语言),DDL(数据定义语言),DML(数据操作语言)
2.1 DCL(数据控制语言): 常见的关键字revoke、grant。
DDL(数据定义语言):常见的关键字create、alter、drop。
DML(数据操作语言):常见的关键字select、insert、update、delete。
2.2 DDL(数据定义语言)与DML(数据操作语言)的区别:
DDL是对数据库对象的操作,可以理解为建表然后对表的字段等进行修改,一般由DBA完成;
DML是对数据库对象中的数据进行操作,可以理解为更新表中的值,像表插入某值等。
2.3 DDL(数据定义语言)
2.3.1 创建数据库
create database 数据库名
For example:create database blog;
2.3.2 删除数据库
drop database 数据库名;
2.3.3 使用数据库
如果数据库存在多个,可以通过 show databases; 语句来查看存在的数据库;然后通过use 数据库名 ; 来选定所需使用的数据库。
2.3.4 创建表
create table 表名(字段名,字段的类型,其它条件); 其它条件指:null / not null ;primary key ;character set 字符编码集等,关于字段类型的说明,接下来会详细讲解。
For example: create table Student(Sname varchar(200));
2.3.5 删除表
drop table 表名;
注意:drop与delete的区别:drop把整张表都删除,删除时须谨慎;delete删除表中的值,表结构还存在;
For example: drop table Student; //执行后,数据库中不存在此表;
delete from Student ; //执行后,此表中原有的数据被删除,但此表在数据库中仍存在;也可以使用where进行指定删除;
2.3.6 修改已创建的表
2.3.6.1 在原表的基础上加入某字段:修改表通过alter ,增加字段通过add
For example:alter table Student add Ssex varchar(200) character set utf8 not null ; //在Student表增加一个不为空且编码集为utf8的Ssex字段(列)
2.3.6.2 修改列名:通过alter和modify/change
For example:alter table Student modify Sname Susername ; //把Studen表中的Sname字段修改为Susername;
alter table Student change Sname Susername varchar(255); //把Student表中的Sname字段的类型varchar(200) 修改varchar(255)
2.3.6.3 删除字段:通过alter 和drop
For example:alter table Student drop column Sname; //删除Student表中的Sname列
2.3.6.4 add/modify/change
注意:modify和change的区别:modify一般用来更改列名;change用来更改列名或者类型等。
add/modify/change可以与first/after/before联用
For example:alter table Student add Ssex varchar(200) character set utf8 not null after id; //增加的列Ssex放在id字段之后,即按字段从左往后的顺序排在第二
alter table Student modify Sname Susername first; //更改后的字段名,即按字段从左往后的顺序排在第一。
2.4 DML(数据操作语言)
2.4.1 insert:插入数据;insert into 表名(字段名,...) values('值', .... ..);
For example :insert into Student values('王老师'); //注意:当字段名未给出时,所给的值需和字段名一一对应;
insert into Student (Sname) valeus('老师'); //假设此表有多个字段,像Sname字段插入”老师“一值,其余的默认为NULL;
2.4.2 update 表名 set 字段=‘更新的值’ where 条件;
For example:update Student set Sname= '小王老师' where Sname='王老师'; //将Sname为”王老师“的值,替换成”小王老师“
2.4.3 delete from 表名
For example:delete from Student; //删除Student表中的所有数据
delete from Student where Sname=' 小王老师'; //删除Sname为“小王老师”的记录;
2.4.4 select :select 字段名 from 表名;
For example:select * from Student; //选择Studnent中的所有字段名;如果选择所有的字段名可以把字段名一一列出或者用*代替;
补充:
2.4.4.1 使用distinct关键字,去除重复的记录
For example:select distinct Sname from Student; //去除Student表中Sname字段重复的值,并显示;
2.4.4.2 聚合函数
SUM—求和 AVG —求平均值 MAX —求最大值 MIN—求最小值 COUNT—求个数
For example: select count(Sname) from Student; //求老师的总人数
select avg(Sage) from Student; //求年龄的平均值
select max(Sage) from Student; //求年龄的最大值
select min(Sage) from Student; //求年龄的最小值
select sum(Sage) from Student; //求年龄的总和
2.4.4.3 条件判断
〉 , 〉= ,〈= , != , between and........与where 联合使用
2.4.4.4 排序、分组
排序:order by dec/asc //dec:降序;asc:默认值,升序
分组: group by.....having..........
注:where和having的区别
where:先选取结果集,having:对选取的结果集再一次过滤
2.4.4.5 表合并
union和union all;注意:两者的区别:union all 将两表的数据合在一起;union:将两表的数据出去重复的后,在合并。