1.DML语句:数据库操作语句
给表中插入数据: 插入全部数据: insert into 表名 values(值1,值2,值3,值4...值n); 一次插入多条数据: insert into 表名 values(值1,值2,值3,值4...值n), (值1,值2,值3,值4...值n), (值1,值2,值3,值4...值n); 插入部分字段,没有插入的字段,默认值就是null, 也支持一次性插入多条数据: insert into 表名(字段名称1,字段名称2....) values(值1,值2...) ;
2.DML语句:修改表记录
实际开发中修改为带条件修改: update 表名 set 字段名称 = 值 where 条件; 一次性修改多个字段: update 表名 set 字段名称1 = 值1 ,字段名称2 =值2.... where 条件; 不带条件 属于批量修改 (部分场景可以用的) update 表名 set 字段名称1= 值1,字段名称2 =值2;
3.DML语句:删除表记录
带条件删除记录 (使用的非业务字段id删除) delete from 表名 where 条件 ; 删除全表数据: delete from 表名 : 删除全表数据: truncate table 表名; delete from 表名 和 truncate table 表名 :两个区别? 共同点:都是可以删除全表的记录的; 不同点: 1.delete from 表名 ; 仅仅只是将表的全部记录删除了,表还在! 它针对id(非业务字段:设置主键并且自增长),它不影响自增长主键的这个值; 2.truncat table 表名; 将表所有数据删除,而且还会把删除之后, 自动创建一个张一模一样的表,影响自增主键的值!
创建一个学生表,id 加入主键(非空且唯一)和自增长(不断的自增1)约束: create table student( id int primary key auto_increment, -- id主键并且自增长 name varchar(10)),-- 姓名 age int --年龄 ); 自增长的id可以赋值: insert into student value(8,'孙悟空',1021) insert into student (id,name,age) value(8,'孙悟空',1021)
4.DQL语句:查询数据
1.简单查询 select 查询全表数据: select * from 表名; 实际开发中查询全部字段,把字段名称全部写上 查询全部字段的时候,给字段起一个别名:as '别名名称' ,as可省略 当表的名称比较长的时候,可以给表名起一个别名; select * from 表名 别名; 发现字段冗余(重复度大) 字段去重: select distinct 字段名 from 表名; 2.条件查询 where 1.使用 赋值运算符=,比较运算符 <,<=,>=,>,!=, mysql中的不等于 <> 2.Java中逻辑运算符:&&,|| mysql推荐使用 and , or 3.针对两个范围查询:可以使用&&,可以使用and,也可以"字段名称 between 值1 and 值2" 3.模糊查询 like select 字段列表 from 表名 where 字段名称 like '%xxx%' ; %:代表任何多个字符或者某个字符 _:代表某个单个字符 4.聚合函数查询 :针对int类型 :单行单列数据 select 聚合函数 from 表名 where 条件; 查询表中记录: select count(字段名称) from 表名 where 条件; 平均值: select avg(字段名称): from 表名 where 条件; 求和函数: select sum(字段名称) from 表名 where 条件; 最大值: select max(字段名称) from 表名 where 条件; 最小值: select min(字段名称) from 表名 where 条件; select语句嵌套select语句 --- 子查询 select * from 表名 where 条件(select 聚合函数 from 表名 where 条件); 5.排序查询 order by (asc(默认值就是升序)或者desc 降序) select * from 表名 order by 字段名称 asc/desc;