slide1
Download
Skip this Video
Download Presentation
第 6 讲 SQL 语言基础及数据定义功能

Loading in 2 Seconds...

play fullscreen
1 / 37

第 6 讲 SQL 语言基础及数据定义功能 - PowerPoint PPT Presentation


  • 167 Views
  • Uploaded on

第 6 讲 SQL 语言基础及数据定义功能. www.desktop.swpu.edu.cn. 1. 2. 3. 4. SQL 语言功能概述. 数据定义. SQL 概述. 学生课程数据库简介. 本讲内容. 6.1 SQL 概述. SQL ( Structured Query Language ) 结构化查询语言,是关系数据库的标准语言. SQL 是一个通用的、功能极强的关系数据库语言. 现在所有的关系数据库管理系统都支持 SQL ,就连个人计算机上使用的数据库也不例外。. 2. 3. 1. SQL 语言特点.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' 第 6 讲 SQL 语言基础及数据定义功能' - malcolm-holcomb


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide2

1

2

3

4

SQL语言功能概述

数据定义

SQL概述

学生课程数据库简介

本讲内容

6 1 sql

6.1 SQL概述

  • SQL(Structured Query Language)

结构化查询语言,是关系数据库的标准语言

  • SQL是一个通用的、功能极强的关系数据库语言
  • 现在所有的关系数据库管理系统都支持SQL,就连个人计算机上使用的数据库也不例外。
6 1 sql1

2

3

1

SQL语言特点

SQL语言基本概念

SQL语言的发展

6.1 SQL概述
slide5

一、SQL语言的发展

最早的SQL原型是IBM的研究人员在70年代开发的,该原型被命名为SEQUEL(由Structured English QUEry Language)。

随着SQL语言的颁布,各数据库厂商纷纷在他们的产品中引入并支持SQL语言,但尽管绝大多数产品对SQL语言的支持大部分是相似的,但它们之间也存在着一定的差异。

slide6

在SQL89的基础上,经过3年多的研究和修改,ISO和ANSI共同于1992年8月又公布了SQL的新标准,即SQL-92(或称为SQL2)。SQL-92标准也不是非常完备的,1999年又颁布了新的SQL标准,称为SQL-99或SQL3

SQL就是关系数据库管理系统(RDBMS)的标准语言。最早的SQL标准是1986年10月由美国ANSI公布的。随后,ISO于1987年6月也正式采纳它为国际标准,并在此基础上进行了补充,到1989年4月,ISO提出了具有完整性特征的SQL,并称之为SQL-89。

slide7

二、 SQL语言特点

高度非过程化

2

1

3

综合统一

简洁易用

SQL语言特点

4

5

以多种

方式使用

面向集合

的操作方式

slide8

1、综合统一

  • 集数据定义语言(DDL),数据操纵语言(DML),数据控制语言(DCL)功能于一体。
  • 可以独立完成数据库生命周期中的全部活动:
  • 定义关系模式,插入数据,建立数据库;
  • 对数据库中的数据进行查询和更新;
  • 数据库重构和维护
  • 数据库安全性、完整性控制等
  • 用户数据库投入运行后,可根据需要随时逐步修改模式,不影响数据的运行。
  • 数据操作符统一
slide9

2、高度非过程化

作用:减轻用户负担,且有利于提高数据独立性

  • 非关系数据模型的数据操纵语言“面向过程”,必须制定存取路径
  • SQL只要提出“做什么”,无须了解存取路径。
  • 存取路径的选择以及SQL的操作过程由系统自动完成。
slide10

3、简洁易用

  • SQL功能极强,完成核心功能只需9个动词。
slide11

4、面向集合的操作方式

  • 非关系数据模型采用面向记录的操作方式,操作对象是一条记录
  • SQL采用集合操作方式
  • 操作对象、查找结果可以是元组的集合
  • 一次插入、删除、更新操作的对象可以是元组的集合
slide12

5、以多种方式使用

作用:以上使用方式为用户提供了灵活的选择余地。

  • SQL语言可以直接以命令方式交互使用,是独立的语言。
  • SQL又是嵌入式语言
  • SQL能够嵌入到高级语言(例如Visual Basic、C,C++,Java等)程序中,供程序员设计程序时使用
slide13

三、 SQL的基本概念

3

4

2

1

存储文件

基本表

三级模式结构

视图

slide14

1、三级模式结构

SQL

视图1

视图2

外模式

基本表1

基本表2

基本表3

基本表4

模 式

存储文件2

存储文件1

内模式

  • SQL支持关系数据库三级模式结构
slide15

2、基本表

  • 本身独立存在的表
  • SQL中一个关系就对应一个基本表
  • 一个(或多个)基本表对应一个存储文件
  • 一个表可以带若干索引
slide16

3、存储文件

  • 逻辑结构组成了关系数据库的内模式
  • 物理结构是任意的,对用户透明
slide17

4、视图

  • 从一个或几个基本表导出的表
  • 数据库中只存放视图的定义而不存放视图对应的数据
  • 视图是一个虚表
  • 用户可以在视图上再定义视图
slide18
6.2 学生-课程数据库简介

1

2

3

4

学生-课程模式ST

Student表数据

Course表数据

SC表数据

1 s t

1 、学生-课程模式 S-T

  • 学生表:

Student(Sno,Sname,Ssex,Sage,Sdept)

  • 课程表:

Course(Cno,Cname,Cpno,Ccredit)

  • 学生选课表:

SC(Sno,Cno,Grade)

6 3 sql

6.3 SQL语言功能概述

SQL按其功能可分为四大部分:数据定义功能、数据控制功能、数据查询功能和数据操纵功能。

slide24
数据定义功能用于定义、删除和修改数据库中的对象;数据定义功能用于定义、删除和修改数据库中的对象;

数据查询功能用于实现查询数据的功能;

数据操纵功能用于实现对数据库数据的增加、删除和修改;

数据控制功能用于实现控制用户对数据库的操作权限。

slide25

1

2

3

定义基本表

删除基本表

修改表结构

6.4 数据定义功能
slide26

一、定义基本表

  • Create Table的一般格式为 :

CREATE TABLE <表名>(

<列名> <数据类型> [列级完整性约束定义]

{, <列名> <数据类型> [列级完整性约束定义] … }

[, 表级完整性约束定义 ] )

<表名>:所要定义的基本表的名字。

<列名>:表中所包含的属性列的名字,

<数据类型>:指明列的数据类型。

slide27
在定义表的同时可以定义与表有关的完整性约束条件。如果完整性约束只涉及到表中的一个列,则可以在列级完整性约束定义处定义,也可以在表级完整性约束定义处定义;如果完整性约束条件涉及表中多个属性列,则必须在表级完整性约束定义处定义。在定义表的同时可以定义与表有关的完整性约束条件。如果完整性约束只涉及到表中的一个列,则可以在列级完整性约束定义处定义,也可以在表级完整性约束定义处定义;如果完整性约束条件涉及表中多个属性列,则必须在表级完整性约束定义处定义。
  • 在定义基本表时可以同时定义列的取值约束。在列定义同时定义的约束我们称为列级完整性约束定义,在表定义的最后定义的完整性约束我们称为表级完整性约束。
slide28
在列级完整性约束定义处可以定义如下约束:
  • NOT NULL:限制列取值非空
  • DEFAULT:给定列的默认值,使用形式为:DEFAULT 常量
  • UNIQUE:限制列取值不重
  • CHECK:限制列的取值范围,使用形式为:CHECK(约束表达式)
  • PRIMARY KEY:指定本列为主码
  • FOREIGN KEY:定义本列为引用其他表的外码。使用形式为:
  • [FOREIGN KEY][<列名>] REFERENCES <外表名>(<外表列名>)
not null default

第一,如果CHECK约束是定义多列之间的取值约束;第一,如果CHECK约束是定义多列之间的取值约束;

第二,如果表的主码由多个列(超过1列)组成;

第三,如果在表级完整性约束处定义外码,则FOREIGN KEY和<列名>均不能省,且<列名>必须用括号括起来。

NOT NULL和DEFAULT不能在表级完整性约束处定义之外,其他约束均可在表级完整性约束处定义。但有些约束必须在表级约束处定义:

sql student

创建Student表的SQL语句如下:

用SQL语句创建Student表

Student表结构如下:

CREATE TABLE Student (

Sno char ( 7 ) PRIMARY KEY,

Sname char ( 10 ) NOT NULL,

Ssex char (2) CHECK (Ssex = \'男\' OR Ssex = \'女\'),

Sage tinyint CHECK (Sage >= 15 AND Sage <=45),

Sdept char (20 ) DEFAULT \'计算机系\' )

sql course

course表结构

用SQL语句创建Course表

CREATE TABLE Course (

Cno char(10) NOT NULL,

Cname char(20) NOT NULL,

Ccredit tinyint CHECK (Ccredit > 0),

Semester tinyint CHECK (Semester > 0),

Period int CHECK (Period > 0),

PRIMARY KEY(Cno) )

sql sc

SC表结构

用SQL语句创建SC表

CREATE TABLE SC (

Sno char(7) NOT NULL,

Cno char(10) NOT NULL,

Grade tinyint,

CHECK (Grade >= 0 and Grade <= 100),

PRIMARY KEY( Sno, Cno ),

FOREIGN KEY ( Sno ) REFERENCES Student ( Sno ),

FOREIGN KEY ( Cno ) REFERENCES Course ( Cno ) )

slide33

二、删除表

DROP TABLE <表名> { [, <表名> ] … }

例:删除test表的语句为:

删除表的语句格式为:

DROP TABLE test

slide35

3、ALTER TABLE语句的部分格式

ALTER TABLE<表名>

[ ALTER COLUMN <列名> <新数据类型>] -- 修改列定义

| [ ADD [COLUMN] <列名> <数据类型> [属性] -- 添加新列

| [ DROP COLUMN <列名> ] -- 删除列

| [ADD PRIMARY KEY(列名 [,… n ] )] -- 添加主码约束

| [ADD FOREIGN KEY(列名)REFERNECES表名(列名)] -- 添加外码约束

2 xklb char 6 alter table sc alter column xklb char 6

例3.删除Course表的Period列

ALTER TABLE Course

DROP COLUMN Period

例2.将新添加的XKLB的类型改为char(6)。

ALTER TABLE SC

ALTER COLUMN XKLB char(6)

ad