数据库基本增删改查语法和多表链接查的方式

文章目录


SQL语句的分类

    SQL语句,即结构化查询语言(Structured Query Language),是一种特殊目的的编程语言,是一
种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统,同时也是数据库脚本文件的扩展名。

一、DML数据操作语句

1. 增加数据的INSERT语句

2. 修改数据的UPDATE语句

3. 删除数据的DELETE语句

4. 删除数据的TRUNCAT语句

5. DELETE、DROP、TRUNCAT的区别

二、使用步骤

1.增加数据(INSERT语句)

语法:INSERT INTO `表名` [(`字段1`,`字段2`,...`字段n`)]

           VALUES/VALUE ('值1','值2',...'值n')[,('值1','值2',...'值n')...];

 示例:方式一

  示例:方式二

 

其中:
[] ” 包含的内容可以省略;
字段或值之间用英文逗号隔开;
可同时插入多条数据,values 后用英文逗号隔开;
values和value的方式均可。

 2.修改数据(UPDATE语句)

语法:UPDATE 表名 SET `字段名1` = '值1' [ , `字段名2` = '值2', …. ]

           [ WHERE 条件];

示例1:整表修改

 示例2:带条件的修改

示例3:多条件的修改(要用连接符号 and 或者or)

 示例4:范围型的多条件

 示例5:范围型的多条件(between and)

其中:
[] ” 包含的内容可以省略;
`字段名`为要更改数据的字段,'值'表示字段改后的值,注意字段和值的对应;
可同时修改多个字段,多个字段后用英文逗号隔开;
“WHERE”是where子句,可以给修改增加条件;
条件:为筛选条件,如不指定则修改该表的所有列数据。

3.删除数据(DELETE语句)

