SQL语言特点
1.一体化 2.高度非过程化 3.面向集合的操作方式 4.提供多种使用方式 5.语言简洁
SQL语言的功能
1.数据定义 :create,drop,alter
2.数据查询 :select
3.数据操作 :insert,update,delete
4.数据控制 :grant,revoke,deny
数据库定义
1.数据库中创建使用create dadtbase语句
2.数据库修改使用alter database语句
3.数据库删除使用drop database语句
架构的定义
1.架构中创建使用create schema语句
2.架构库修改使用alter schema语句
3.架构库删除使用drop schema语句
表的定义
1.表创建使用create table语句
2.约束
NOT NULL :非空约束限制列取值非空
PRIMARY KEY :主键约束指定本列为主键
FOREIGN KEY :外键约束列为引用其他表的外键
UNIQUE :唯一值约束限制列取值不能重复
DEFAULT :默认值约束指定列的默认值
CHECK :列取值范围约束限制列的取值范围
3.数据查询功能:单表查询
select<目标列名序列>
from <表名>[join<表名>on<连接条件>]
[where<行选择条件>]
[group by <分组依据列>]
[having <组选择条件>]
[order by <排列依据列>]
4.选择表中诺干行
where子句常用的查询条件
比较:=,>,<,>=,<=,<>,!=
确定范围:between~~~~~and,not between~~~~~and
确定集合:in,not in
字符匹配:like,not like
空值:is null,is not null
多重条件:and,or
多表连接查询:
1.内连接
ANSI方式的内连接格式:
from 表1 [inner] join 表2 on<连接条件>
theta方式的内连接格式:
from 表1 , 表2 where<连接条件>
连接条件格式:[<表名1>]<列名1><比较运算符>[<表名2>]<列名2>
2.外连接
ANSI方式的内连接格式:
from 表1 left/rigth [outer] join 表2 on<连接条件>
theta方式的内连接格式:
from 表1 , 表2 where[表名1] 列名1(+) = [表名2] 列名2
from 表1 , 表2 where[表名1] 列名1 = [表名2] 列名2(+)
3.带exists谓词的子查询
where [not] exists(子查询)
带exists谓词的子查询,不返回查询的数据,只产生逻辑真值或假值。
视图的概述:
1.好处:简化数据查询语句,使用户能从多角度对待数据,提高了数据的安全性,提供了一定程度的逻辑独立性。
2.视图的定义及使用
一般格式:create view <视图名>[(列名[1,……,n])]
AS select语句
select语句不包括order by 和distinct子句。
3.视图删除和修改
删除:drop view <视图名>
修改:alter view <视图名>[(列名[1,……,n])] AS select语句
4.数据更改功能
单行插入:insert [into] <表名>[(<列表名>)] VALues(值列表)
多行插入:insert [into] <表名>[(<列表名>)] select(值列表)
数据更新:update<表名>set<列名>={表达式/default/NULL}[,……n]
[from <条件表名>[,……n]]
[where<更新条件>]