SQL语言全称是结构化查询语言
RDBMS为关系数据库管理系统
SQL语言的特点:
(1)一体化;
(2)高度非过程化;
(3)面向集合的操作方式;
(4)提供多种方式使用;
(5)语言简洁。
SQL语言的功能:
SQL语言按其功能可分为4大部分:数据定义、数据查询、数据操纵和数据控制。
SQL功能 | 谓词 | 对象 |
数据定义 | Create定义、Drop删除、Alter修改 | 数据库、关系表、视图、索引 |
数据查询 | Select查询 | 数据库数据 |
数据操纵 | Insert添加、Delete删除、Update修改 | 数据库数据 |
数据控制 | / | / |
1. 数据库的定义:
(1) 数据库创建:Create Database <数据库名>
(2) 数据库修改:Alter Database <数据库名>
(3) 数据库删除:Drop Database <数据库名>
(4) 数据库使用:Use <数据库名>
2. 表的定义:
(1) 表的创建:Create Database <表名> ({<属性名> <数据类型> [长度] [列级完整性约束定义],......} [表级完整性约束定义])
在列级完整性约束处可以定义如下约束:
Not Null:非空约束,限制列取值非空。
Primary Key:主键约束,指定本列为主键。Primary Key [(<属性名>[,...n])]
Foreign Key:外键约束,定义本列为引用其他表的外键。[Foreign Key (<属性名>)] References <外表名> (<外表属性名>)
Unique:唯一约束,限制列取值不能重复。Unique [(<属性名>[,...n])]
Default:默认值约束,指定列的默认值。Default 常量表达式或者Default 常量表达式 For 属性名
Check:列取值范围约束,限制列的取值范围。Check (逻辑表达式)
(2) 表的修改:Alter Table <表名>{
Alter Column <属性名> <新数据类型> ——修改列定义
Add <属性名> <数据类型> [约束] ——添加新列
Drop Column <属性名> ——删除列
Add [Constraint <约束名>] 约束定义 ——添加约束
Drop <约束名> ——删除约束 }
3. 表的删除:Drop Table <表名>
单表查询
1. 选择表中若干列:select <属性名列表|*(全部属性)>
2. 选择表中若干行:where <条件表达式>
(1) 比较大小。比较大小的运算符有:=、>、>=、<=、<、<>(不等于)、!=(不等于)。
(2) 确定范围。Between ... and(包括边界值)和nut between ... and(不包括边界值)运算符可用于查找属性值在(或不在)指定范围内的元组。
格式:属性名|表达式 [not] between 下限值 and 上限值
(3) 确定集合。In运算符可用于查找属性值在指定集合范围内的元组。
格式:属性名 [not] in (常量1,常量2,...,常量n)
(4) 字符串匹配。Like运算符用于查找指点列中与匹配串常量匹配的元组。
格式:属性名 [not] like <匹配串>
_(下划线):匹配任意一个字符。
%(百分号):匹配0个到多个字符。
[]:匹配[]中的任意一个字符。
[^ ]:不匹配[^ ]中的任意字符。
后两者若有连续的用‘-’表示。
如果要查找的字符串正好含有通配符,则使用escape来表示。
格式:escape 转义字符
(5) 涉及空值的查询。空值(NULL)在数据库中有特殊的含义,它表示当前不确定或未知的值。
格式:属性名 is [not] NULL
(6) 多重条件查询。当需要多种条件查询时,可以在where字句中使用逻辑运算符and和or来组成多条件查询。
(7) 消除取值相同的行。
格式:select distinct <属性名|*(全部属性)>
3. 对查询结果进行排序:order by <属性名> [asc(升序为默认)|desc(降序)] [,...n]
4. 使用聚合函数进行统计:
(1) count(*):统计表中元组的个数。
(2) Count([distinct] <属性名>):统计本列的列值个数。
(3) Sum(<属性名>):计算列值的和值。(必须数值型列)
(4) Avg(<属性名>):计算列值的平均值。(必须数值型列)
(5) Max(<属性名>):得到列值的最大值。
(6) Min(<属性名>):得到列值的最小值。
5. 对数据进行分组:group by子句提供了对数据进行分组的功能,having子句用于对分组后的统计结果在进行筛选。
格式:group by <分组属性> [,...n] [having <组提取条件>]