数据库原理(第三版)(张红娟)ppt3资料

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
<列名><数据类型>[<默认值>|<标识列设置>][<该列的完 整性约束>]
其中,不同列的内容之间用西文逗号隔开。
(3) <列名>:规定了该列(属性)的名称。一个表中不能 有两列同名。
(4) <数据类型>:规定了该列的数据类型。各具体 DBMS所提供的数据类型是不同的,但对下面的数据类型几 乎都是支持的(方括号中间的内容为选择项):
(5) <默认值>:DEFAULT 常量表达式,表示该列上某 值未被赋值时的默认值。
(6) <标识列设置>:IDENTITY(初始值、步长值),当向 表中添加新行时,Microsoft SQL Server将为该标识列提供一 个唯一的、递增的值。
(7) <该列的完整性约束>:该列上数据必须符合的条件 。最常见的有:
(5) 语言简洁,易学易用。SQL语言功能丰富,集数据定 义、数据操纵、数据控制功能于一体,而且语言简洁,完成
核心功能只用了9个动词,易学易用。
2.SQL语句的分类 SQL命令核心功能主要有以下几类。 (1) 数据定义语言(Data Definition Language,简称DDL) :负责创建、修改、删除表、索引和视图等对象,由动词 Create、Alter、Drop组成。 (2) 数据操作语言(Data Manipulation Language,简称 DML):负责数据库中数据的插入、修改、查询和删除操作 ,由动词Insert、Update、Select和Delete组成。
第3章 SQL语言初步
3.1 SQL简介 3.2 基本的数据定义 3.3 基本的数据操作 3.4 数据查询——SELECT 3.5 含有子查询的数据更新 3.6 视图 3.7 小结
3.1 SQL 简 介
SQL语言是1974年由Boyce和Chamberlin提出的一种介于 关系代数与关系演算之间的结构化查询语言,是一个通用的 、功能极强的关系性数据库语言。SQL在最早RDBMS之一的 IBM公司San Jose研究室的System R项目上得到了实现。它功 能丰富,不仅具有数据定义、数据控制功能,还有着强大的 查询功能,而且语言简洁,集数据定义、数据操纵、数据控 制功能于一体,且完成核心功能只用了9个动词,易学易用 ,因此,被众多数据库厂商采用。
表3-1 数 据 库 表
表(一) Employee
Eno
Ename
Sex
Age
Is_Marry
Title
Dno
1002
胡一民

38
1
工程师
01
1004
王爱民

60
1
高工
03
1005
张小华

50
1
工程师
02
1010
宋文彬

36
1
工程师
01
1011
胡民

