insert
插入语句(添加)
# 字段整条插入语句,由于没有选择字段所以值必须一一对应全写
INSERT INTO `表名` VALUES ('对应字段所填值')
# 选择字段插入语句,所选字段和值一一对应
INSERT INTO `表名`(`字段2,`字段3`,`字段···`)VALUES('值2','值3','值···')
# 选择字段插入多条语句,所选字段对应输入多条值
INSERT INTO `表名字`(`字段1`,`字段2`,`字段3`,`字段···`)
VALUES('值1','值2','值3','值···'),('值1','值2','值3','值···'),('值1','值2','值3','值···')···
https://www.bilibili.com/video/BV1NJ411J79W?p=13
update
修改语句(修改)
UPDATE `表名` SET `字段`='修改内容' WHERE id=XX;
-- 例子:
UPDATE `student` SET `name`='小明' WHERE id=1;
-- 意思为:修改表student中,字段为name,改为小明,并且在id等于1的这一行
-- 例子:
UPDATE `student` SET `name`='小明';
-- 意思为:修改表student中,字段为name,全部改为小明。所以这个要小心,改错无法恢复
-- 多个字段修改
UPDATE `表名` SET `字段`='修改内容' , `字段`='修改内容', `字段`='修改内容'WHERE id=XX;
-- 例子:
UPDATE `student` SET `name`='小明', `sex`='男' WHERE id=1;
-- 意思为:修改表student中,字段为name改为小明,字段sex改为男,并且在id=1这一行。字段全部修改命令和上面的相同。
WHERE后面可以看为是判断语句,意思是当为 true 时候才会修改,作为筛选想改的东西,如果没有则会修改列所有的值
操作符 | 含义 | 范围 | 实例 | 结果 |
---|---|---|---|---|
= | 等于 | 等于的这一行 | WHERE id=1 | id=1这一行改变 |
<>或!= | 不等于 | 不等于这一行都改变 | WHERE id<>1 | id不等于1的全部行改变 |
> | 大于 | 大于这个的都改变 | WHEREid>1 | id大于1的都改变 |
< | 小于 | 小于这个的都改变 | WHEREid<5 | id小于5的都改变 |
>= | 大于等于 | 大于等于这个的都改变 | WHERE id>=3 | id大于等于3的都改变 |
<= | 大于等于 | 小于等于这个的都改变 | WHERE id<=3 | id小于等于3的都改变 |
BETWEEN … AND … | 这两个值的范围内都改变(包括输入的值) | 以集合方式表示为[…,…] | WHERE id BETWEEN 3 AND 5 | id等于3,4,5的都改变 |
…AND… | 与 | 两个条件都满足才修改 | WHERE ’name’ = ‘小明’ AND ‘sex` = ‘女’ | 字段name为小明并且sex为女的改变 |
…OR… | 或 | 两个条件满足一个就修改 | WHERE ’name’ = ‘小明’ OR ‘sex` = ‘女’ | 只要字段一个满足name是小明或者sex是女就修改 |
https://www.bilibili.com/video/BV1NJ411J79W?p=14
delete
删除语句
#删除数据(避免这样写,这样是删除当前的所有数据)
DELETE FROM ` 表名字`
-- 清空表的第二种写法
TRUNCATE `表名`
注意:这个语句和上面的区别在于,这个清空自增将重新开始,而上面删除数据,只会接着之前的数据自增
-- 删除指定数据
DELETE FROM `表名` WHERE 约束语句(如:id=1);
-- 了解:DELETE删除的问题,重启数据库的现象
1、innoDB 自增列会重1开始(存在内除当中的,断电即失
2、MyISAM 继续从上一个自增量开始(存在文件中,不会丢失
https://www.bilibili.com/video/BV1NJ411J79W?p=15
DQL查询数据
- 所有的查询操作都是用它:Select
- 简单的查询,复杂的查询它都能做~
-
数据库中最核心的语言,最重要的语句
- 使用频率最高的语句
-- 查询表的全部数据
SELECT * FROM 表名
-- 查询指定字段
SELECT `字段名`, `字段名`,`···` FROM 表名
-- 查询指定的字段,并且给字段重命名(是别名)原本没有改 ,也可以给表起别名
SELECT `字段名1` AS 字段别名1 ,`字段名2` AS 字段别名2 ,`字段名3`,AS 字段别名3,··· FROM 表名 AS 表的别名
-- 函数 Concat
SELECT CONCAT (`添加值`,字段) AS 建立的新字段名字 FROM 表名字
--该函数的例子如下
https://www.bilibili.com/video/BV1NJ411J79W?p=16
去重(DISTINCT)
#去掉字段中重复的数据,只显示一条数据出来
SELECT DISTINCT `字段` FROM 表名
表达式
SELECT VERSION() -- 查询系统版本(函数)
SELECT 100*3-1 AS 计算结果 -- 用来计算(结果是字段名字为计算结果,字段内容为299)
SELECT @@auto_increment_increment -- 查询自增的步长(变量)
SELECT `字段名`+1 AS '加一后' FROM 表名 -- 在该表字段下所有值加一,并且字段重命名为 “加一后”
https://www.bilibili.com/video/BV1NJ411J79W?p=17
https://www.bilibili.com/video/BV1NJ411J79W?p=18
模糊查询
%代表任意个字符 _ 代表一个字符
SELECT `字段名` FROM `表名` WHERE 字段名 LIKE `%查询关键字_`
-- 在表下先查询`字段`所有值,然后再查询字段下关键字前面任意字符个数,字段关键字后面只有一个关键字的结果
in查询
查询为null 或者not null
https://www.bilibili.com/video/BV1NJ411J79W?p=19
联表查询(join)
**思路:**分析查询的字段来自那些表,确定交叉点,就算再两个表种找相同的字段,然后联表。
SELECT s.字段,字段,字段,···
FROM 表名1 AS s
INNER JOIN 表名2 AS r
WHERE s.字段 = r.字段
-- 意思是查询字段(将自己想查询的字段全部输入),然后选择来自那个表,INNER JOIN
-- 是将两个表联起来,AS后面的s和r是为了让系统判断在同名字段选择s的还是r的,所以
-- 我上面写的是s的也就是表1的,后面where是要求两个重名字段相等才会输出。这种是上表的第三种。
SELECT r.字段,字段,字段,···
FROM 表名 (AS) s -- 意思是AS可以省略
RIGHT JOIN 表名字 r
ON s.表名 = r.表名
-- join(联接的表) on (判断)联接查询
-- where 等值查询
执行结果一样
版权声明:本文为beishanqiye原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。