1,DML添加数据
a,给指定字段添加数据
insert into 表名(字段名1,字段名2,…) values(值1,值2,…);
eg:insert into employ (age)values(10);
b,给全部字段添加数据
insert into 表名 values(值1,值2,…);
eg:insert into employ (name,age)values("lfj",10);
c,批量添加数据
insert into 表名(字段名1,字段名2,…)values(值1,值2,…),(值1,值2,…);
eg:insert into employ(name, age) values ("ll",25),("wjg",25);
insert into 表名 values(值1,值2,…),(值1,值2,…),(值1,值2,…);
eg:insert into employ values("NB",10),("lo",88),("kl",666);
查询表的信息
select *from employ;
2,DML修改数据
update 表名 set 字段名1=值1,字段名2=值2,…[where 条件];如果没条件则会更改所有
eg:update employ set name="poooo" where age=25;
3,删除数据
delete from 表名 [where 条件];如果没条件则会删除所有
eg:delete from employ where age=25;
DQL查询数据
关键字select
基本查询
a,查询指定字段(用*查询所有字段)
select 字段名,字段名…form 表名;
eg:select id,sex from emp;
b,查询指定字段并起别名
select 字段名 as ‘别名’ from 表名;
eg:select id as 'NB' from emp;
c,查询不重复的使用关键字distinct
select distinct 字段 from 表名;
select distinct sex from emp;
条件查询
select 字段列表 from 表名 where 条件列表;
比较运算
大于
=大于等于
<小于
<=小于等于
=等于
不等于!=
在某个范围内 bettwen and
in(…) 在in之后的列表中的值,多选一
like 占位符 模糊匹配(匹配单个字符,%匹配任意个字符);
is NULL 是NULL
and 或 && 是逻辑与
or或|| 逻辑或
not 或! 非,不是
DQL聚合函数
count 统计数量
max最大值
min最小值
avg平均值
sum求和
eg:select sum(age) from emp where age>18 and age<50 ;
DQL分组查询
注意where与having的区别
执行时机不同:where是分组之前进行过滤,不满足where条件,不参与分组;而having是分组之后对结果进行过滤。
判断条件不同:where不能对聚合函数进行判断,而having可以。
select 字段列表 from 表名[where 条件]group by 分组字段名[having 分组后过滤条件];
eg:select sex,count(*),sex,avg(age) from emp where age>18 and age<50 group by sex having sex="男";
DQL排序查询
select 字段列表 from 表名 order by 字段1 排序方式,字段2,排序方式2;
排序关键字
asc:升序
desc:降序
注意:如果是多字段排序,当第一个字段值相同时,才会根据第二个字段进行排序
eg:select id,age from emp order by id asc,age desc;
DQL分页查询
select 字段列表 from 表名 limit 起始索引,查询记录数;
eg:select id from emp limit 0,10;
atention: 起始索引从0开始,起始索引=(查询页码-1)*每页记录数。分页查询是数据库的方言,不同的数据库有不同的实现,mysql中是limit。如果查询的是第一页数据,起始索引可以省略,直接简写为limit 10;
DQL的执行顺序
1,DQL编写顺序
select 字段列表
from 表名列表
where 条件列表
group by 分组字段列表
having 分组后条件列表
order by 排序字段列表
limit 分页参数
2,DQL执行顺序
from 表名列表
where 条件列表
group by 分组列表
having 分组后条件列表
select 字段列表
order by 排序字段列表
limit 分页参数
1用途,用来管理数据库用户,控制数据库的权限
DCL管理用户
1,查询用户
use mysal;
select * from user;
2,创建用户
create user ‘用户名’’@‘主机名 identified by ‘密码’;
3,修改用户密码
alter user ‘用户名’ ’@‘主机名’ identified with ‘密码’ mysql_native_password’新密码’;
4.删除用户
drop user ‘用户名’@’主机名‘
DCL权限控制
mySQL中定义了很多种权限,常用的权限
all,所有权限
select,查询数据
insert 插入数据
update 修改数据
delete 删除数据
alter 修改表
drop 删除数据库
create 创建数据库
语法
1,查询权限
show grants for ‘用户名’@’主机名‘;
2,授予权限
grant 权限列表 on 数据库名,表名 to ‘用户名’@’主机名‘;
3,撤销权限
remove 权限列表 on 数据库名,表名 from ‘用户名’@’主机名‘;