目录
一、新增数据
二、查询数据
三、修改数据
四、删除数据
注释:在SQL中可以使用“--空格+描述“来表示注释说明
1.新增
insert into 表名 values(数据, 数据, 数据); --数量必须和定义表的列的数量及顺序一致
我们先制作一张学生表
如何我们向这个表中插入数据:
id:1,姓名:张三,性别:男;
id: 2,姓名:王五,性别:男;
1.1 单行数据+全列插入
1.2 多行数据+指定列插入
2. 查询
语法:select 列 from 表;
注意:数据库查询过程中生成的"临时表,数据库本体(数据库服务器硬盘上的数据)是没有任何改变的。
2.1 全列查寻
通常情况下不建议使用 *进行全列查询
1.查询的列越多,意味着需要传输的数据量越大;
2.可能会影响到索引的使用。(索引待后面课程讲解)
SELECT * FROM 表名;
2.2 指定列查询
指定列的顺序不需要按定义表的顺序来
2.3 查询字段为表达式
我们有一张成绩表
(1)我们需要同学们的语文成绩
这样的查询不包含字段
(2)题目改错所以同学语文成绩加10分
这样的查询包含一个字段
(3)我们需要各位同学的总分
这样的查询叫多字段查寻,表达式包含多个字段
2.4 别名查询
为查询结果中的列指定别名,表示返回的结果集中,以别名作为该列的名称,语法:
select 表达式 as 别名 from 表名;(as可以省略)
2.5 去重查询
使用DISTINCT关键字对某列数据进行去重:
去重的意思,多个行的数据,如果出现相同的值,就会只保留一份~~
select distinct 列名 from 表名;
2.6 排序:ORDER BY
select 列 from 表 order by 指定列 asc;
--ASC 为升序(从小到大)
--DESC 为降序(从大到小)
--默认为 ASC
注意:
1.没有 ORDER BY 子句的查询,返回的顺序是未定义的,永远不要依赖这个顺序
2.NULL数据排序,视为比任何值都小,升序出现在最上面,降序出现在最下面
2.6.1使用别名排序
2.6.2可以对多个字段进行排序,排序优先级随书写顺序
--查询同学各门成绩,依次按 数学降序,英语升序,语文升序的方式显示
2.7条件查询:WHERE
select 列 from 表名 where 指定条件
比较运算符
运算符 | 说明 |
>,>=,<,<= | 大于,大于等于,小于,小于等于 |
= | 等于,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) |
注:
1.WHERE条件可以使用表达式,但不能使用别名。
2.AND的优先级高于OR,在同时使用时,需要使用小括号()包裹优先执行的部分
3.若要查找含null的行,最好使用<=> 判断
几个简单案例
(1)查询数学成绩不及格(<60)的名字
(2)查询语文或数学不及格的名字
(3)查看语文缺考的名字
(4)查找包含“小”的名字
2.8分页查询:LIMIT
[ ]里为可选
语法:
select 列 from 表名 [where] [order by] limit n;
select 列 from 表名 [where] [order by] limit s, n;
select 列 from 表名 [where] [order by] limit n offset s;
案例:按 id 进行分页,每页2条记录,分别显示第1、2、3页
4.修改(Update)
语法:
UPDATE 表名 SET 列名内容=修改内容[,列名内容=修改内容] [WHERE] [ORDER BY] [LIMIT ]
将张三的语文成绩改为80分
5.删除(Delete)
语法:
DELETE FROM 表名 [WHERE][ORDER BY][LIMIT]
案例:删除语文成绩为88的小明