语法:DELETE FROM 表名 [ WHERE 条件];

 示例1:整表删除

 示例2:带条件的删除(delete 不能清除主键自增的序号

其中:
[] ” 包含的内容可以省略;
WHERE ”可以通过where子句增加删除的条件。

 4.删除数据(TRUNCAT语句)

语法:TRUNCATE [TABLE] 表名

示例1:清空表(将整张表的数据还有索引【主键的自增】全部清空,保留表结构)
其中:
TRUNCATE 是一个特殊的删除语句,又叫做清空语句;
[] ”包含的内容可以省略;
功能:清空某一张表内的全部数据,重置自增计数器;
特点:由于没有条件约束,所以速度快,而且效率高。

 5.DELETE、DROP、TRUNCAT的区别

定义:

-- delete只删除数据,表结构还在,属于DML
-- truncate 删除数据,清除索引,表结构还在属于DML
-- drop 数据,索引一起删除,表结构不在属于DDL

区别:

1、delete一般用来删除表中的某一条或者一行数据,在不设置WHERE条件下可以删除表中的所有信息,将该操作保存在事务日志中在以后需要的时候还可以进行回滚操作。对表执行delete之后,该表不会减少表或者索引所占用的空间。

2、truncate是清空的意思,从字面就可以理解为一次删除就可以将表里的数据全部清除,没有回滚操作。对表执行truncate之后,表和索引就会恢复到初始的大小。

3、drop可以将表的结构和数据内容都删除。对表执行drop之后,该表所占用的空间全部释放。

4、delete和truncate都是对数据进行操作,区别是范围不同。delete可以针对数据中的table、view两种类型。而truncate只能针对table类型。

5、速度上:drop>truncate>delete;

6、 在没有备份的时候,尤其小心使用drop和truncate ,删除部分数据行用delete带上where子句,回滚段要足够大。删除表用drop。想要保留表而将所有数据删除,如果和事务无关,用truncate即可,如果和事务有关,或者想触发trigger,还是用delete。如果是整理表内部的碎片,可以用truncate跟上reuse stroage,再重新导入/插入数据。

7、delete是DML(数据操作语言)语句,执行后不会自动提交;drop、truncate都是DDL(数据定义语言)语句,执行后会自动提交。

一、DQL数据操作语句和基本的DQL语句

DQL(Data Query Language 数据查询语言)。用途是查询数据库数据,如 SELECT 语句。是SQL语句中最核心、最重要的语句,也是使用频率最高的语句。其中,可以根据表的结构和关系分为单表查询和多 表联查。

1. 单表查询:针对数据库中的一张数据表进行查询,可以通过各种查询条件和方式去做相关的优化。

2. 多表联查:针对数据库中两张或者两张以上的表同时进行查询,依赖的手段有复杂查询和嵌套查询。

二、使用步骤

1.单表查询

语法:

SELECT [DISTINCT]
{*|表1.*|[ 表1.字段1 [as 字段别名1]
[, 表1.字段2[as 字段别名2]][, …]]}
FROM 表1 [ as 表别名 ]
[ left|right|inner join 表2 on 表之间
的关系 ]
[ WHERE ]
[ GROUP BY ]
[ HAVING]
[ ORDER BY]
[ LIMIT {[ 位置偏移量,] 行数 }] ;
DISTINCT : 设定DISTINCT可以去掉重复记录。
AS: 表名或者字段名过长时,可以用AS关键字起别名,方便操作。
GROUP BY: 按组分类显示查询出的数据。
HAVING: GROUP BY分组时依赖的分组条件。
ORDER BY: 将查询出来的结果集按照一定顺序排序完成。
LIMIT: 限制显示查询结果的条数。

 示例1:最简单的查询

 示例2:对基本表的查询,全字段的查询

 示例3:部分字段查询(虚拟表,不在磁盘上)

  示例4:增加数据


 示例5:给表头起别名 AS

语法:
SELECT 表别名.字段名1 AS 字段别名1, 表别名.字段名2 AS 字段别名2
FROM 表名 AS 表别名
其中:
. ” 当前表存在的字段;
AS ”可忽略不写,“ AS ”的功能如下:
给字段取一个新别名;
给表取一个新别名;
把经计算或总结的结果用另外一个新名称来代替。

 示例6:去除重复的数据 DISTINCT(后面的字段的值要完全相同时才会去除重复)

 语法:

SELECT DISTINCT 字段名1, 字段名2...
FROM 表名

其中:
去掉SELECT查询返回的记录结果中重复的记录(所有返回列的值都相同),
只返回一条。

 示例7:带条件的查询

语法:
SELECT * FROM 表名 [ WHERE 条件];
其中:
WHERE条件子句不是必须的;
WHERE子句,可以给查询增加条件;
条件:为筛选条件,如不指定则修改该表的所有数据。

 示例8:like 模糊查询

 语法:

SELECT * FROM 表名 WHERE 字段 LIKE 条件;

其中:
在WHERE子句中,使用LIKE关键字进行模糊查询;
与“%”一起使用,表示匹配0或任意多个字符;
与“_”一起使用,表示匹配单个字符。

 示例9:GROUP BY和 HAVING分组

GROUP BY

1、对所有的数据进行分组统计;
2、分组的依据字段可以有多个,并
依次分组。
HAVING
与GROUP BY结合使用,进行分组
后的数据筛选。

where 和having的区别:
-- where 后的筛选是针对表中的每一条数据进行
-- having 分组之后的数据进行筛选,不能单独出现,必须要有group by。

 示例10:LIMIT

语法:
SELECT * FROM 表名 LIMIT [n , m ]
其中:
LIMIT关键字是MySQL特有关键字;
LIMIT限制SELECT返回结果的行数;
n 表示第一条记录的偏移量,m 表示显示记录的数量;
[ ] ”包含的内容可以省略

 示例11:ODER BY排序

 语法:

SELECT * FROM 表名 ORDER BY 字段名 [DESC|ASC]

其中:
ORDER BY 表示对SELECT语句查询得到的结果,按字段名进行排序;
DESC表示排序的顺序为降序,ASC表示排序的顺序为升序;
[ ] ”包含的内容可以省略。


1.多表联查

  • 等值查询和非等值查询

  •  连接查询

 示例1:非等值查询

 示例2:非等值查询


1.内联查询     inner join on 

示例1:


2.外联查询    --  主表和从表

left join on  --  左外联 主表先写用left
right join on --  右外联    主表后写用right

示例1:


 3.子查询

1.where 子查询

示例1:

2.from子查询:把内层的查询结果当成临时表,供外层sql再次查询。查询结果集可以当成表看待。

示例1:

3. exists 型子查询 : 把外层 sql 的结果,拿到内层 sql 去测试,如果内层的 sql 成立,则该行取出。内层查询是 exists 后的查询。

示例1:

4.any some 子查询:表示满足其中任意一个条件,some any的别名,所以用法是一样的,可以替代使用

示例1:

 5.all子查询:表示满足其中所有条件条件,ALL关键字与any关键字类似,只不过上面的or改成and


总结

最后,测试过程中,最常用到的就是查询语句,主要是看接口调用的数据传输是否正常,其中多表关联查询和子查询是用的比较多的;这些只是初级的使用。

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数据库增删改查操作可以使用以下SQL语句: 1. 增加数据:使用INSERT INTO语句将新的行插入到表中。语法如下: INSERT INTO 表名 (列1, 列2, 列3, ...) VALUES (值1, 值2, 值3, ...) 2. 删除数据:使用DELETE语句从表中删除行。语法如下: DELETE FROM 表名 WHERE 条件 3. 修改数据:使用UPDATE语句修改表中的数据。语法如下: UPDATE 表名 SET 列名 = 新值 WHERE 条件 4. 询数据:使用SELECT语句从表中选取数据。语法如下: SELECT 列名1, 列名2, ... FROM 表名 WHERE 条件 以上是常见的数据库操作语句,可以根据具体的需求和表结构进行相应的调整。\[1\] 参考链接: \[1\] https://blog.csdn.net/kiki___/article/details/116274647 #### 引用[.reference_title] - *1* [增删改查sql语法](https://blog.csdn.net/weixin_56287335/article/details/125263582)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [SQL常用增删改查语](https://blog.csdn.net/qq_45414405/article/details/125916225)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值