数据库基础教程
操作符 SELECT CREATE,ALTER,DROP INSERT,UPDATE,DELETE GRANT,REVOKE
示例关系
DEPT(D# , DNAME , DEAN) S(S# , SNAME , SEX , AGE , D#) COURSE(C# , CN , PC# , CREDIT) SC(S# , C# , SCORE) PROF(P# , PNAME, AGE, D# , SAL) PC(P# , C#)
基本表的定义
基本表的定义(CREATE)
格式
create table 表名( 列名 数据类型 [default 缺省值] [not
null] [,列名 数据类型 [default 缺省值] [not
null]]
……
[,primary key(列名 [,列名] …)] [,foreign key (列名 [,列名] …)
SQL-92
“数据库语言SQL”,是SQL-89的超集,增加了许多新特性,如新的数 据类型,更丰富的数据操作,更强的完整性、安全性支持等。
SQL-3
正在讨论中的新的标准,将增加对面向对象模型的支持
SQL概述
特点
一体化
集DDL,DML,DCL于一体 单一的结构----关系,带来了数据操作符的统一
Jose研究室研制,称为Sequel
SQL概述
SQL用户
用户1
用户2
用户3
用户4
VIEW
Base Table
基本表B1
视图V1
视图V1
基本表B2 基本表B3 基本表B4
存储文件S1 存储文件S2 存储文件S3 存储文件S4
Stored file
SQL数据库体系结构
SQL概述
标准化
有关组织
ANSI(American Natural Standard Institute) ISO(International Organization for Standardization)
有关标准
SQL-86
“数据库语言SQL”
SQL-89
“具有完整性增强的数据库语言SQL”,增加了对完整性约束的支持
面向集合的操作方式
一次一集合
高度非过程化
用户只需提出“做什么”,无须告诉“怎么做”,不必了解存取路 径
两种使用方式,统一的语法结构
SQL既是自含式语言(用户使用),又是嵌入式语言(程序员使用)
语言简洁,易学易用
SQL概述
SQL功能 数据查询 数据定义 数据操纵 数据控制
格式
drop table 表名
示例
drop table DEPT
SQL数据定义功能
域定义 基本表的定义 索引的定义 数据库的建立与撤消 SQL数据定义特点
域定义
域类型(SQL-92)
char(n):固定长度的字符串 varchar(n):可变长字符串 int:整数 smallint:小整数类型 numeric(p,d):定点数,小数点左边p位,右边q位 real:浮点数 double precision:双精度浮点数 date:日期(年、月、日) time:时间(小时、分、秒) interval:两个date或time类型数据之间的差
域定义
域定义
格式
create domain 域名 数据类型
示例
create domain person-name char(20)
类似C语言中:
typedef ADDRESS_LIST{
char char char char ADDRESS_LIST tom;
name[10]; telephone[20]; location[20] email[20]};
references 表名 (列名 [,列名] …)]ຫໍສະໝຸດ 基本表的定义 示例
CREATE TABLE S ( S# CHAR(4), SNAME CHAR(8) NOT NULL, AGE SMALLINT, SEX CHAR(1), PRIMARY KEY (S#), CHECK (SEX=0 OR SEX=1) )
基本表的定义
修改基本表定义(ALTER)
格式:
alter table 表名 [add 子句] [drop 子句] [modify 子句]
示例
alter table PROF add LOCATION
增加新列 删除列 修改列定义
char[30]
基本表的定义
撤消基本表定义(drop)
提纲
SQL概述 SQL数据定义功能 SQL数据查询功能 SQL数据修改功能 SQL数据控制功能 嵌入式SQL
SQL概述
历史
SQL: Struceured Query Languang 1974年,由Boyce和Chamber提出 1975-1979 年 , 在 System R 上 实 现 , 由 IBM 的 San
基本表的定义
示例
create domain person_name char(20) create table PROF
( PNO char[10], person_name PNAME not null, SAL int, AGE int, DNO char[10], primary key (PNO), foreign key (DNO) references DEPT(DNO), check (SAL > 0))
基本表的定义
CREATE TABLE C ( C# CHAR(4), CNAME CHAR(10) NOT NULL, TEACHER CHAR(8), PRIMARY KEY (C#), )
基本表的定义
CREATE TABLE SC (S# CHAR(4), C# CHAR(4), GRADE SAMLLINT, PRIMARY KEY (S#,C#), FOREIGN KEY (S#) REFERENCES S(S#), FOREIGN KEY (C#) REFERENCES C(S#), CHECK((GRADE IS NULL) OR GRADE BETWEEN 0 AND 100))