注释:在SQL中可以使用“--空格+描述”来表示注释说明
CRUD 即增加(Create)、查询(Retrieve)、更新(Update)、删除(Delete)四个单词的首字母缩写
在表中插入数据需要先创建一张表
-- 创建一张学生表
create table student(name varchar(10), id int);
--插入两条记录,values() 中数据 必须和表的列和数量相同
insert into student values ("小明", 1);
insert into student values ("小红", 2);
在表:student中插入了,小明,小红的信息
--插入两条记录,values() 中数据 必须和指定的列和数量相同
insert into student(name) values ("小强", "小美");
指定插入了小强小美的名字
-- 通常情况下不建议使用 * 进行全列查询
-- 询的列越多,意味着需要传输的数据量越大;
select * from 表名;
例如要查询刚才 的学生表
select * from student;
-- 指定列的顺序不需要按定义表的顺序来
select 列名, 列名... from 表名;
select id + 10 from student;
查询所有学生的id+10
为查询结果中的列指定别名,表示返回的结果集中,以别名作为该列的名称
select id + 10 as ID from student;
为id +10 命名为 ID
as 可不写
例: 这里有一张商品表,我们发现有两个商品的价格都是2
使用DISTINCT关键字对某列数据进行去重
在不使用 order by时,查询返回的顺序是未定义的
例: 这里有一张商品表
使用 order by 按价格排序:
也可以在最后加上 desc 以排降序
注意:NULL 数据排序,视为比任何值都小,升序出现在最上面,降序出现在最下面
比较运算符::
运算符 | 说明 |
>, >=, <, <= | 大于,大于等于,小于,小于等于 |
= | 等于,NULL 不安全,例如 NULL = NULL 的结果是 NULL |
<=> | 等于,NULL 安全,例如 NULL <=> NULL 的结果是 TRUE(1) |
!=, <> | 不等于 |
BETWEEN a0 AND a1 | 范围匹配,[a0, a1],如果 a0 <= value <= a1,返回 TRUE(1) |
IN (option, ...) | 如果是 option 中的任意一个,返回 TRUE(1) |
IS NULL | 是 NULL |
IS NOT NULL | 不是 NULL |
LIKE | 模糊匹配。% 表示任意多个(包括 0 个)任意字符;_ 表示任意一个字符 |
逻辑运算符:
运算符 | 说明 |
AND | 多个条件必须都为 TRUE(1),结果才是 TRUE(1) |
OR | 任意一个条件为 TRUE(1), 结果为 TRUE(1) |
NOT | 条件为 TRUE(1),结果为 FALSE(0) |
注:
以上面商品表为例:
查询价格在50以上的商品:
select * from goods where price > 50;
范围查询:
1. BETWEEN ... AND
查询价格在10 到 50 之间的商品:
select * from goods where price between 10 and 50;
2. IN
查询价格价格是 2 或 15 或 20 的商品:
select * from goods where price in (2, 15, 20);
模糊查询:LIKE
% :匹配任意多个字符
_ :匹配一个字符
例:
查询以笔结尾的商品名称:
select * from goods where name like '%笔';
查询以笔结尾的且只有两个字符的商品名称:
select * from goods where name like '_笔';
NULL 的查询:IS [NOT] NULL
查询描述为空的商品:
select * from goods where description is null;
查询描述不为空的商品:
select * from goods where description is not null;
没有符合描述的商品所以无输出
限制每次查询的数据数量
从0号下标开始查询两个数据
select * from goods limit 2 offset 0;
从2号下标开始查询两个数据
select * from goods limit 2 offset 2;
语法:
update 表名 set 列名 = 数据 (可跟条件指定修改的数据的特征)
例:
将书包的价格修改为200;
update goods set price = 200 where name = "书包";
语法:
delete from 表名 (可跟条件指定修改的数据的特征 ,不加则是删除所有数据)
例:
删除商品:矿泉水
delete from goods where name = "矿泉水";