数据库系统概念03sql

更新时间:2023-05-18 04:12:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

提纲3.1背景 3.2数据定义 3.3SQL查询的基本结构 3.4集合运算 3.5聚集函数 3.6空值 3.7嵌套子查询 3.8复杂查询 3.9视图 3.10数据库的修改 3.11连接关系 2013年7月29日星期一

数据库系统概念----SQL

3.1背景

历史–SQL: Structured Query Languang –1974年,由Boyce和Chamber提出 –1975-1979年,在System R上实现,由IBM的San Jose研究室研制,称为Sequel

2013年7月29日星期一

数据库系统概念----SQL

3.1背景SQL用户

用户1

用户2视图V1

用户3

用户4视图V2

VIEW Base Table

基本表B1 存储文件S1Stored file

基本表B2 存储文件S2

基本表B3 存储文件S3

基本表B4 存储文件S4

SQL数据库体系结构2013年7月29日星期一

数据库系统概念----SQL

3.1背景

标准化–有关组织

ANSI(American Natural Standard Institute) ISO(International Organization for Standardization) SQL-86– 数据库语言SQL

–有关标准

SQL-89– 具有完整性增强的数据库语言SQL ,增加了对完整性约束的支持

SQL-92– 数据库语言SQL ,是SQL-89的超集,增加了许多新特性,如新的 数据类型,更丰富的数据操作,更强的完整性、安全性支持等。

SQL-3–正在讨论中的新的标准,将增加对面向对象模型的支持 数据库系统概念----SQL

2013年7月29日星期一

3.1背景

特点– 一体化

集DDL,DML,DCL于一体 单一的结构----关系,带来了数据操作符的统一 一次一集合

– 面向集合的操作方式

– 高度非过程化

用户只需提出 做什么 ,无须告诉 怎么做 ,不必了解存取路 径SQL既是自含式语言(用户使用),又是嵌入式语言(程序员使用)

– 两种使用方式,统一的语法结构

– 语言简洁,易学易用2013年7月29日星期一

数据库系统概念----SQL

3.1背景

SQL组成:– 数据定义语言(DDL) – 数据操纵语言(DML) – 数据控制语言(DCL)

其他– 完整性(Integrity) – 视图定义(View Definition) – 事务控制(Transaction Control) – 嵌入式SQL和动态SQL(Embedded SQL and Dynamic SQL) – 授权(Authorization)

2013年7月29日星期一

数据库系统概念----SQL

3.1背景SQL功能 数据查询数据定义

操作符 SELECTCREATE,ALTER,DROP

数据操纵数据控制

INSERT,UPDATE,DELETEGRANT,REVOKE

2013年7月29日星期一

数据库系统概念----SQL

示例关系DEPT(D# , DNAME , DEAN)S(S# , SNAME , SEX , AGE , D#) COURSE(C# , CN , CREDIT) SC(S# , C# , SCORE) PROF(P# , PNAME, AGE, D# , SAL) PC(P# , C#)

2013年7月29日星期一

数据库系统概念----SQL

3.2数据定义3.2.1域类型 3.2.2基本表的定义 11.10索引的定义 数据库的建立与撤消 SQL数据定义特点

2013年7月29日星期一

数据库系统概念----SQL

3.2.1域类型

域类型(SQL-92)–char(n):固定长度的字符串 –varchar(n):可变长字符串 –int:整数 –smallint:小整数类型 –numeric(p,d):定点数,小数点左边p-d位,右边d位 –float:浮点数 –double precision:双精度浮点数 –date:日期(年、月、日) –time:时间(小时、分、秒) –interval:两个date或time类型数据之间的差2013年7月29日星期一

数据库系统概念----SQL

3.2SQL数据定义功能

2013年7月29日星期一

数据库系统概念----SQL

3.2.2基本表的定义–示例CREATE TABLE S ( S# CHAR(4), SNAME CHAR(8) NOT NULL, AGE SMALLINT, SEX CHAR(1), constraint pk_s PRIMARY KEY (S#), CHECK (SEX=0 OR SEX=1) )2013年7月29日星期一

数据库系统概念----SQL

3.2.2基本表的定义CREATE TABLE <表名>(<列名> <数据类型>[ <列级完整性约束条件> ] [ , < 列 名 > < 数 据 类 型 >[ < 列 级 完 整 性 约 束 条 件 >] ] … [,<表级完整性约束条件> ] );

– <表名>:所要定义的基本表的名字 – <列名>:组成该表的各个属性(列) – <列级完整性约束条件>:涉及相应属性列的完整性 约束条件 – <表级完整性约束条件>:涉及一个或多个属性列的 完整性约束条件2013年7月29日星期一

数据库系统概念----SQL

3.2.2基本表的定义create table 表名(列名 数据类型 [default 缺省值] [not null][,列名 数据类型[default 缺省值] [not null]]

……[,primary key(列名 [,列名] …)] [,foreign key (列名 [,列名] …)

references 表名 (列名 [,列名] …)][,check(条件)])2013年7月29日星期一

数据库系统概念----SQL

3.2.2基本表的定义示例

CREATE TABLE C ( C# CHAR(4), CNAME CHAR(10) NOT NULL, TEACHER CHAR(8), constraint pk_c PRIMARY KEY (C#) )

2013年7月29日星期一

数据库系统概念----SQL

3.2.2基本表的定义CREATE TABLE SC (S# CHAR(4), C# CHAR(4), GRADE SAMLLINT, constraint pk_sc PRIMARY KEY (S#,C#), constraint fk_scs FOREIGN KEY (S#) REFERENCES S(S#), constraint fk_scc FOREIGN KEY (C#) REFERENCES C(C#), CHECK((GRADE IS NULL) OR (GRADE BETWEEN 0 AND 100))2013年7月29日星期一

数据库系统概念----SQL

3.2.2基本表的定义create table PROF ( PNO char(10), PNAME char(20), not null, SAL int, AGE int, DNO char(10), primary key (PNO), foreign key (DNO) references DEPT(DNO), check (SAL > 0))2013年7月29日星期一

数据库系统概念----SQL

3.2.2基本表的定义

常用完整性约束–主码约束: PRIMARY KEY –唯一性约束:UNIQUE –非空值约束:NOT NULL –参照完整性约束:FOREIGN KEY PRIMARY KEY与 UNIQUE的区别?

2013年7月29日星期一

数据库系统概念----SQL

3.2.2基本表的定义

修改基本表

定义(ALTER)–格式:

alter table 表名 [add 子句] [drop 子句] [modify 子句]

增加新列删除列 修改列定义

2013年7月29日星期一

数据库系统概念----SQL

3.2.2基本表的定义–示例

alter table PROF add LOCATION

char(30);

alter table Student MODIFY name varchar2(30);

Alter table PROF add LOCATION char[30] not null;???2013年7月29日星期一

数据库系统概念----SQL

本文来源:https://www.bwwdw.com/article/xts4.html

Top