数据库3.2 数据定义SQL语句-2 (2)
第三章 关系数据库查询语言SQL

20112011-2-25
主讲:王颂华
9
3.2 数据定义
3.2.3 索引的建立与删除
1.建立索引 1.建立索引 索引是数据库随机检索的常用手段,它实际上是记 录的关键字与其相应地址的对应表。借助于索引结构,可 以迅速查找到某个属性A 以迅速查找到某个属性A具有指定值的那些元组。对一个 基本表,可以按需要建立若干个索引,以便提供多种存取 路径。 建立索引的语句格式为: CREATE[UNIQUE][CLUSTER]INDEX<索引名 CREATE[UNIQUE][CLUSTER]INDEX<索引名 > ON<表名>(<列名1>[<次序>],[<列名2>[<次序 ON<表名>(<列名1>[<次序>],[<列名2>[<次序 >]]… >]]…);
3.2 数据定义
2)主关键字的定义 一个关系可能有多个候选关键字,但在定义基本表 时只能定义一个主关键字。一个关系的主关键字由一个或 几个属性构成,在CREATE TABLE中声明主关键字有两 几个属性构成,在CREATE TABLE中声明主关键字有两 种方法: (1)在列出关系模式的属性时,在属性及其类型后加 上保留字PRIMARY KEY,表示该属性是主关键字。 上保留字PRIMARY KEY,表示该属性是主关键字。 (2)在列出关系模式的所有属性后,再附加一个声明: PRIMARY KEY(<属性1>[,<属性2>,…]) KEY(<属性1 ,<属性2>,… 如果关键字由多个属性构成,则必须使用第二种方 法。
20112011-2-25 主讲:王颂华 12
3.3 数据查询
3.3.1 单表查询
第3章-结构化查询语言ppt课件

1. 数据操纵语言
数据操纵语言(Data Manipulation Language,DML)是SQL语言中用于查询和增删修改表数据的语句,主要语句如下:
SELECT - 从数据库表中获取数据 UPDATE - 更新数据库表中的数据 DELETE - 从数据库表中删除数据 INSERT - 向数据库表中插入数据
四、SQL能做什么?
SQL 可从数据库取回数据 SQL 可在数据库中插入新的纪录 SQL 可更新数据库中的数据 SQL 可从数据库删除记录 SQL 可创建新数据库 SQL 可在数据库中创建新表 SQL 可在数据库中创建存储过程 SQL 可在数据库中创建视图 SQL 可以设置表、存储过程和视图的权限
Numeric(6,2)
否
否
工作时数
任务(ASSIGNMENT)表结构
列名
类型
键
是否非空
备注
DepartmentName
Text(35)
主键是Biblioteka 部门名称BudgetCode
Text(30)
否
是
预算编号
OfficeNumber
Text(15)
否
是
办公室编号
Phone
Text(12)
否
是
办公电话
列名
类型
PROJECT表结构
列名
类型
键
是否非空
备注
ProjectID
Int
主键,外键
是
复合键,项目编号
EmployeeNumber
Int
主键,外键
是
复合键,雇员编号
HoursWorked
Numeric(6,2)
数据库第3章

使用DROP子句删除指定的完整性约束条件 【例3-7】 删除student表学生姓名必须取惟一值的约束 条件。 ALTER TABLE student DROP UNIQUE(name); 使用MODIFY子句修改基本表的列定义 【例3-8】 将student 表name列的数据类型改为定长字符 串型。 ALTER TABLE student MODIFY name char(8) NOT NULL; 注意: (1)修改列定义时,要将原来的列级约束条件写上,否则 原有的列级约束会不起作用。 (2)修改列定义时,有可能会破坏已有的数据,应事先作 好备份工作。 (3)SQL未提供删除属性列的语句,只能采取间接的方法
3.2 数据定义
表3-1 SQL的数据定义语句 操作对象 数据库 操作方式 创建语句 CREATE DATABASE CREATE TABLE 删除语句 DROP DATABASE 修改语句 ALTER DATABASE
基本表 索引
视图
DROP
TABLE INDEX
VIEW
ALTER TABLE
CREATE INDEX DROP
3.2.4 建立索引 索引的概念 索引是建立在列上的一种数据库对象,它 对表中的数据提供逻辑顺序,当在数据库表中 搜索某一行时,可以通过使用索引来找到它的 物理位置。索引建立后,什么时候使用索引以 及使用哪一个索引(当有多个索引存在时), 由DBMS内部根据情况自行决定,不需要人员干 预。索引是动态的,每当数据库表的数据更新 一次,相应的索引也随之更新。
CREATE VIEW DROP
3.2.1 数据库的创建与删除 创建数据库 SQL使用命令CREATE DATABASE创建数据库,其一般语法 如下: CREATE DATABASE <数据库名>; 【例3-1】创建一个简单数据库。 CREATE DATABASE MyDb; 删除数据库 SQL使用命令DROP DATABASE删除一个或多个数据库,其 一般语法如下: DROP DATABASE <数据库名1> [,<数据库名2>][,…]; 【例3-2】删除数据库MyDb。 DROP DATABASE MyDb;
-数据库原理及应用第二版-第1-4章习题答案-课后习题

-数据库原理及应用第二版-第1-4章习题答案-课后习题数据库原理及应用第二版第1-4章习题答案课后习题---1. 第一章习题答案1.1 什么是数据库管理系统(DBMS)?提供三个具体例子。
DBMS是一种软件系统,用于管理和组织大量数据的存储和访问。
具体例子包括MySQL,Oracle和Microsoft SQL Server。
1.2 数据库系统由哪些基本组成部分构成?简要描述每个组成部分的功能。
数据库系统由以下组成部分构成:- 数据库:用于存储和组织数据的集合。
- 数据库管理系统(DBMS):负责管理和操作数据库的软件系统。
- 应用程序:使用数据库中的数据进行特定任务的软件程序。
- 用户:通过应用程序和DBMS与数据库进行交互的人。
1.3 什么是数据库模式(schema)?它包括哪些内容?数据库模式是数据库的逻辑结构和特征的描述。
它包括实体(Entity)、属性(Attribute)、关系(Relationship)以及约束条件等内容。
1.4 什么是数据库实例(instance)?它包括哪些内容?数据库实例是指在内存中运行的数据库系统。
它包括当前数据库中的数据以及与之相关的缓冲区、连接信息和其他控制结构等内容。
1.5 简述数据库管理系统的主要功能。
- 数据定义功能:定义和描述数据库模式。
- 数据操作功能:实现对数据库的增、删、改、查等操作。
- 数据控制功能:管理用户访问权限,并确保数据的完整性和安全性。
- 数据库恢复功能:通过备份和恢复机制保护数据的持久性。
- 并发控制功能:维护多个用户同时访问数据库的一致性和隔离性。
2. 第二章习题答案2.1 数据库系统中的数据模型是什么?它的目的是什么?数据模型是数据库中数据的逻辑表示方式。
它的目的是描述数据之间的关系以及数据的特性和约束条件。
2.2 列举并简要描述常见的数据模型。
- 层次模型:将数据组织成树状结构,通过父节点和子节点之间的关系表示数据之间的层次关系。
数据库的标准语言SQL

学时数:12学时课程类型:理论课程章节:第三章 数据库的标准语言SQL§3.1SQL查询§3.2 SQL数据定义§3.3 SQL数据操作§3.4 SQL数据控制§3.5数据字典教学目的:了解SQL的背景知识掌握SQL查询语句掌握SQL数据定义语句CREATE、DROP、ALTER掌握数据操纵语句INSERT、DELETE、UPDATE掌握数据控制语句GRANT、REVOKE教学要求:牢记有关概念,掌握SQL查询教学重点:1. SQL数据定义:基本表、视图、别名,建立索引2. SQL数据操纵:插入、更新、删除3. SQL数据查询教学难点:SQL查询:简单查询、联接查询、嵌套查询、库函数查询、集合运算教学手段:讲解、分组讨论、习题主要教学内容:1.SQL查询:简单查询、联接查询、嵌套查询、库函数查询、集合运算2.SQL数据定义:基本表、视图、别名,建立索引3.SQL数据操作:插入、更新、删除4.SQL数据控制5.数据字典第三章 数据库的标准语言SQLSQL是一种介于关系代数与关系演算之间的结构化查询语言,其功能并不仅仅是查询。
SQL是一个通用的、功能极强的关系数据库语言。
SQL的特点SQL语言之所以能够为用户和业界所接受,并成为国际标准,是因为它是一个综合的、功能极强同时又简捷易学的语言。
SQL语言集数据查询(Data Query)、数据操纵(Data Manipulation)、数据定义(Data Definition)和数据控制(Data Control)功能于一体,主要特点包括:1.综合统一数据库系统的主要功能是通过数据库支持的数据语言来实现的。
非关系模型(层次模型、网状模型)的数据语言一般都分为模式数据定义语言(Schema Data Definition Language,简称模式DDL)、外模式数据定义语言(Subschema Data Definition Language,简称外模式DDL或子模式DDL)、与数据存储有关的描述语言(Data Storage Description Language,简称DSDL)及数据操纵语言(Data Manipulation Language,简称DML),分别用于定义模式、外模式、内模式和进行数据的存取与处置。
《数据库原理及应用》教学课件 第三章SQL基础

第三章 SQL基础
本章导读
结构化查询语言(Structured Query Language,SQL) 是关系数据库的标准语言,是集数据查询、数据操纵、数 据定义与数据控制于一体的综合性语言。在关系数据库 中,可以通过它完成数据库内的所有操作。本章首先介绍 SQL的发展及特点,然后通过实例介绍数据库和数据表的 基本操作。
④ MODIFY FILE:指定要修改的文 件。
⑤ ADD FILEGROUP:向数据库中 添加文件组。
⑥ REMOVE FILEGROUP:从数据 库中删除文件组。若文件组不为空,则 无法删除。
⑦ “[ , … N]”表示在前一语句后可 接N个同格式语句。
⑧ “|”表示用其隔开的语句在一次 命令中不可同时选用。
20
3.2 数据库基本操作
3.2.4 修改数据库
【例3-2】 将数据库 test 的名称改为 test1。 ALTER DATABASE test MODIFY NAME=test1
【例3-3】 将数据库SRS的日志文件最大容量改为100 MB。
ALTER DATABASE SRS MODIFY FILE (NAME=SRS_Data, MAXSIZE=100MB)
系列 1, 锐系普列PP2T, 锐, 2普.8 PPT, 2.8
日志文件由一系列日志记录组成,它 记录了数据库的更新情况和用户对数据库 的修改操作等。
当数据库发生损坏时,可以通过日志 文件分析出错原因;当数据丢失时,也可 以使用日志文件恢复数据库。
16
3.2 数据库基本操作
3.2.3 创建数据库
02 用SSMS创建数据库
在 SSMS 中可按如下步骤创建数据库。
数据库系统第3章 结构化查询语言

5. 事务处理语言
事务处理语言(Transaction Process Language,TPL)是SQL 语言中用于数据库内部事务处理的语句。主要语句如下:
BEGIN TRANSACTION – 开始事务 COMMIT – 提交事务 ROLLBACK – 回滚事务
6. 游标控制语言
游标控制语言(Cursor Control Language,CCL)是SQL语言 中用于数据库游标操作的语句。主要语句如下:
DECLARE CURSOR – 定义游标 FETCH INTO – 提交游标数据 CLOSE CURSOR– 关闭游标
六、SQL语言的数据类型
1. 基本数据类型
字符:CHAR、VARCHAR、TEXT 整数:SMALLINT、INTEGER 浮点数:NUMBER(n,d)、FLOAT(n,d) 日期:DATE、DATETIME 货币:MONEY 2. 不同数据库所支持数据类型 Access的数据类型见表3-1所示 SQL Server的数据类型见表3-2所示 MySQL的数据类型见表3-3所示
3. 数据查询语言 数据查询语言(Data Query Language,DQL)是SQL语言中用 于对数据库进行查询的语句。该语句只有Select一个语句, 但其变化范型较多。
4. 数据控制语言 数据控制语言(Data Control Language,DCL)是SQL语言中 用于对数据访问权进行控制的语句。主要语句如下: GRANT – 授予用户对数据对象的权限 DENY – 拒绝授予用户对数据对象的权限 REVOKE – 撤消用户对数据对象的权限
DBMS
(执行SQL)
I/O
数据
数据库
第3章 SQL语言基础及数据定义功能

Create Table SC (学号 char(7) References S(学号), 课程号 char(2) Not Null, 成绩 smallint Check(成绩>=0), Primary Key(学号, 课程号) Foreign Key(课程号) References C(课程号) ) (2)删除数据表 格式:Drop Table 表名, … 功能:删除数据表。 例:删除数据表text,语句为 Drop Table text
(3)删除数据库 格式:Drop DataBase 数据库名 功能:删除指定数据库。 例:删除学生管理数据库student 。 Drop DataBase student 3.3.1 数据表建立和删除 (1)建立数据表 格式:Create Table 数据表名 (列名 类型 [完整性约束] ,… [,完整性约束])
SQL语言的命令动词 SQL功能
数据查询 数据定义 数据操纵 数据控制 SELECT CREATE、DROP、ALTER INSERT、UPDATE、DELETE GRANT、REVOKE
命令动词
P27表3-1
3.2 SQL数据类型
在定义表结构时,每个字段都要指明它的数据类 型,SQL提供了丰富的数据类型。 每个数据类型都有它的特点和取值范围,用户使 用时可以根据实际需要进行选择。 3.2.1 数值型 1. 准确型 指在计算机中能精确存储的数据类型。 有bigint、int、smallint、tinyint、bit、nume ric(p,q)、decimal(p,q)等。
3.3.2 修改表结构 格式:Alter Table 表名 [Alter Column 列名 新类型 |Add 新列名 类型 [完整性约束] |Drop Column 列名] 功能:修改列类型、添加新列、删除列。 例2:为表SC添加新列修课类别。 Alter Table SC Add 修课类别 char(4) 例3:修改表SC中修课类别的类型。 Alter Table SC Alter Column 修课类别 char(6)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
varchar(10)
','选修课')),
CourseCredit smallint
CoursePeriod smallint
TestMethod
char(4)
);
PRIMARY Key, NOT NULL UNIQUE, NULL CHECK(CourseType IN('基础课','专业课
NULL, NULL, NOT NULL DEFAULT '闭卷考试'
字段名称 学号 姓名 性别
出生日期 专业
手机号
字段编码 StudentID StudentName StudentGender BirthDay
Major
StudentPhone
数据类型 文本 文本 文本 日期 文本
文本
字段大小 13 10 2
短日期 30
11
必填字段 是 是 否 否 否
否
是否为键 主键 否 否 否 否
PRIMARY KEY, NOT NULL, NULL, NULL, NULL, NULL
4.SQL语句执行
在PostgreSQL服务器中,执行SQL语句创建数据库关系表Student。
运行按钮
SQL语句
数据库表
结果消息
5.其它的列完整性约束应用 在关系表创建SQL语句中,除了使用主键约束、是否空值约束外。有 时还会使用如下约束。
• UNIQUE——值唯一 • CHECK——有效性检查 • DEFAULT——缺省值
例 选课管理系统数据库的课程信息表Course设计需求
字称段名 字段编码 数据 型类 字小段大 必填字段 是否为键 备注
课号 程 编 CourseID 文本
4
是
主键
课程名 CeourseNam 文本
20
是
否 取值唯一
课别 程 类 CourseType 文本
10
否
学分 Ct ourseCredi 数字 短整型
否
“基础
课”、
否
“专业
课”、 “选修课”
否
创建课程信息表Course的SQL语句
CREATE TABLE Course
( CourseIName
varchar(20)
CourseType
在一些关系表中,为了方便数据处理,可以使用代理键去替代复合主键 。在SQL语句中,关系表的代理键采用表约束方式来定义。
CREATE TABLE <表名> ( <代理键列名> <Serial数据类型> NOT NULL,
<列名2> <数据类型> [列完整性约束], <列名3> <数据类型> [列完整性约束], … CONSTRAINT <约束名> PRIMARY Key(代理键列名) );
30
否
备注
Note
文本
50
否
是否为键 主键 主键 否 否 否
创建开课计划表Plan的SQL语句
CREATE TABLE ( CourseID
TeacherID CourseRoom CourseTime Note CONSTRAINT );
Plan char(4) NOT char(4) NOT varchar(30), varchar(30), varchar(50), CoursePlan_PK
CONSTRAINT <约束名> PRIMARY Key(主键列)
);
例 选课管理系统数据库的开课计划表Plan设计需求
字段名称 字段编码
数据类型 字段大小 必填字段
课程编号 CourseID
文本
4
是
教师编号 TeacherID
文本
4
是
地点
CourseRoom
文本
30
否
时间
CourseTime
文本
[列完整性约束], [列完整性约束], [列完整性约束],
2. 列完整性约束
列完整性约束关键词 • PRIMARY KEY——主键 • NOT NULL——非空值 • NULL——空值 • UNIQUE——值唯一 • CHECK——有效性检查 • DEFAULT——缺省值
3. SQL语句应用
例 选课管理数据库的学生表Student设计需求
NULL, NULL,
PRIMARY Key(CourseID,TeacherID)
在PostgreSQL中,执行SQL语句创建数据库关系表Plan。
运行按钮 SQL语句
数据库表
结果消息
使用表约束定义主键的优点: • 便于定义复合主键 • 可命名主键约束 • 便于定义代理键
7.表约束定义代理键
3.2-2 数据定义SQL语句
——数据库表创建、修改、删除
【本节学习目标】
• 掌握SQL语言的数据库表创建语句 • 掌握SQL语言的数据库表修改语句 • 掌握SQL语言的数据库表删除语句
一、数据库表创建SQL语句
1.语句基本格式
CREATE TABLE <表名> ( <列名1> <数据类型> <列名2> <数据类型> <列名3> <数据类型> … );
否
创建学生表Student的SQL语句
CREATE TABLE Student ( StudentID
StudentName StudentGender BirthDay Major StudentPhone );
char(13) varchar(10) char(2) date varchar(30) char(11)
文本
50
否
是否为键 代理键
否 否 否 否 否
创建开课计划表Plan的SQL语句
CREATE TABLE Plan
( CoursePlanID serial
CourseID
char(4)
TeacherID
例 选课管理系统数据库的开课计划表Plan设计需求
字段名称 字段编码
数据类型 字段大小 必填字段
开课编号 CoursePlanID 自动编号
长整型
是
课程编号 CourseID
文本
4
是
教师编号 TeacherID
文本
4
是
地点
CourseRoom
文本
30
否
时间
CourseTime
文本
30
否
备注
Note
在PostgreSQL服务器中,执行SQL语句创建数据库关系表Course。
运行按钮 SQL语句
数据库表
结果消息
6.表约束定义主键
使用列约束关键词PRIMARY KEY定义表的主键列只能定义单列主键,若 要定义由多个列构成的复合主键,则需要使用表约束方式来定义。
CREATE TABLE <表名> ( <列名1> <数据类型> [列完整性约束], <列名2> <数据类型> [列完整性约束], <列名3> <数据类型> [列完整性约束], …