SQL语言分为以下几部分:数据定义语言(DDL),数据操作语言(DML)
一,SQL数据定义
基本类型:
char(n):固定长度字符串
varChar(n):可变长度字符串
int:整数类型
smallint:小整数类型
numeric(p, d):定点数,精度由用户指定
real, double precision:浮点数和双精度浮点数
float(n):精度为n位的浮点数
基本定义模式:
create table r
(A1 D1,
A2 D2,
...,
An. Dn,
<完整性约束1>,
...,
<完整性约束k>);
SQL可支持多种不同的完整性约束:
primary key(Aj1, Aj2…Ajn):
表示属性Aj1, Aj2…Ajn构成关系的主码
foreign key(Aj1, Aj2…Ajn)references:
not null:
表示该属性上不允许空值
添加数据:
insert 将数据加载到关系中
insert into instructor
value(1001, 'Smith', 'Teacher');
alter table为已有关系增加属性:
alter tabel r add A D;
A为待添加属性名字,D为待添加属性的域
删除操作:
delete 保留关系r,但删除所有元组:
delete from r;
drop table 删除r所有元组还删除r的模式:
drop table r;
二,SQL查询的基本结构
SQL的查询关系由三个子句构成:select, from, where
1,关系查询
select
select name
from instructor;
删除重复,可在select后加入关键词distinct:
select distinct name
from instructor;
加入关键词all表示不去除重复:
select all name
from instructor;
where 允许选出满足特定谓语的元组
select name
from instructor
where salary > 7000 and age < 30;
2,多关系查询
select name, instructor.dept_name, building
from instructor, department
where instructor.dept_name = department.dept_name
3,自然连接
运算作用于两个关系,并产生一个关系作为结果
select name, course_id
from instructor natural join teachs