关系数据库 SQL
SQL is a standard language for storing, manipulating and retrieving data in databases.
数据定义
关系数据库系统支持三级模式结构,其模式,外模式和内模式中的基本对象有模式,表,视图和索引等。因此 SQL 的数据定义功能包括模式定义,表定义,视图和索引的定义,如下表所示:
操作对象 创建 删除 修改
模式 create schema drop schema
表 create table drop table alter table
视图 create view drop view
索引 create index drop index alter index
数据查询
格式
Here, column1, column2, ... are the field names of the table you want to select data from.
The table_name represents the name of the table you want to select data from.
单表查询
除了查询表的指定列,还可以查询列的表达式,birthday 是 student 表的出生日期列,查询学生的年龄: age = TIMESTAMPDIFF(YEAR,birthday,CURDATE())
条件查询
The following operators can be used in the WHERE clause:=, >, <, >=, <=, <>, BETWEEN, LIKE, IN.
查询 2010 年及以后出生的学生姓名:
聚合查询:通过聚合函数汇总查询出的指定列
聚合函数:聚合函数:AVG(平均值),MIN(最小值),MAX(最大值),SUM(和),COUNT(计数)。
查询学生的平均年龄
分组查询:将查询结果按照指定字段进行分组,字段中数据相等的分为一组。
分组查询基本的语法格式如下:
GROUP BY 列名 [HAVING 条件表达式]
说明:
列名: 是指按照指定字段的值进行分组。
HAVING 条件表达式: 用来过滤分组后的数据。
统计不同性别的人的个数:
连接查询
A JOIN clause is used to combine rows from two or more tables, based on a related column between them.
Different Types of SQL JOINs
Here are the different types of the JOINs in SQL:
(INNER) JOIN
: Returns records that have matching values in both tablesLEFT (OUTER) JOIN
: Returns all records from the left table, and the matched records from the right tableRIGHT (OUTER) JOIN
: Returns all records from the right table, and the matched records from the left tableFULL (OUTER) JOIN
: Returns all records when there is a match in either left or right table
嵌套查询
出现在其他语句内部的 SELECT 语句,称为子查询或内查询(其他语句:不限于 SELECT 语句,不过最常出现在 SELECT 语句内部)。与之相对地,外部的查询语句,称为外查询或主查询。
分类:
按子查询出现的位置:SELECT 后面、FROM 后面、WHERE 或 HAVING 后面、EXISTS 后面(相关子查询)
按查询结果的行列数:标量子查询(结果只有一行一列)、列子查询(结果只有一列多行,也称为多行子查询)、行子查询(结果有一行多列或多行多列)、表子查询(结果一般为多行多列)
SELECT 后面:仅仅支持标量子查询
FROM 后面:支持表子查询
WHERE 或 HAVING 后面:主要支持标量子查询和列子查询,行子查询用得比较少
EXISTS 后面:支持表子查询
集合查询
并集:union 是将多个查询结果组合到一个查询结果中,并且去掉重复值,相当于做了一次 group by 分组操作。
union all 是将多个查询结果组合到一个查询结果中,不会去掉重复值,也就是说重复的数据也会显示出来。
交集:intersect 用于返回多个查询结果中重叠的部分。
差集:minus 用于返回两个查询结果的差集。
评论