SQL——sql中 insert 添加、update修改、delete删除、DQL查询数据、去重、联表查询

  • Post author:
  • Post category:其他




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删除的问题,重启数据库的现象
1innoDB 自增列会重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 等值查询
执行结果一样	


https://www.bilibili.com/video/BV1NJ411J79W?p=20



版权声明:本文为beishanqiye原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。