34
1
工程师011015黄英女261
助工
03
1022
Fund 630.50 800.50 700.50 580.00 580.00 440.00 480.60 440.00
表(五) Department
Dno
Name
Phone
Manager
01
技术科
88090121
1002
02
设计所
88090122
1005
03
车间
88090123
1004
04
销售科
1.SQL语言的特点 (1) 一体化。SQL集数据定义语言DDL、数据操作语言 DML、数据控制语言DCL的功能于一体,语言风格统一。 另外,在关系模型中实体和实体之间的联系均用关系表示, 这种数据结构的单一性带来了数据操作符的统一。
(2) 面向集合的操作方式。非关系数据模型采用的是面 向记录的操作方式,操作对象是一条记录。这就使得在操作 过程中通常需要说明具体的处理过程,如按照哪条路径如何 读取数据。而SQL采用面向集合的操作方式,操作对象是集 合,操作结果仍然是集合。
NULL NULL
表(三) Item_Emp
Ino 200801 200801 200802 200802 200902 200901 200901 200902 200902 201001 201001 201002
Eno 1004 1016 1002 1010 1005 1010 1031 1005 1031 1002 1004 1015
3.2 基本的数据定义
3.2.1 创建基本表——create table
1.语句基本格式 create table语句的基本格式如下: create table <表名> (<列定义清单>);
2.说明 (1) <表名>:规定所创建的基本表的名称。在一个数据 库中,不允许有两个基本表同名(应该更严格地说,任何两个 关系都不能同名,这就把视图也包括了)。 (2) <列定义清单>:规定了该表中所有属性列的结构情 况。每一列的内容包括:
"Employee name" CHAR(8) NOT NULL ,
Sex
CHAR(2) NOT NULL ,
Age
INT NULL ,
Is_Marry CHAR(1) NULL ,
Title CHAR(6) NULL ,
Dno
CHAR(2) NULL );
项目管理数据库的表:Employee(职工表)、Item(项目表) 和Item_Emp(参加表),如表3-1所示。表(四)及表(五)为该数 据库中的另外两个表:工资表和部门表。
/*用户为该
为UQ_Ename */ 或者:
/*只修改数据类型
例3.5 删除例3.3中新增加的列Emgr。
alter table Employee
drop column Emgr; 例3.6 增加Ename必须取唯一值的约束条件。
alter table Employee
add constraint UQ_Ename UNIQUE(Ename); 唯一值约束设定约束名
表31数据库表employeeenoenamesexageismarrytitledno1002胡一民工程师011004王爱民高工031005张小华工程师021010工程师011011工程师011015助工031022李红卫助工021031助工02?iteminoinamestartdateenddateoutlaycheckdate200801硬盘伺服系统的改进31200822820091002102009200802巨磁阻磁头研究6120085302009655202009200901磁流体轴承改进412009212010483182010200902高密度记录磁性材料研究1018200993020102509282010201001mo驱动器性能研究315201031420111200null201002相变光盘性能研究612010123120112000nullitemempinoenoieno200801100420080110162008021002200802101020090210052009011010200901103120090210052009021031201001100220100110042010021015?salaryenobasepayservicepricerestinsurefund100268500130000850048840188063050100472834350000850058000210080050100568500250000850051200188070050101066050120000850044120166058000101166050100000850044120166058000101551227600008500398901020440001022523457000085004226012204806010315122730000850039890102044000?departmentdnonamephonemanager01技术科88090121100202设计所88090122100503车间88090123100404销售科880901241101322表结构的修改altertable基本表的结构是会随系统需求的变化而修改的因此可能需要增加修改或删除其中一列或完整性约束条件增加或删除表级完整性约束等
Price 85.00 85.00 85.00 85.00 85.00 85.00 85.00 85.00
Rest 488.40 580.00 512.00 441.20 441.20 398.90 422.60 398.90
Insure 18.80 21.00 18.80 16.60 16.60 10.20 12.20 10.20
INT 或 INTEGER SMALLINT DECIMAL(p[,q])或 DEC(p[,q])
FLOAT CHAR(n)或 CHARATER(n) VARCHAR(n) DATETIME
全字长整数型 半字长整数型 精确数值型,共 p 位,其中小数点后有 q 位, 0≤q≤p≤15,q=0 时可省略 双字长的浮点数 长度为 n 的定长字符串 最大长度为 n 的变长字符串 日期时间型,格式可以设置
title char(6) null ,
dno
char(2) null );
系统执行以上CREATE TBALE语句后,数据库中就新建 立了一个名为Employee的表,此表尚无元组(即为空表)。此 表的定义及各约束条件都自动存放进数据库的系统表中,由 DBMS进行统一的管理和维护(有些参考书也称这些系统表为 数据字典)。
End_date 2/28/2009 5/30/2009 2/1/2010 9/30/2010 3/14/2011 12/31/2011
Outlay 10.0 6.5 4.8 25.0 12.00 20.00
Check_date 2/10/2009 5/20/2009 3/18/2010 9/28/2010
例3.3 在Employee表中增加一列Emgr(负责人)。
alter table Employee
add Emgr char(4) NULL;
例3.4 修改列Emgr的数据类型为CHAR(10)。
alter table Employee
alter column Emgr CHAR(10); ,不修改列名*/
2.说明 (1) add:为表增加一新列或者表级完整性约束,具体规 定与create table的相当,但新列必须允许为空(除非有默认值) ; (2) drop column:在表中删除一个原有的列; (3) alter column:修改表中原有列的数据类型,通常, 当该列上有约束定义时,不能修改数据类型; (4) drop constraint:删除原有的表级完整性约束。
李红卫

