文章目录
🚀 一、新增
语法:
insert into 表名 values(值,值...);
-- 案例:创建一张学生表
create table student(
id int,
name varchar(20) comment '姓名');
🌟 1.1 单行数据 + 全列插入
-- 插入的记录,值的数量必须和定义表时的数量和顺序一致。
insert into student values(100,'张三');
insert into student values(200,'李四');
🌟 2.2 多行数据 + 指定列插入
-- 插入的记录,值的数量必须和指定列时的数量和顺序一致。
-- 不同数据间用逗号隔开
insert into student(id,name) values
(300,'张三'),
(400,'王五');
❗注意 :
- 在 SQL 中的字符串既可以用 ’ ’ 表示,也可以用 " " 表示。
- 如果某列的数据类型时时间类型,可以用一个字符串表示时间,或者用 now() 函数获得当前系统时间。
🚀 二、查询
查询操作不会改变数据库上的数据。
🌟 2.1 全列查询
-- 最简单的查询操作,但是数据量大时不建议使用
select * from 表名;
select * from student;
🌟 2.2 指定列查询
-- 指定列的顺序不必按照定义表时的顺序来
select 列名,列名,列名... from 表名;
select name from student;
🌟 2.3 查询字段为表达式
在查询的同时会对表达式计算,但是原数据库上的数据不会改变。
select id,name,english+10 from student;
select id,name,english+math from student;
查询出的临时表中的数据类型不一定和原始表中的一致,临时表的类型会自动适应,保证计算结果正确性。
🌟 2.4 别名
为查询结果的列指定别名,在返回的临时表中,以别名显示:
select 列名 as 别名 from 表名;
select id,name as '姓名' from student;
🌟 2.5 去重 distinct
可以对指定列的数据进行去重
select 列名,distinct 列名,列名 from 表名;
🌟 2.6 排序 order by
-- 列名2 为作为排序标准的一列,这一列不需要再前面出现
-- 默认为升序排列,asc 为升序,desc 为降序
select 列名... from 表名 order by 列名2 asc/desc;
- 没有 order by 语句的查询,返回的顺序都是未定义的。
- null 数据的值视为比任何的值都小,
- 排序标准列可以用 表达式 或者 别名。
select name,chinese,math from student order by chinese+math;
- 可以对多个字段进行排序,排序优先级随书写顺序。
🌟 2.7 条件查询 : where
条件会针对查询结果进行比较,服务器遍历表中每条记录,如果符合条件,就返回客户端。
❗注意:
- where 条件可以使用 表达式 ,但是不可以使用别名。
- 基本查询
-- 查询分数低于 60 的
select * from score where score < 60;
- and 与 or
-- 查询成绩大于 60 且小于 80 的
select * from score where score>60 and score<80;
- 范围查询 between … and…
-- 查询成绩大于 60 且小于 80 的
select * from score where score between 60 and 80;
- 模糊查询
-- % 匹配任意个字符
select name from student where name like '孙%'; -- 只要第一个字符是 ’孙‘,后面可以是任意字符
-- _ 严格限制一个字符
select name from student where name like '孙_'; -- 第一个字符是 '孙' ,且后面只跟着一个字符。
🌟 2.8 分页查询
可以规定一页有多少返回结果,查找时可以按页返回。
-- 从 0 开始,筛选 n 条结果。
select * from student limit n;
-- 从 s 开始,筛选 n 条结果。
select * from student limit n offset s;
🚀 三、修改
会修改数据库上的原始数据。
语法:
-- 后面必须有条件,否则会修改所有数据
update 表名 set 列名 = 值,列名 = 值... where 条件;
🚀 四、删除
-- 必须要有条件,否则会删除所有数据,剩下空表。
delete from 表名 where 条件;