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

您所在的位置:网站首页 SQL基础语句汇总增删改查 数据库基本增删改查语法和多表连查的方式

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

2023-04-23 14:09| 来源: 网络整理| 查看: 265

目录

一、什么是数据库?

二、常见的数据库

三、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 A union (select B.field3 as f1, field4 as f2 from B) order by 字段 desc/asc 注意: 1列名不一致时,会以第一张表的表头为准,并对其栏目。 2会将重复的行过滤掉。 3如果查询的表的列数量不相等时,会报错。 4在每个子句中的排序是没有意义的,mysql在进行合并的时候会忽略掉。 5如果子句中的排序和limit进行结合是有意义的。 6可以对合并后的整表进行排序


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3