SQL语言
SQL主要分成四部分:
(1)数据定义。(DDL)用于定义SQL模式、基本表、视图和索引的创建和撤消操作。
(2)数据操纵。(DML)数据操纵分成数据查询和数据更新两类。数据更新又分成插入、删除、和修改三种操作。
(3)数据控制。包括对基本表和视图的授权,完整性规则的描述,事务控制等内容。
(4)嵌入式SQL的使用规定。涉及到SQL语句嵌入在宿主语言程序中使用的规则。
数据定义(DDL) | Create、Drop、Alter | ||
数据操纵(DQL) | Insert、Update、Delete | ||
数据控制(DML) | Grant、Revoke、Deny | ||
数据查询(DCL) | Select |
- SQL支持的数据类型
1.数值型(精确数据、近似数字)
2.日期时间型
3.字符串型(普通字符编码串、统一字符编码串、二进制串)
4.其他类型
- 数据定义功能
1.数据库创建
2.数据库修改
3.数据库删除
not all:非空约束,限制列取值非空。
primary key:主键约束,指定本列为主键。
foreign key:外键约束,定义本列为引用其他表的外键。
unique:唯一值约束,限制列取值不能重复。
default:默认值约束,指定列的默认值。
check:列取值范围约束,限制列的取值范围。
单表查询
- select子句用于指定输出字段。
- from子句用于指定数据的来源。
- where子句用于指定数据的行选择条件。
- group by子句用于对检索到的记录进行分组。
- having 子句用于指定对分组后结果的选择条件。
- order by子句用于对查询的结果进行排序。
like运算符的一般语法格式为:
列名 【not】 like <匹配串>
- _(下划线):匹配任意一个字符。
- %(百分号):匹配0到多个字符。
- 【】:匹配【】中任意字符。
- 【^】:不匹配【】中的任意字符。
聚合函数进行统计:
- count(*):统计表中元组的个数。
- count(【distinct】<列名>):统计本列的列值个数,distinct选项表示去掉列的重复后在统计。
- sum(<列名>):计算列值的和值(必须是数值型列)。
- avg(<列名>):计算列值的平均值(必须是数值型列)。
- max(<列名>):得到列值的最大值。
- min(<列名>):得到列值的最小值。
多表连接查询
内连接
1.from 表1 【inner】 join 表2 on <连接条件>
2.from 表1, 表2 where <连接条件>
常用1
<连接条件>的一般格式为:
【<表名1.>】<列名><比较运算符>【<表名2.>】<列名2>
外连接
左外连接:from 表1,表2 where 【表1.】列名(+)=【表2.】列名
右外连接:from 表1,表2 where【表1.】列名=【表2.】列名(+)
Top的使用
格式:
Top n 【percent】【with ties】
其中:
- n为非负整数。
- Top n:取查询结果的前n行数据。
- Top n precent :取查询结果的前n%行数据。
- with ties:包括并列的结果。
not in 等价于 <>all(子查询)
intersect交运算
union并运算
except差运算
视图