学无先后,达者为师

网站首页 编程语言 正文

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

作者:小赵在练琴 更新时间: 2022-09-26 编程语言

今天我们了解一下数据库基本增删改查语法和多表链接查的方式

目录

一. INSERT 新增

二. DELETE 删除

        1.整表删除

        2.带条件删除 

        3. DELETE , TRUNCATE , DROP 区别

三. UPDATE 修改

        1.全部修改

         2. 带条件的修改

        3.多条件的修改

四. SELECT 查询 

五.多表链接查询

1.内联查询

2.外连查询 

        ① LEFT JOIN ON:

         ② RIGHT JOIN ON:

         ③ INNER JOIN ON:

3. UNION

4. UNION ALL


一. INSERT 新增

        主要功能: 给数据库表增加记录

        语法:

INSERT INTO `表名` [(字段,字段,字段......)]
VALUE/VALUES (值1,值2,值3) , [(值1,值2,值3)]

# value:只能插入一条数据
# values:能插入多条数据

       不建议的写法:

INSERT INTO `表1` SELECT 字段 FROM `表2`
# 注:查询表和插入表都要存在
CREATE TABLE `表1` SELECT ... FROM `表2`
# 注:查询表存在,插入表不能存在

二. DELETE 删除

        主要功能: 删除已有记录,可以依照条件去做删除

        1.整表删除

                语法:

DELETE FROM `表`

        2.带条件删除 

                语法:

DELETE FROM `表` WHERE 子句(条件)

        3. DELETE , TRUNCATE , DROP 区别

                ①.DELETE 可以删除数据,不能清空索引的自增  是DML

                ②.TRUNCATE DELETE的基础上可以清空主键的索引自增  是DML

                ③.DROP 是直接删除对应的 表 / 表结构 / 数据库 是DDL

三. UPDATE 修改

        主要功能: 修改已有的记录, 可以依照条件去做修改

        1.全部修改

UPDATE `表名` SET 字段名 = 值, 字段名 = 值, 字段名 = 值, 字段名 = 值

         2. 带条件的修改

UPDATE `表名` SET 字段名 = 值 WHERE 条件

        3.多条件的修改

UPDATE `表名` SET 字段名 = 值 WHERE 条件 AND / OR 条件 ......

四. SELECT 查询 

        主要功能: 对已有数据的查询,可以单表查询也可以多表联查,可以依照条件去做查询

        语法:

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.内联查询

        等值查询

        SELECT * FROM 表1, 表2  WHERE 表1.字段1 = 表2.字段2

        非等值查询(笛卡尔积)

        SELECT * FROM 表1, 表2 

         其中:

        1. 与单表查询相似(SELECT)

        2. 多个表放在 FROM 后, 用逗号隔开

        3. 可以用 AS 取别名,方便引用

        4. 如无重名查询字段,则可省略数据表的指定

2.外连查询 

        语法:

SELECT * FROM `表1`
left|right|inner join 表2 on 表之间的关系(条件)

        ① LEFT JOIN ON:

左表(表1)中返回所有的记录,即便右(表2)中无匹配的行, 如下图:

         ② RIGHT JOIN ON:

右(表2)中返回所有的记录,即便左表(表1)中无匹配的行, 如下图:

 

         ③ INNER JOIN ON:

两张表至少一条数据匹配时,则返回记录, 如下图:

 

3. UNION

        1.求的是两个查询的并集

        2.合并的是结果集,不区分表,所以能合并多张表

        语法:

SELECT A.FIELD1 FROM <TABLE> A
UNION
SELECT B.FIELD2 FROM <TABLE> B

        注:

        1.列名不一致时,会以第一张表的表头为准,并对齐栏目

        2.会将重复的行进行过滤

        3.如果查询的表的列数量不相等时会报错

        4.在每个子句的排序中是没有意义的,MySQL在合并时会忽略

        5.如果子句中的排序和limit进行结合是有意义的

        6.可以对合并后的整表进行排序

4. UNION ALL

        与 UNION 不同, UNION ALL 不回去重,而是全部显示

原文链接:https://blog.csdn.net/annotation_PLZ/article/details/126838998

相关推荐

栏目分类
最近更新