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

本文详细介绍了数据库的基本概念,包括关系型和非关系型数据库,重点讲解了SQL语句的分类,如DDL、DML、DQL和DCL。在DML部分,深入探讨了数据的增删改操作,而在DQL部分,重点讨论了数据查询语言,包括常用的聚合函数。此外,还涵盖了单表查询和多表查询的技巧,如LIKE、IN、NULL值查询、GROUP BY、HAVING、ORDER BY和LIMIT等。
摘要由CSDN通过智能技术生成

目录

一、什么是数据库?

二、常见的数据库

三、SQL语句分类

四、DML (数据操作语言)基本语法

五、DQL(数据查询语言)

常用的聚合函数


一、什么是数据库?

数据库(Database,简称DB)概念:

长期存放在计算机内,有组织、可共享的大量数据的集合,是一个数据“仓库”。

作用:存放、管理数据

分类:关系型数据库、nosql数据库

二、常见的数据库

关系数据库:MySQL、Oracle、postgresql

非关系数据库:MongoDB

三、SQL语句分类

SQL语句,即结构化查询语言(Structured Query Language),是一种特殊目的的编程语言,是一
种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统,同时也是数据库脚本文件的扩展名。
名词解释命令
DDL (数据定义语言)
定义和管理数据对象, 如数据库,数据表等
CREATE、DROP、ALTER
DML (数据操作语言)
用于操作数据库对象中所包含的数据
INSERT、UPDATE、DELETE
DQL(数据查询语言)
用于查询数据库数据
SELECT
DCL (数据控制语言)
用来管理数据库的语言,包括管理权
限及数据更改
GRANT、COMMIT、ROLLBACK

四、DML (数据操作语言)基本语法

1.增加数据

语法:

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

 注意:

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

2. 修改数据

语法:

UPDATE 表名 SET `字段名1` = '值1' [ , `字段名2` = '值2', …. ]  [ WHERE 条件];

注意:

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

3.删除数据

语法:

DELETE FROM 表名 [ WHERE 条件];

 注意:

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

五、DQL(数据查询语言)

DQL(Data Query Language 数据查询语言)。用途是查询数据库数据,如SELECT语句。是SQL语句 中最核心、最重要的语句,也是使用频率最高的语句。其中,可以根据表的结构和关系分为单表查询和多表联查。
查询语法
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 * | 字段名1, 字段名2...  FROM 表名
*  表示所查询的数据库表的全部字段。
2. 表别名和字段别名
SELECT 表别名.字段名1 AS 字段别名1, 表别名.字段名2 AS 字段别名2 FROM 表名 AS 表别名
• “.” 当前表存在的字段;
• “AS”可忽略不写,“AS”的功能如下:
        • 给字段取一个新别名;
        • 给表取一个新别名;
        • 把经计算或总结的结果用另外一个新名称来代替
3. DISTINCT
SELECT DISTINCT 字段名1, 字段名2...
去掉SELECT查询返回的记录结果中重复的记录(所有返回列的值都相同),只返回一条。
FROM 表名
4. WHERE条件子句
SELECT * FROM 表名 [ WHERE 条件];
• WHERE条件子句不是必须的;
• WHERE子句,可以给查询增加条件;
• 条件:为筛选条件,如不指定则修改该表的所有数据。
5. LIKE 关键字
SELECT * FROM 表名 WHERE 字段 LIKE 条件;
• 在WHERE子句中,使用LIKE关键字进行模糊查询;
• 与“%”一起使用,表示匹配0或任意多个字符;
• 与“_”一起使用,表示匹配单个字符
6. IN 关键字
SELECT * FROM 表名 WHERE 字段 IN (值1,值2...);
• 查询的字段的值,至少与IN 后的括号中的一个值相同;
• 多个值之间用英文逗号隔开。
7. NULL 值查询
SELECT * FROM 表名 WHERE 字段 IS NULL | IS NOT NULL
• NULL代表“无值”;
• 区别于零值0和空符串;
• 只能出现在定义允许为NULL的字段;
• 须使用 IS NULL 或 IS NOT NULL 比较操作符去比较。
8. GROUP BY和HAVING分组
GROUP BY
1、对所有的数据进行分组统计;
2、分组的依据字段可以有多个,并依次分组。
HAVING
与GROUP BY结合使用,进行分组后的数据筛选。

常用的聚合函数

函数名返回值
AVG(col)
返回指定列的平均值
COUNT(col)
返回指定列中非NULL值的个数
MIN(col)
返回指定列的最小值
MAX(col)
返回指定列的最大值
SUM(col)
返回指定列的所有值之和

9.ORDER BY排序

SELECT * FROM 表名 ORDER BY 字段名 [DESC|ASC]
• ORDER BY 表示对SELECT语句查询得到的结果,按字段名进行排序;
• DESC表示排序的顺序为降序,ASC表示排序的顺序为升序;
•“[ ]”包含的内容可以省略。
10. LIMIT关键字
SELECT * FROM 表名 LIMIT [n , m ]
• LIMIT关键字是MySQL特有关键字;
• LIMIT限制SELECT返回结果的行数;
• n 表示第一条记录的偏移量,m 表示显示记录的数量;
•“[ ]”包含的内容可以省略。
二、多表查询
针对数据库中两张或者两张以上的表同时进行查询,依赖的手段有复杂查询和嵌套查询。
1. 等值查询和非等值查询
非等值查询:SELECT * FROM 表1,表2
等值查询:SELECT * FROM 表1,表2 WHERE 表1.字段1 = 表2.字段2...
• 与单表查询类似,都是SELECT语句;
• 把多个表放到FROM后,并用逗号隔开;
• 可使用AS关键字取别名,便于引用;
• 如无重名查询字段则可省略数据表的指定。
2. 连接查询
SELECT * FROM 表1 LEFT|right|INNER JOIN 表2 ON 条件
LEFT JOIN
从左表(表1)中返回所有的记录,即便在右
(表2)中没有匹配的行。
RIGHT JOIN
从右表(table_2)中返回所有的记录,即便
在左(table_1)中没有匹配的行。
INNER JOIN
在表中至少一个匹配时,则返回记录。
3.UNION
union 是求两个查询的并集。
select A.field1 as f1, A.field2 as f2 from <table1> A
union
(select B.field3 as f1, field4 as f2 from <table2> B)
order by 字段 desc/asc
注意:
1列名不一致时,会以第一张表的表头为准,并对其栏目。
2会将重复的行过滤掉。
3如果查询的表的列数量不相等时,会报错。
4在每个子句中的排序是没有意义的,mysql在进行合并的时候会忽略掉。
5如果子句中的排序和limit进行结合是有意义的。
6可以对合并后的整表进行排序
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值