一、SQL语句的分类
1、DDL:数据定义语言,用来定义数据库对象:数据库、表、列。
关键字:create、alter、drop、show等
2、DML:数据库操作语言,用于对数据库中表的记录进行更新。
关键字:insert、delete、update等
3、DQL:数据查询语言,用来查询数据库中表的记录。
关键字:select、from、where等
4、DCL:数据控制语言:用来定义数据的访问权限和安全级别。
二、数据库的操作
1、创建数据库
格式:
create database 库名;
create database 库名 character set 编码;
2、删除数据库
格式:
drop database 库名;
3、查询数据库
格式:
show databases;
4、使用(切换)数据库
明确想要使用的是哪一个数据库
格式:
use 库名;
5、查看数据库的定义信息
格式:
show create database 库名;
6、查看正在使用的数据库
格式:
select database();
三、表的操作
1、创建表
格式:
create table 表名(字段名 类型(长度)约束,字段名 类型(长度)约束,...);
2、删除表
格式:
drop table 表名;
3、查看表
格式:
show tables;
4、查看表结构
格式:
desc 表名;
5、查看表的定义信息
格式:
show create table 表名;
6、添加列(新字段)
格式:
alter table 表名 add 列名 类型(长度) 约束;
7、修改列的类型、长度、约束
格式:
alter table 表名 modify 列名 类型(长度) 约束;
8、修改列名
格式:
alter table 表名 change 旧列名 新列名 类型(长度) 约束;
9、删除列(删除字段)
格式:
alter table 表名 drop 列名;
10、修改表的编码
格式:
alter table 表名 character set 编码;
11、修改表名
格式:
rename table 旧表名 to 新表名;
四、记录的操作
1、插入记录
格式:
①insert into 表名(字段1,字段2,...) values (值1,值2,...);
向记录中部分字段添加数据
②insert into 表名 values (值1,值2,...);
向记录中的所有字段添加数据
2、删除记录
格式:
①delete from 表名;
删除表中的所有记录;
②delete from 表名 where 条件;
根据条件删除指定记录;
3、修改更新记录
格式:
①update 表名 set 字段名=字段值,字段名=字段值,...;
修改所有记录的某些字段值;
②update 表名 set 字段名=字段值 where 字段名=字段值;
根据条件修改指定记录的字段值;
4、查询记录
格式:
①select * from 表名;
查询全部数据;
②select 字段1,字段2,... from 表名;
查询记录的指定字段信息;
③select 字段1,字段2,... from 表名 where 条件;
根据条件查询指定记录的指定字段信息;
去除重复记录显示查询的字段
格式:
①select distinct 字段 from 表名;
去除重复记录;
②select distinct 字段1,字段2 from 表名;
去除多个条件重复的记录
五、约束
1、主键约束
主键是用来标识当前记录的字段。
特点:非空、唯一
格式:
①在字段类型后面加上 primary key
create table 表名 (字段名 类型(长度)primary key);
②在创建表的末尾指定主键
create table 表名 (字段名1 类型(长度),字段名2 类型(长度),...,primary key(字段名));
③主键约束自增长:
在primary key之后auto_increment
create table 表名 (字段名 类型(长度)primary key auto_increment);
2、非空约束
格式:
在字段类型后面加上not null
create table 表名 (字段名1 类型(长度),字段名2 类型(长度)not null,...);
3、唯一约束
格式:
在字段类型后面加上unique
create table 表名 (字段名1 类型(长度),字段名2 类型(长度)unique,...);
六、删除记录的其他问题
truncate table 表名;
特点:
1、删除所有记录
2、主键自增长的的情况下:
delete删除所有数据后添加新数据,新数据的主键继续自增长;
truncate删除所有数据后添加新数据,新数据的主键从1重新开始自增长;
原因:
delete删除所有数据的本质是逐条删除;
truncate删除所有数据的本质是直接将表删除然后重新构建一个结构一模一样的表;
七、条件
1、比较运算符
① >、<、=、>=、<=、!=、<>
② between and(取值包含头尾)
例如:
select * from 表名 where eage between 30 and 60;
查询年龄在30~60之间的员工(包含30、60)
update e set
③in(列表)
查询包含在列表中的数据
例如:
select * from 表名 where 字段名 in(值1,值2,...);
查询为...的信息
select * from 表名 where 字段名 not in(值1,值2,...);
查询不为...的信息
④is null
判断是否为空
例如:
updata e set eage=-1 where eage is null;
将eage没有赋值的员工的eage赋值为-1;
select * from e where esalary is not null;
查询工资字段不为空的员工
注意:字段为0不等于字段为null,0的判断用“=0”,null的判断用“is null”
⑤like
模糊查询
格式:
select * from e where ename like “a_”;
select * from e where ename like “a%”;
注意:一个下划线匹配一个字符,一个“%”匹配任意个字符
2、逻辑运算
①and(&&)
②or(||)
③not(!)