数据库操作(DML,DCL,DQL)

DML(数据操作语言)

插入数据
insert into mystu values(3,'zzw',16,'girls','england');

修改数据
update 表名 set 列名1=列值1,列名2=列值2,…[where 条件]
update mystu set sgender='boy' where sname='zhangsan';
条件
1)条件必须是一个boolean类型的值或表达式
2)运算符:=、!=、<>、>、<、>=、<=、between…and…、in(…)、is null 、not 、or 、and
where age >=18 and age<=80
where age between 18 and 80
where name='张三' or name='lisi'
where name in ('zhangsan','lisi')
where age is not null

删除数据
delete from mystu where sname='lisi';

DCL(数据控制语言)

字段(列)控制
1)查询所有列
select * from 表名;"*"表示查询所有列
2)查询指定列
select 列1[,列2,列3...列N]from 表名;
例:查询员工对应的工种
select ename,job from emp;
3)完全重复的记录只出现一次
select distinct 列名 from 表名;
例:查询公司所有的工种
select distinct job from emp;
4)列运算
(1)数量类型的列可以做加、减、乘、除运算
select sal*1.4 from emp;
select sal+comm from emp;
(2)字符串类型可以做连接运算
select concat(sal,'$') from emp;
mysql 不能用“+”连接字符串
(3)转换NULL值
ifnull(列值,转换值)
有时存在null值,进行运算的结果还是null,希望当成其他值来运算
(4)给列起别名
对列进行运算后,查询出的结果集中的列名称不好看,这时需要给列名起一个别名,使用“as”起别名,as可以省略

条件控制
1)条件查询
与uodate和delete一样,select语句可以使用where子句来控制记录
2)模糊查询
"_"匹配一个任意字符
"%"匹配0~N个任意字符
模糊查询需要使用运算符:like
例1:
select ename from emp where ename like '周_';
查询所有姓"周"的员工(姓名只有两个字)
例2:
select ename from emp where ename like '%杰%';
查询名字中包含"杰"的员工

DQL(数据查询语言)

排序(使用多列作为排序条件)
1)升序 asc
2)降序 desc
3)排序使用关键字 order by
order by 规则1,规则2...规则n(规则: 列名 升序/降序)
例1:
select * from emp order by empno asc;
查询所有员工的信息,按照工号升序排列
例2:
select * from emp order sal asc,empno desc;
查询所有员工的信息,按照工资升序排列,如果工资相同,按照工号降序排列

聚合函数(聚合函数做某列的纵向运算,为null项不参与运算)
count 计算个数
max 计算最大值
min 计算最小值
sum 和
avg 平均值

分组查询(分组查询是把记录使用某一列进行分组,然后查询组信息;分组查询查的是组信息,不能带个人信息)
1)组信息(分组列、聚合函数)
2)分组查询使用group by 关键字
3)组条件:分组后的条件使用having ,分组前的条件使用where
4)执行顺序
select
from
where
group by
having
order by
例1:
select job,avg(sal) from emp group by job;
查询每个工种的平均工资
例2:
select job,avg(sal) from emp where sal>15000 group by job;
查询工资大于15000的员工的工种,以及工种的平均工资

limit子句(用来限定查询结果的起始行,以及总行数)
1)Mysql方言,分页查询
2)起始行计算公式:(当前页-1)*每页的记录数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值