insertinto 表名(字段名1,字段名2,字段名3,字段名4,字段名5)value(值1,值2,值3,值4,值5);
例如: insertinto stu(id,name,gender,birthday,score)value(1,'tom','male','2000-1-1',85);#1.当为所有列插入值时,可以省写列名,但值的个数和顺序必须和声明时列的个数和顺序保持一致!insertinto stu value(2,'曹操','male','2001-2-3',90);#2.SQL语句中的值为字符串或日期时,值的两边要加上单引号(有的版本的数据库双引号也可以,但推荐使用单引号)。
2.3.2修改表数据
update 表名 set 字段1=值1,字段2=值2,字段3=值3[where 子句];#如果需要满足条件时才写中括号中的东西,如果不需要就不写
例如:update stu set score=score+10;-- 修改stu表中所有学生的成绩,加10分特长分update stu set score=83where id=1;-- 修改stu表中编号为1的学生成绩,将成绩改为83分
2.3.3删除表数据
deletefrom 表名 [where 子句];
3.查询表数据
3.1基础查询
select*from 表名;# *号是通配符,表示查询所有列
或者 select 字段名1,字段名2,字段名3from 表名;
例如: select name from stu;#查询学生表中姓名字段的所有数据
3.1.1去掉查询重复结果
selectdistinct 字段名1,字段名2,字段名3from 表名;
3.2 WHERE 子句查询
select*from 表名 where 字段 运算符 值;
或者 select 字段名1,字段名2from 表名 where 字段 运算符 值;
例1: select name, sal from emp where sal>3000;#查询emp表中【薪资大于3000】的所有员工,显示员工姓名、薪资
例2: select name, sal+bonus from emp where sal+bonus >3500;#查询emp表中【总薪资(薪资+奖金)大于3500】的所有员工,显示员工姓名、总薪资
例3: select name, sal+ifnull(bonus,0)from emp where sal+ifnull(bonus,0)>3500;# ifnull(列名, 值)函数: 判断指定的列是否包含null值,如果有null值,用第二个值替换 null值
3.2.1使用 as 指定别名
select 字段名 from 表名;
select name from stu; select name as 姓名 from stu;
-- 其中as可以省略
3.2.2范围指定查询
select 字段1,字段2from 表名 where 字段2between 值1and 值2;
例如: select name,sal from emp where sal between3000and4500;# 查询薪资在3000到4500之间的员工 显示姓名和薪资
3.2.3多值指定查询
-- 查询emp表中薪资为 1400、1600、1800的员工,显示员工姓名和薪资
方式一: select name,sal from emp where sal=1400or sal=1600or sal=1800;
方式二: select name,sal from emp where sal in(1400,1600,1800);
3.2.4处理null值
-- 查询emp表中薪资大于3000并且奖金小于600的员工,显示员工姓名、薪资、奖金。select name,sal,bonus from emp where sal>3000and ifnull(bonus,0)<600;#如果有的员工奖金为null,那么我们就要处理null值,把null当作0来计算。-- 查询没有部门的员工(即部门列为null值)select*from emp where dept isnull;
-- 查询有部门的员工(即部门列不为null值)
方式一: select*from emp wherenot(dept isnull);
方式二: select*from emp where dept isnotnull;
3.3模糊查询
select 字段名(或者*)from 表名 where 字段名 like 值;LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。
可以和通配符(%、_)配合使用,其中"%"表示0或多个任意的字符,"_"表示一个任意的字符。
select name from emp where name like'孙%';-- 孙权 孙悟空 都可以被查询到select name from emp where name like'%孙%';-- 公孙离 孙悟空 土行孙 孙权 都可以被查询到select name from emp where name like'刘__';(注意这里是两个下划线)# 以'刘'开头,姓名为三个字的员工
# 利用limit查询前几名/最后几名-- 求emp表中薪资最高的前3名员工的信息,显示姓名和薪资select name,sal from emp orderby sal desc;-- 按照薪资对员工信息进行排序select name,sal from emp orderby sal desclimit0,3;-- 在上面查询的基础上,分页查询,每页显示3条,查询第一页