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

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=1id=1这一行改变
<>或!=不等于不等于这一行都改变WHERE id<>1id不等于1的全部行改变
>大于大于这个的都改变WHEREid>1id大于1的都改变
<小于小于这个的都改变WHEREid<5id小于5的都改变
>=大于等于大于等于这个的都改变WHERE id>=3id大于等于3的都改变
<=大于等于小于等于这个的都改变WHERE id<=3id小于等于3的都改变
BETWEEN … AND …这两个值的范围内都改变(包括输入的值)以集合方式表示为[…,…]WHERE id BETWEEN 3 AND 5id等于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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值