分类:
- ddl 数据定义语言:操作数据库和表结构 data define language
- dml 数据操作语言:操作数据记录–增删改
- dql数据查询语言:查询数据记录
- dcl数据控制语言:用户权限的控制–授权和撤销权限
ddl学习
C (Create):创建
创建数据库
create databases 数据库名;
创建数据库前先判断是否存在
create database if not exists 数据库名;
创建数据库,判断是否存在,并指定字符集
create database if not exists 数据库名 character set 字符集
R (Retrieve):查询
查询所有数据库的名称
show databases;
查询某个数据库的字符集–其实是查询数据库的创建sql语句
show create database db1(数据库名);
U(Update):修改
删除数据库
drop database db1(数据库名);
使用数据库
查询当前正在使用的数据库名称
select database();
- ddl操作表
- 查询
查询某个数据库中所有的表名称
- 查询
show tables;
查询表结构
desc 表名;
查询表的创建语句
show create table 表名;
2.创建
创建表
create table 表名(
列名1 数据类型1,
列名2 数据类型2,
......
列名n 数据类型n
);
注意:最后一列,不需要加逗号
`
3.删除表
1. drop table 表名
2. drop table if exists 表名
4.修改
修改表名
alter table 表名 rename to 新表名
修改表的字符集
-- 查看表的字符集,其实是查看表的创建语句
show create table 表名;
-- 修改表的字符集
alter table 表名 character set 字符集;
修改列
添加一列
alter table 表名 add 列名 数据类型;
修改列类型
alter table 表名 modify 列名 数据类型;
删除列
alter table 表名 drop 列名;
dml学习
- 添加数据
insert into 表名 (列名1,列名2,…列名n) values (值1,值2,…值n);
注意:
1.值要和列名要一一一对应,有几个列就要有几个值
2.添加全部字段数据时,列名部分可以省略,即:
insert into 表名 values (值1,值2,...值n);
添加部分字段
insert into 表名 (列名1,列名2,列名3,...) values (值1,值2,值3,...);
注意:
1.值必须和列名对应
2.列名可以不是连续的
3.列名可以不按照表结构中的顺序,但通常建议按照先后顺序
4.添加部分字段时,列名不能省略
5.没有添加数据的字段默认使用null填充
批量添加数据
-- 分析:属于添加部分字段
insert into emp (id,name,age,sex) values
(2,'张三',3,'男'),(3,'李四',26,'男'),(4,'王五',27,'女')
-- 批量新增语法
insert into 表名 (字段1,字段2,...) values (值1,值2,...),(值1,值2,...),(值1,值2,...)
2.删除数据
.删除满足条件的数据
delete from 表名 [where 条件];
注意:
1.如果不加条件,则删除表中所有的数据
eg:
delete from emp1;
delete from emp1 where true;
delete from emp1 where 1=1;
删除表中的所有数据
truncate table 表名;
两种删除所有数据的方法:
1.truncate方式,先删除整个表,再创建一张同样结构的表,执行效率高,推荐使用。
2.delete from 表名 ,不带条件,有多少条记录就会执行多少次删除操作,效率不高,不推荐。
- 修改数据
语法
update 表名 set 列名1=值1, 列名2=值2, ... [where 条件];
dql学习
完整的查询语法
select
字段列表
from
表名列表
where
条件列表
group by
分组字段
having
分组之后的条件
order by
排序
limit
分页限定
基础查询
多个字段查询
select 字段名1,字段名2... from 表名;
去除重复
关键字 distinct
直接放在select后面
四则运算
一般可以使用四则运算计算一些列的值。(一般只会进行数值型的计算)
ifnull(表达式1,表达式2):null参与的运算,计算结果都为null
表达式1:哪个字段需要判断是否为null
如果该字段为null后的替换值。
起别名
字段名 后写关键字 as 或省略as 直接用空格
条件查询
- where和 运算符 构成查询条件
> 、< 、<= 、>= 、= 、<>
BETWEEN...AND
IN( 集合)
LIKE:模糊查询
占位符:
_:单个任意字符
%:多个任意字符
IS NULL
and 或 &&
or 或 ||
not 或 !
模糊查询
使用关键字 like
通配符:
_ 匹配一个字符
% 匹配0-n个字符