27
0
助工
02
1031
丁为国

24
0
助工
02
表(二) Item
Ino 200801 200802 200901 200902 201001 201002
Iname 硬盘伺服系统的改进 巨磁阻磁头研究 磁流体轴承改进 高密度记录磁性材料研究 MO 驱动器性能研究 相变光盘性能研究
Start_date 3/1/2008 6/1/2008 4/1/2009 10/18/2009 3/15/2010 6/1/2010
例3.1 创建职工表。
create table employee
( eno char(4) not null unique , char(8) not null ,
ename
sex
char(2) not null default('男'),
age
int null ,
is_marry char(1) null ,
(3) 数据控制语言(Data Control Language,简称DCL): 用来授予和撤销用户对数据的操作权限,主要由动词Grant 和Revoke组成。
下面将介绍Microsoft SQL Server环境下的SQL基本语句 的语法构成。各厂商RDBMS实际使用的SQL语言,为保持其 竞争力,与标准SQL语言都有所差异及扩充。因此,具体使 用时,应参阅实际系统的有关手册。
NOT NULL
该列值不能为空
NULL
该列值可以为空
UNIQUE
该列值不能有相同者
SQL只要求语句的语法正确就可以,对字母大小写等格 式不作规定;一条语句可以放在多行上,字和符号间有一个 或多个空格分隔;一般每个列定义单独占一行(或数行),每 个列定义中相似的部分对齐(这不是必须的),从而增加了可 读性,让人一目了然。
(3) 高度非过程化。非关系数据模型的数据操作语言是 面向过程的语言,用过程化语言完成某项请求,必须指定存 取路径。而用SQL进行数据操作,用户只需提出“做什么” ,无须告诉“怎么做”,因此操作过程中的存取路径对用户 是透明的,从而简化了用户对数据操作的实现。
(4) 两种使用方式,统一的语法结构。DML有两类:宿 主型和自主型。宿主型DML本身不能独立使用,只能嵌入特 定的计算机高级语言(如COBOL、C等)。COBOL、C等高级 语言称为主语言。自主型又称自含型,可以独立使用。因此 ,SQL既是自含式语言(用户使用),又是嵌入式语言(程序员 使用)。
其中,自定义的表名或者列名若是由包含多个单词的词 组所构成,则必须选择使用中括号([ ])或者双引号(" ")将此表 名或列名括起来,注意使用英文环境下的中括号或者双引号 表示。
例3.2 创建职工表2,其中表名或者列名由多个单词构 成。
create table Employee2
( [Employee no] CHAR(4) NOT NULL UNIQUE ,
88090124
1101
3.2.2 表结构的修改——alter table
基本表的结构是会随系统需求的变化而修改的,因此可 能需要增加、修改或删除其中一列(或完整性约束条件,增加 或删除表级完整性约束等)。
1.语句基本格式 alter table语句的基本格式如下:
alter table <表名> [ add <列名><数据类型>[列的完整性约束]]| [ add <表级完 整性约束>] [ alter column <列名><新的数据类型>] [ drop column <列名>] [ drop constraint <表级完整性约束名>];
IENo 1 2 1 2 3 1 2 1 2 1 2 1
表(四) Salary
Eno 1002 1004 1005 1010 1011 1015 1022 1031
Basepay 685.00 728.34 685.00 660.50 660.50 512.27 523.45 512.27
Service 1300.00 3500.00 2500.00 1200.00 1000.00 600.00 700.00 300.00
相关文档
最新文档