DQL语句(数据库查询语句)
基本查询语句 (select关键字)
ddl语句最通用的语句: 查询表中所有数据
select * from 表名;
语法1:插入数据:
①插入单条数据
语法:insert into 表名 values (值1,值2.......);
②插入表的数据支持一次插入多条数据
语法:insert into 表名 values(值1,值2.....),(值3,值4.....);
③插入部分字段(没有插 入的字段默认值为null,也支持插入多条数据)
语法:insert into 表名(字段名)values (值1,值2....),(值1,值2....);
注意:
1)插入的这些值要和表中的字段对应上,先后顺序保证一致。
2)目前没有数据库约束,可以插入非法数据
语法2:DML语句之修改数据
①修改一个字段
语法:update 表名 set 字段名=值 where 条件;
②修改多个字段
语法:update 表名 set 字段名1=值,字段名2=值... where 条件;
③批量修改字段(不带条件)
语法:update 表名 set 字段名1=值,字段名2=值.....;
语法3:DML语句之删除数据
①带条件删除数据(使用非业务字段 如:id)
语法:delete from 表名 where 条件;
②删除全表数据
方式1:delete from 表名
将表的全部记录删除了,表还在
方式2:truncate table 表名
将表的所有数据删除,删除之后会自动创建一张一样的表,会影响自增主键的值
语法4:DQL语句 查询语句
①实际开发中查询全部字段
查询全部字段的时候,给字段起一个别名 as '别名名称' (as省略)
如:
select
name '姓名',
age '年龄'
from
表名;
当表的名称比较长的时候,可以给表起一个别名
select
别名.字段名
from
表名 别名;
②查询部分字段
select
字段名称1,
字段名称2
from
表名;
DQL语句之条件查询(where关键字)
运算符:
赋值运算符 java:<,>,=,>=,<=,!= mysql: 不等于:<>
逻辑运算符 java:&& || mysql: and or
针对两个范围查询 可以使用and 也可以使用 &&;
如:查询所有年龄大于20岁学生的信息
select
*
from
表名
where
age>20;
查询年龄在20-30之间的学生姓名,年龄,住址,数学和英语成绩信息
select
*
from
表名
where
java: age>=20 && age<=30;
mysql: age>=20 and age<=30;
between 20 and 30;
例子:查询年龄不是20岁的学生的所有信息
① select * from 表名 where age!=20;
②select * from 表名 where age<>20;
查询年龄为18 20 26de 学生的所有信息
select * from 表名 where
java: age=18||age=20||age=26;
mysql: age=18 or age=20 or age=26;
格式优化:
age IN(18,20,26);
java 语言中判断某个内容是否为null 语句为 ==null ( mysql不支持这种语法)
在mysql中语法为: where 字段名 is null;
where 字段名 is not null;
int 类型字段求和的时候要 注意 int类型的值
MySQL提供函数 ifnull(字段名称,值); 如果字段名称是null,给一个默认值
如:
select 字段名 (math+ifnull(english,0)) from 表名;
DQL语句之where条件后面加入模糊查询 -----关键字like
select 字段列表 from 表名 where 字段名称 like ‘%xxx%’;
%:代表任何多个字符或者某个字符
_:代表某个单个字符
如:
查询学生姓名中三个字符第二个字符是花的人
select from where name like ‘%_花_%’;
聚合函数查询
count(字段名称):查询表中记录,字段名称使用都是id,非业务字段
avg(字段名称):查询这个字段中平均值
sum(字段列表):求和函数
max(字段名称):最大值
min(字段名称):最小值
如:查询表的总记录数
select count(id) ‘总记录数’ from 表名; --使用业务字段查询,不能有null值
查询数学平均分
select avg(math) ‘数学平均分’ from 表名
数学和英语成绩求和的学生信息(姓名,和总分)
select
sum(math+ifNull(english,0) ‘总分’
from
表名;
max() 和 min()
select max(math) ‘数学最高分’ from 表名;
DQL之排序查询order by;
select 字段列表 from 表名 order by 字段名称 排序规则(asc(默认值就是升序)或者desc降序)
如:按照数学成绩的降序排序
select
from
order by
math ASC; 不写排序规则的话,默认就是asc升序
同时有条件和order by ,order by 在where 的后面
如: 数学成绩大于56分的学生进行数学的降序排序
select
from
where math>56
order by math desc;
多个字段要同时排序,首先第一个字段排序规则,然后才是第二字段
select
from
order by
math desc,english asc;