2.1,向表中添加数据
insertinto user1 values('张三',23,'男',78.9,'2021-07-13 13:23:45');-- 值的顺序和字段顺序要一致insertinto user1 values('张三',23,'男',78.9,now());insertinto user1 values('张三',null,'男',78.9,null);values值的个数和顺序必须跟前面括号中的字段顺序一致
insertinto user1(name, score, gender)values('张三',78.9,'男');*mysql可以一次性添加多个记录
insertinto user1 values('lucy',null,'男',78.9,null),('tom',18,'男',78.9,null),('jack',23,'男',78.9,null),('rose',45,'女',78.9,null),('david',32,'男',78.9,null);2.2.修改数据
update user1 set name ='jerry';-- 修改所有数据update user1 set name ='jerry'where name='张三';-- name=张三的才要修改(条件)update user1 set age =19, birthday=now()where name='lucy';2.3.删除数据
deletefrom user1 ;-- 删除全部记录deletefrom user1 where name='jerry';truncate user1;-- 删除全部SET SQL_SAFE_UPDATES =0;
3.3.DQL操作
3.1单表查询 select
查询全部
select*fromuser;-- * 在执行时会解析成字段名,消耗资源
查询指定字段
select name ,ege fromuser;*查询的字段可以直接计算, 字段起别名[as]select name, sal*12as salary from emp;select name, sal*12 salary from emp;*查询的字段可以使用函数来操作
*函数: 数字相关, 字符串相关, 时间相关
select ename, date_format(hiredate,'%Y年%m月%d日')from emp;SELECT DATE_FORMAT(now(),'%Y年%m月%d日');*条件查询: 筛选 where*查询薪资范围 ><>=<==!=[<>]select ename, sal from emp
where sal >2000;*条件 并且:and 或者:orselect ename, sal from emp where sal >2000and sal <3000;select ename, sal from emp where sal <2000or sal >3000;
sal>=2000and sal<=3000select ename, sal from emp where sal between2000and3000;*null 表示无穷大或者无穷小, 不能判断范围, 也不能计算
isnull- 是null值 isnotnull- 不是null值
select ename from emp where mgr isnull;
不在20和30的人
select ename, deptno from emp where deptno =20or deptno=30;select ename, deptno from emp where deptno notin(20,30);*名字长度>4的人 - 函数结果可以作为条件
select ename from emp where length(ename)>5;*名字是 SMITH 的人
select ename from emp where ename ='SMITH';*首字母是 S 的人 like-模糊查询
*%(任意字符任意长度) _(一个任意字符)select ename from emp where ename like'S%';select ename from emp where ename like'_A%';select ename from emp where ename like'%A%';-- ESCAPE '*' 转义SELECT ENAME FROM EMP WHERE ENAME LIKE'A*_SMITH'ESCAPE'*';
sal >2000,3000,4000中的任意一个值
select ename, sal from emp where sal >any(2000,3000,4000);
sal >2000,3000,4000中的每一个值
select ename, sal from emp where sal > every(2000,3000,4000);