第4章 SQL语言基础及数据定义功能
关系数据库标准语言SQL
(2)外调制光纤通信系统
该系统是在光源发出光之后,在光的输出通路上加调制 器(如电光晶体等)进行调制,又称为间接调制光纤通 信系统。
(3)外差光纤通信系统
该系统又称为相干光通信系统。在研制中。
SQL
视图1
视图2
外模式
基本表1
基本表2
存储文件1
基本表3
基本表4 模 式
存储文件2
内模式
4.2 网上书店数据库
为此定义网上书店数据库,其中包括5个表 用户表:USER1(ID,NAME,PASSWORD,ADDRESS,
POSTCODE,EMAIL,HOMEPHONE,CELLPHONE, OFFICEPHONE) 图书类型表:SORTKIND(ID,NAME) 图书表:PRODUCT(ID,NAME,DESCRIPTION, PRICE,IMG,ZUOZHE,SORTKIND_ID) 订单表:USER1_ORDER(ID,STATUS,COST,DATE, USER1_ID) 订单条目表:ORDER_ITERM(ID,AMOUNT, PRODUCT_ID,ORDER_ID) 关系的主码加下划线表示。
第4章 关系数据库标准语言SQL
本章主要内容
由于SQL语言的标准化,所以大多数关系型数据库系 统都支持SQL语言,它已经发展成为多种平台进行交 互操作的底层会话语言,成为数据库领域中一个主 流语言。这一章将详细介绍SQL的核心部分:数据定 义、数据查询、数据更新和嵌入式SQL。
本章学习目标
熟练掌握SQL语言的数据定义、数据查询、数据更新 功能
数据库原理及应用(第2版)习题参考答案.
第1章数据概述一.选择题1.下列关于数据库管理系统的说法,错误的是CA.数据库管理系统与操作系统有关,操作系统的类型决定了能够运行的数据库管理系统的类型B.数据库管理系统对数据库文件的访问必须经过操作系统实现才能实现C.数据库应用程序可以不经过数据库管理系统而直接读取数据库文件D.数据库管理系统对用户隐藏了数据库文件的存放位置和文件名2.下列关于用文件管理数据的说法,错误的是DA.用文件管理数据,难以提供应用程序对数据的独立性B.当存储数据的文件名发生变化时,必须修改访问数据文件的应用程序C.用文件存储数据的方式难以实现数据访问的安全控制D.将相关的数据存储在一个文件中,有利于用户对数据进行分类,因此也可以加快用户操作数据的效率3.下列说法中,不属于数据库管理系统特征的是CA.提供了应用程序和数据的独立性B.所有的数据作为一个整体考虑,因此是相互关联的数据的集合C.用户访问数据时,需要知道存储数据的文件的物理信息D.能够保证数据库数据的可靠性,即使在存储数据的硬盘出现故障时,也能防止数据丢失5.在数据库系统中,数据库管理系统和操作系统之间的关系是DA.相互调用B.数据库管理系统调用操作系统C.操作系统调用数据库管理系统D.并发运行6.数据库系统的物理独立性是指DA.不会因为数据的变化而影响应用程序B.不会因为数据存储结构的变化而影响应用程序C.不会因为数据存储策略的变化而影响数据的存储结构D.不会因为数据逻辑结构的变化而影响应用程序7.数据库管理系统是数据库系统的核心,它负责有效地组织、存储和管理数据,它位于用户和操作系统之间,属于AA.系统软件B.工具软件C.应用软件D.数据软件8.数据库系统是由若干部分组成的。
下列不属于数据库系统组成部分的是BA.数据库B.操作系统C.应用程序D.数据库管理系统9.下列关于客户/服务器结构和文件服务器结构的描述,错误的是DA.客户/服务器结构将数据库存储在服务器端,文件服务器结构将数据存储在客户端B.客户/服务器结构返回给客户端的是处理后的结果数据,文件服务器结构返回给客户端的是包含客户所需数据的文件C.客户/服务器结构比文件服务器结构的网络开销小D.客户/服务器结构可以提供数据共享功能,而用文件服务器结构存储的数据不能共享数据库是相互关联的数据的集合,它用综合的方法组织数据,具有较小的数据冗余,可供多个用户共享,具有较高的数据独立性,具有安全控制机制,能够保证数据的安全、可靠,允许并发地使用数据库,能有效、及时地处理数据,并能保证数据的一致性和完整性。
数据库第4章 SQL语言基础及数据定义功能
第4章SQL语言基础及数据定义功能用户使用数据库时需要对数据库进行各种各样的操作,如查询数据,添加、删除和修改数据,定义、修改数据模式等。
DBMS必须为用户提供相应的命令或语言,这就构成了用户和数据库的接口。
接口的好坏会直接影响用户对数据库的接受程度。
数据库所提供的语言一般局限于对数据库的操作,它不是完备的程序设计语言,也不能独立地用来编写应用程序。
SQL(Structured Query Language,结构化查询语言)是用户操作关系数据库的通用语言。
虽然叫结构化查询语言,而且查询操作确实是数据库中的主要操作,但并不是说SQL只支持查询操作,它实际上包含数据定义、数据查询、数据操作和数据控制等与数据库有关的全部功能。
SQL已经成为关系数据库的标准语言,所以现在所有的关系数据库管理系统都支持SQL。
本章将主要介绍SQL语言支持的数据类型以及定义基本表和索引的功能。
4.1 SQL语言概述SQL语言是操作关系数据库的标准语言,本节介绍SQL语言的发展过程、特点以及主要功能。
4.1.1 SQL语言的发展最早的SQL原型是IBM的研究人员在20世纪70年代开发的,该原型被命名为SEQUEL (Structured English QUEry Language)。
现在许多人仍将在这个原型之后推出的SQL语言发音为“sequel”,但根据ANSI SQL委员会的规定,其正式发音应该是“ess cue ell”。
随着SQL语言的颁布,各数据库厂商纷纷在其产品中引入并支持SQL语言,尽管绝大多数产品对SQL语言的支持大部分是相似的,但它们之间还是存在一定的差异,这些差异不利于初学者的学习。
因此,我们在本章介绍SQL时主要介绍标准的SQL语言,我们将其称为基本SQL。
从20世纪80年代以来,SQL就一直是关系数据库管理系统(RDBMS)的标准语言。
最早的SQL标准是1986年10月由美国ANSI(American National Standards Institute)颁布的。
第4章 SQL语言基础及数据定义功能
言)是关系数据库的标准语言
SQL是一个通用的、功能极强的关系数据库语言
SQL语言是介乎于关系代数和元组演算之间的一种语言
对关系模型的发展和商用DBMS的研制起着重要的作用。
3
4.1.1 SQL语言的发展
标准
SQL/86 SQL/89(FIPS 127-1)
发布日期 1986.10 1989年 1992年 1999年 2003年
6. 支持关系数据库三级模式结构
SQL
视图1
视图2
外模式
基本表1
基本表2
基本表3
基本表4
模式
存储文件1
存储文件2
内模式
10
SQL支持关系数据库三级模式结构
SQL语言支持数据库的三级模式结构。其中外模式对应
于视图和部分基本表,模式对应于基本表,内模式对应 于存储文件及索引。 基本表是本身独立存在的表, SQL中一个关系就对应一 个基本表,一个(或多个)基本表对应一个存储文件,一 个基本表可以带若干索引,存储文件及索引组成了关系 数据库的内模式。 视图是从一个或几个基本表导出的表,它本身不独立存 储在数据库中,即数据库中只存储视图的定义,不存储 对应的数据。因此视图是一个虚表。 用户可以用SQL语言对视图(View)和基本表(Base Table)进行查询等操作,在用户观点里,视图和基本表 一样,都是关系。 SQL语言可以定义的模式种类 –基本表,索引,视图
数据控制
GRANT、REVOKE、DENY
8
4.1.2 SQL语言的特点
5.以同一种语法结构提供多种使用方式
SQL是独立的语言
能够独立地用于联机交互的使用方式
第4章结构化查询语言SQL
第4章结构化查询语言SQL学习目标在本章中将学习:l SQL语言的特点及功能l SQL的数据查询功能l SQL的数据操作功能l SQL的数据定义功能4.1SQL语言概述SQL全称是“结构化查询语言(Structured Query Language)”,最早是IBM的圣约瑟研究实验室为其关系数据库管理系统SYSTEM R开发的一种查询语言,它的前身是SQUARE语言。
SQL语言结构简洁,功能强大,简单易学,所以自从IBM公司1981年推出以来,SQL语言得到了广泛的应用。
如今无论是Oracle,Sybase,Informix,SQL server这些大型的数据库管理系统,还是像Visual FoxPro,PowerBuilder这些微机上常用的数据库开发系统,都支持SQL语言作为查询语言。
4.1.1 SQL语言的特点1.综合统一SQL语言集数据定义语言DDL、数据操纵语言DML、数据控制语言DCL的功能于一体,语言风格统一,可以独立完成数据库生命周期中的全部活动,包括定义关系模式、录入数据以建立数据库、查询、更新、维护、数据库重构、数据库安全性控制等一系列操作要求,这就为数据库应用系统开发提供了良好的环境。
在关系模型中实体和实体间的联系均用关系表示,这种数据结构的单一性带来了数据操作符的统一。
2.非过程化语言SQL是一个非过程化的语言,因为它一次处理一个记录,对数据提供自动导航。
所有SQL语句接受集合作为输入,返回集合作为输出。
SQL的集合特性允许一条SQL语句的结果作为另一条SQL语句的输入。
SQL不要求用户指定对数据的存放方法。
这种特性使用户更易集中精力于要得到的结果。
所有SQL语句使用查询优化器,它是RDBMS的一部分,由它决定对指定数据存取的最快速度的手段。
3.面向集合的操作方式SQL语言采用集合操作方式,不仅查找结果可以是元组的集合,而且一次插入、删除、更新操作的对象也可以是元组的集合。
第4章 标准查询语言SQL
(2)<列名>:规定了该列(属性)的名称。一个表中不能有两列同名。 (3)<数据类型>:规定了该列的数据类型。各具体DBMS所提供的数据类型是不同的; 本书使用的是SQL Server 2005中规定的数据类型。 (4)完整性约束:完整性约束规则在该命令中较为复杂,为了学习方便,没有把命令 的全部内容一次写出来,这里主要用到下列三类子句:
SQL语言的主பைடு நூலகம்特点
(2)高度非过程化。 SQL语言与各种关系数据库DBMS中的语言一样是一 种高度非过程化语言。使用时,只要指明“做什么?” 不必像高级语言那样指明“怎样做?”,因此用户无 需了解文件与数据的存取路径,这种存取路径的SQL 语句的操作过程是由系统自动来完成。这不仅大大减 轻了编程人员的负担,还有利于提高数据的独立性。
定义数据库内基本表
实例说明: (1)“教师”表:T,由教师编号(TNO)、姓名(TN)、性别(SEX)、 年龄(AGE)、职称(ZC)和所在专业(DEPT)6个属性组成。可记为: T(TNO,TN,SEX,AGE,ZC,DEPT) (2)“课程”表:C,由课程号(CNO)、课程名(CN)、课程性质 (CX)和学分(CT)4个属性组成。可记为: C(CNO,CN,CX,CT) (3)“教师授课”表:TC,由教师编号(TNO)、课程号(CNO)、教 龄(YEAR)3个属性组成,这里的教龄是指教授这门课的教龄。可记为: TC(TNO,CNO,YEAR)
-数据库原理及应用第二版-第4章SQL语言基础及数据定义功能
列名 Sno Sname Ssex Sage Sdept
说明 学号 姓名 性别 年龄 所在系
数据类型 字符串,长度为7 字符串,长度为10 字符串,长度为2 微整数 字符串,长度为20
约束 主码 非空 取‘男’或‘女’ 取值15~ 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 '计算机系' )
以雇员表和工作表为例,在这两张表上 添加约束。这两张表的结构如下: 雇员表 ( 雇员编号 字符型 长度为7 非空, 雇员名 字符型,长度为10, 工作编号 字符型,长度为8, 工资 整型, 电话 字符型,长度为8 非空) 工作表 ( 工作编号 字符型,长度为8,非空, 最低工资 整型, 最高工资 整型 )
4.2.3 日期时间类型
专门的日期时间类型,格式为月/日/年 时:分:秒。有两种: Datetime和smalldatetime两种。 Datetime能表示:占用8个字节空间,1753年至9999年。 Smalldatetime能表示:占用4个字节空间,1900年到2079年。 输入日期时: Oct 25 2001 2001-10-15或2001/10/15 20011020 输入时间时: 2001-10-15 3:22:45 PM 2001-10-15 15:22:45
数据库课后习题参考答案与解析
第1章数据概述一.选择题1.下列关于数据库管理系统的说法,错误的是CA.数据库管理系统与操作系统有关,操作系统的类型决定了能够运行的数据库管理系统的类型B.数据库管理系统对数据库文件的访问必须经过操作系统实现才能实现C.数据库应用程序可以不经过数据库管理系统而直接读取数据库文件D.数据库管理系统对用户隐藏了数据库文件的存放位置和文件名2.下列关于用文件管理数据的说法,错误的是DA.用文件管理数据,难以提供应用程序对数据的独立性B.当存储数据的文件名发生变化时,必须修改访问数据文件的应用程序C.用文件存储数据的方式难以实现数据访问的安全控制D.将相关的数据存储在一个文件中,有利于用户对数据进行分类,因此也可以加快用户操作数据的效率3.下列说法中,不属于数据库管理系统特征的是CA.提供了应用程序和数据的独立性B.所有的数据作为一个整体考虑,因此是相互关联的数据的集合C.用户访问数据时,需要知道存储数据的文件的物理信息D.能够保证数据库数据的可靠性,即使在存储数据的硬盘出现故障时,也能防止数据丢失5.在数据库系统中,数据库管理系统和操作系统之间的关系是DA.相互调用B.数据库管理系统调用操作系统C.操作系统调用数据库管理系统D.并发运行6.数据库系统的物理独立性是指DA.不会因为数据的变化而影响应用程序B.不会因为数据存储结构的变化而影响应用程序C.不会因为数据存储策略的变化而影响数据的存储结构D.不会因为数据逻辑结构的变化而影响应用程序7.数据库管理系统是数据库系统的核心,它负责有效地组织、存储和管理数据,它位于用户和操作系统之间,属于AA.系统软件B.工具软件C.应用软件D.数据软件8.数据库系统是由若干部分组成的。
下列不属于数据库系统组成部分的是B A.数据库B.操作系统C.应用程序D.数据库管理系统9.下列关于客户/服务器结构和文件服务器结构的描述,错误的是DA.客户/服务器结构将数据库存储在服务器端,文件服务器结构将数据存储在客户端B.客户/服务器结构返回给客户端的是处理后的结果数据,文件服务器结构返回给客户端的是包含客户所需数据的文件C.客户/服务器结构比文件服务器结构的网络开销小D.客户/服务器结构可以提供数据共享功能,而用文件服务器结构存储的数据不能共享数据库是相互关联的数据的集合,它用综合的方法组织数据,具有较小的数据冗余,可供多个用户共享,具有较高的数据独立性,具有安全控制机制,能够保证数据的安全、可靠,允许并发地使用数据库,能有效、及时地处理数据,并能保证数据的一致性和完整性。
数据库原理及应用-第4章-SQL语言
建立学生表student,由学号、姓名、性别、年龄 、系别5个属性组成.
CREATE TABLE student
(Sno char(8) primary key, Sname char(20) not null ,
Ssex char(1) default ‘男’, Sage int check(Sage>=0 and Sage <=120),
Transact-SQL命令格式的约定
在Transact-SQL语言的命令格式中,
[ ]括起来的内容表示是可选的;
[,…n]表示重复前面的内容;
< >括起来表示在实际编写语句时,用相应的内容替代;
{ }括起来表示是必选的; 类似A|B的格式:表示A和B只能选择一个,不能同时都 选。
数据类型
系统数据类型 SQL Server预先定义好的,可以直接使用。
选择表中的若干行
1)消除重复的行:DISTINCT
1. 查询所有选修过课的学生的学号 SELECT Sno FROM SC
等价于:
SELECT ALL Sno FROM SC
结果中保留了重复的行
SELECT DISTINCT Sno FROM SC
结果中消除了重复的行
2)查询满足条件的元组
通过WHERE子句实现 常用的查询条件
约束 constraint
约束是SQL Server提供的自动保持数据库完整 性的一种方法 。
主键约束 primary key 主键能够唯一地确定表中的每一条记录,主键不能取空值。 主键约束可以保证实体的完整性。
唯一性约束 unique •唯一性约束用于指定一个或多个列的组合值具有唯一 性,以防止在列中输入重复的值。 •使用唯一性约束的字段允许为空值; •一个表中可以允许有多个唯一性约束; •可以把唯一性约束定义在多个字段上;
数据库原理及应用第二版习题答案课后习题
第1章数据库概述1.试说明数据、数据库、数据库管理系统和数据库系统的概念。
答:数据是描述事物的符号记录,是数据库中存储的基本对象。
数据库是存放数据的仓库,是长期存储在计算机中的有组织的、可共享的大量数据的集合。
数据库管理系统是一个专门用于实现对数据进行管理和维护的系统软件。
数据库系统是指在计算机中引入数据库后的系统,一般由数据库、数据库管理系统(及相关的实用工具)、应用程序、数据库管理员组成。
2.数据管理技术的发展主要经历了哪几个阶段?答:数据管理技术的发展主要经历了文件管理和数据库管理两个阶段。
3.与文件管理相比,数据库管理有哪些优点?答:将相互关联的数据集成在一起,具有较少的数据冗余,程序与数据相互独立,保证数据的安全可靠,最大限度地保证数据的正确性,数据可以共享并能保证数据的一致性。
4.在数据库管理方式中,应用程序是否需要关心数据的存储位置和存储结构?为什么?答:不需要。
因为在数据库系统中,数据的存储位置以及存储结构保存在数据库管理系统中,从数据到物理存储位置的转换是由数据库管理系统自动完成的。
5.在数据库系统中,数据库的作用是什么?答:在数据库系统中,数据库是存放数据的场所。
6.在数据库系统中,应用程序可以不通过数据库管理系统而直接访问数据文件吗?答:不能。
7.数据独立性指的是什么?它能带来哪些好处?答:数据独立性指的是数据的逻辑独立性和物理独立性。
逻辑独立性带来的好处是当表达现实世界信息的逻辑结构发生变化时,可以不影响应用程序;物理独立性带来的好处是当数据的存储结构发生变化时,可以不影响数据的逻辑组织结构,从而也不影响应用程序。
8.数据库系统由哪几部分组成,每一部分在数据库系统中的作用大致是什么?答:数据库系统由四个主要部分组成,即数据库、数据库管理系统、应用程序和系统管理员。
数据库是数据的汇集,它以一定的组织形式存于存储介质上;数据库管理系统是管理数据库的系统软件,它可以实现数据库系统的各种功能;系统管理员负责数据库的规划、设计、协调、维护和管理等工作;应用程序指以数据库数据为核心的应用程序。
第4章 T-SQL语言
Select select select select
cast('2008-05-08 12:35:29.1234567' as time(7)) cast('2008-05-08 12:35:29.1234567' as date) cast('2008-05-08 12:35:29.123' as smalldatetime) cast('2008-05-08 12:35:29.123' as datetime)
4.1 T-SQL特点
一体化 两种使用方式,交互和嵌入 非过程化语言 简洁
4.2 T-SQL数据类型
分为系统数据类型和用户自定义数据类型 系统数据类型
数字型:整数,小数,负数、分数等
整数int,bigint,smallint,tinyint 非整型decimal(p,s),float
货币:money,smallmoney 日期:datetime,datetime2,date,time, datetimeoffset,smalldatetime
4.2 T-SQL数据类型--例子
Select cast('2007-05-03 12:35:29' as smalldatetime), cast('2007-05-08 12:35:30' as smalldatetime), cast('2007-05-08 12:59:59.998' as smalldatetime)
应用程序----作为一个批处理; 存储过程或触发器-----作为一个批处理; 由EXECUTE命令语句执行的字符串构成一个批处理
Select * from 客户表 Select * from 工作人员表 go
第4章 SQL语言基础及数据定义功能
创建学生表
CREATE TABLE Student ( Sno Sname CHAR(7) NCHAR(5) PRIMARY KEY, NOT NULL,
Ssex
Sage
NCHAR(1),
TINYINT,
Sdept
)
2013年1月11日2时40分
NVARCHAR(20)
第4章 SQL语言基础及数据定义功能
4.1 SQL语言概述
4.2 SQL语言支持的数据类型
4.3数据定义功能
2013年1月11日2时40分
1
4.1 SQL语言概述
4.1.1 SQL语言的发展 4.1.2 SQL语言的特点 4.1.3 SQL语言功能概述
2013年1月11日2时40分
2
4.1.1 SQL语言的发展
(例:‘2001/08/03 10:30:00.000’ )
存储从1753年1月1日到9999年12月31日的 日期和时间数据
SmallDateTime:4字节,年月日时分 (例:‘2001/08/03 10:30:00’ )
存储从1900年1月1日到2079年6月6日的日期 和时间数据
2013年1月11日2时40分 12
货币类型
Money:8字节,精确到小数点后4位。 Smallmoney:4字节,精确到小数点后 4位。 可以带有适当的货币符号。例如,100 英镑可表示为 £ 100。
2013年1月11日2时40分
13
4.3 数据定义功能
4.3.1 架构定义与删除
4.3.2 基本表
2013年1月11日2时40分
数据操纵
数据控制
2013年1月11日2时40分
数据库系统概论:第4章 关系数据库标准语言——SQL语言1
4)删除完整性约束
例:删除“Height”属性列上的CHECK约束。 ALTER TABLE Student DROP
CONSTRAINT Chk1;
27
5)删除属性列
例:删除Student表中新增加的“Height”属性列。 ALTER TABLE Student DROP COLUMN Height;
2
2、SQL语言应用情况
(1) Oracle、Sybase、Informix、Ingres、 DB2、SQL Server、Rdb等大型数据库管理系统 实现了SQL语言; (2) Dbase、Foxpro、Acess等PC机数据库管理 系统部分实现了SQL语言; (3)可以在HTML(Hypertext Markup Language, 超文本标记语言)中嵌入SQL语句,通过WWW访 问数据库; (4)在VC、VB、Delphi、PB也可嵌入SQL语句。
/*外键约束*/ Credit NUMBER);
21
例3:建立一个学生选课表SC,所有约束条件均为表
级完整性约束。
CREATE TABLE SC
( Sno CHAR(8),
Cno CHAR(8),
Grade NUMBER,
PRIMARY KEY(Sno,Cno),
/*主键约束*/
FOREIGN KEY(Sno) REFERENCES Student(Sno)
25
3)增加完整性约束
例:给Student表中“Height”属性列增加一 个CHECK约束,要求学生的身高要超过140厘 米才行。 ALTER TABLE Student ADD CONSTRAINT Chk1 CHECK(Height>140);
第4章 SQL语言基础及数据定义功能
第4章 SQL 语言基础及数据定义功能
统一字符编码字符串类型
nchar(n):定长存储,n<=4000
nvarchar(n):不定长存储,长度最大不超过n , n<=4000 ntext:存储大于8000字节的文本 特点:每个字符占两个字节
第4章 SQL 语言基础及数据定义功能
第4章 SQL 语言基础及数据定义功能
第4章 SQL语言基础及数据定义功能
4.1 SQL概述 4.2 SQL语言支持的数据类型
4.3 数据定义
4.4 索引
第4章 SQL 语言基础及数据定义功能
4.1 SQL概述
SQL(Structured Query Language)是用户操作关
系数据库的通用语言。 SQL是集数据定义、数据查询、 数据操纵和数据控制四种功能于一体的语言。SQL已经 成为关系数据库的标准语言,现在所有的关系数据库管 理系统都支持SQL。 SQL语言是一种非过程化语言。 SQL有两种使用方法,一种是以用户交互的方式联 机使用,另一种是作为子语言嵌入到其他程序语言中使
第4章 SQL 语言基础及数据定义功能
建表的同时通常还可以定义与该表有关的完整性约 束条件,这些完整性约束条件被存入系统的数据字典中,
当用户操作表中数据时由DBMS自动检查该操作是否违背
这些完整性约束条件。 如果完整性约束条件涉及到该表的多个属性列,则 必须定义在表级上,否则既可以定义在列级也可以定义 在表级。
而在两种不同的使用方式下,SQL语言的语法结构基本
上是一致的。这种以统一的语法结构提供两种不同的使用方 式的作法,为用户提供了极大的灵活性与方便性。
第4章 SQL 语言基础及数据定义功能
数据库sql语言的组成、基本功能
数据库sql语言的组成、基本功能下载温馨提示:该文档是我店铺精心编制而成,希望大家下载以后,能够帮助大家解决实际的问题。
文档下载后可定制随意修改,请根据实际需要进行相应的调整和使用,谢谢!并且,本店铺为大家提供各种各样类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,如想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by the editor. I hope that after you download them, they can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you!In addition, our shop provides you with various types of practical materials, suchas educational essays, diary appreciation, sentence excerpts, ancient poems, classic articles, topic composition, work summary, word parsing, copy excerpts, other materials and so on, want to know different data formats and writing methods, please pay attention!数据库SQL语言是现代信息技术中至关重要的一部分,它的应用范围涵盖了从个人电脑到大型企业系统的各个领域。
SQL的数据定义和数据控制功能
20
Student
24
Delete a column(删除属性)
–
ALTER TABLE Student DROP age;
sid
name
age
sex
dept
20
Student
25
Delete Table(删除表)
DROP TABLE <表名> 基本表一旦被删除,表中的数据全部自动删除 基本表一旦被删除,由该表导出的视图(定义) 失效,应该也删除
INSERT INTO Student VALUES(‘98010’,’Michael’,20,’M’,’CS’);
29
插入子查询的结果集 INSERT INTO <表名>[(<属性列1>][<属性列2>…)] <子查询>; 如: 求每个系学生的平均年龄,并把结果存入数据库。
CREATE TABLE dept_AVEage(dept CHAR(20), AVE_age SMALLINT) INSERT INTO dept_AVEage SELECT dept, AVE(ALL age) FROM Student GROUP BY dept;
–
–
–
默认值 减少数据输入工作量 DEFAULT<约束名><默认值>FOR<列名>
CHECK
–
–
检查约束,通过约束条件表达式设置约束条件 CONSTRAINT<约束名>CHECK(<约束条件表达式>)
16
Constrain On Table (表级完整性的约束条件)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
示例
例1.为用户“ZHANG”定义一个架构 ,架构名为“S_C”。
CREATE SCHEMA S_C AUTHORIZATION ZHANG
例2.定义一个用隐含名字的架构。
CREATE SCHEMA AUTHORIZATION ZHANG
2016年12月17日11时50 分
20
示例
例3.在定义架构的同时定义表。
2016年12月17日11时50 分 26
非空约束 <列名> <类型> NOT NULL
例:sname char(10) NOT NULL
2016年12月17日11时50 分
27
主键约束
PRIMARY KEY [(<列名> [, … n] )]
如果在列级完整性约束处定义单列主键, 则可省略括号。
33
修改表结构
ALTER TABLE <表名> [ ALTER COLUMN <列名> <新数据类型>] | [ ADD <列名> <数据类型> [约束]] | [ DROP COLUMN <列名> ] | [ ADD [constraint <约束名>] 约束定义] | [ DROP [constraint] <约束名>]
数值型
准确型
整数 Bigint: 8字节, Int:4字节 Smallint:2字节, Tinyint:1字节(0~255) Bit:1位,存储1或0 小数 Numeric(p,q)或Decimal(p,q), 其中:p为数字位长度,q:小数位长度。
近似型
Float:8字节 Real:4字节
Datetime:8字节,年月日时分秒毫秒
(例:‘2001/08/03 10:30:00.000 ’ )
存储从1753年1月1日到9999年12月31日的 日期和时间数据
SmallDateTime:4字节,年月日时分 (例:‘2001/08/03 10:30:00’ )
存储从1900年1月1日到2079年6月6日的日期 和时间数据
CREATE SCHEMA [<架构名>] AUTHORIZATION <用户名> 如果没有指定<架构名>,则<架构名> 隐含为<用户名>。 一个<用户名>可以拥有多个架构。 执行创建架构语句的用户必须具有管 理员权限,或CREATE SCHEMA权限。
2016年12月17日11时50 分 19
数据查询 数据定义 SELECT CREATE、DROP、ALTER
数据操纵
数据控制
2016年12月17日11时50 分
INSERT、UPDATE、DELETE
GRANT、REVOKE
6
4.2 L支持的数据类型
数值型
字符串型
日期时间型
货币型
2016年12月17日11时50 分
7
2016年12月17日11时50 分 17
架构基本概念
一个数据库可以包含一个或多个架构 ,由特定的授权用户名所拥有。 在同一个数据库中,架构的名字必须 是唯一的。 属于一个架构的对象称为架构对象。 架构对象可以是:基本表、视图、触 发器等。
2016年12月17日11时50 分 18
定义架构
ALTER VIEW
ALTER INDEX
DROP VIEW
DROP INDEX
2016年12月17日11时50 分
16
架构基本概念
架构(schema,也称为模式)是数据 库下的一个逻辑命名空间, 可以存放表、视图等数据库对象, 是一个数据库对象的容器。 如果将数据库比喻为操作系统,则架 构就相当于操作系统中的目录,架构 中的对象就相当于目录下的文件。
2016年12月17日11时50 分 32
修改表结构
在定义完表之后,如果需求有变化, 比如添加列、删除列或修改列定义, 可以使用ALTER TABLE语句实现。 ALTER TABLE语句可以对表添加列、 删除列、修改列的定义、定义主键、 外键,也可以添加和删除约束。
2016年12月17日11时50 分
NOT NULL:限制列取值非空。 DEFAULT:给定列的默认值。 UNIQUE:限制列取值不重。
CHECK:限制列的取值范围。
PRIMARY KEY:指定本列为主键。
FOREIGN KEY:定义本列为引用其他表的外 键。
2016年12月17日11时50 分 25
几点说明
例1: SNO char(7) PRIMARY KEY
例2: PRIMARY KEY(SNO)
PRIMARY KEY(SNO,CNO)
2016年12月17日11时50 分
28
外键约束
[ FOREIGN KEY (<外键列名>)]
REFERENCES <表名>(<主键列名>)
如果是在列级完整性约束处,则可省略 “FOREIGN KEY (<列名>)”部分。 例:定义SC表的Sno外键。 FOREIGN KEY(Sno) REFERENCES Student(Sno)
注:n 为字符个数
Text:存储大于8000字节的文本
2016年12月17日11时50 分
10
统一字符编码字符串类型
nchar(n):定长存储,n<=4000
nvarchar(n):不定长存储,长度最大 不超过n , n<=4000 ntext:存储大于8000字节的文本
特点:每个字符占两个字节
4.3.2 基本表
2016年12月17日11时50 分
15
SQL数据定义功能
对 象 架构 表 创 建 CREATE SCHEMA CREATE TABLE ALTER TABLE 修 改 删 除 DROP SCHEMA DROP TABLE
视图
索引
CREATE VIEW
CREATE INDEX
NOT NULL和DEFAULT只能是列级完整性约束;
其他约束均可在表级完整性约束处定义。
注意以下几点:
如果CHECK约束是定义多列之间的取值约束,则 只能在表级完整性约束处定义;
如果在表级完整性约束处定义主键和唯一值约束 ,则应将主键列和唯一值约束列用圆括号括起来 ,如:PRIMARY KEY(列1{[,列2 ] …}) 本章只介绍非空约束、主键约束和外键约束。
2016年12月17日11时50 分 29
创建学生表
CREATE TABLE Student ( Sno Sname CHAR(7) NCHAR(5) PRIMARY KEY, NOT NULL,
Ssex
Sage
NCHAR(1),
TINYINT,
Sdept
)
2016年12月17日11时50 分
NVARCHAR(20)
2016年12月17日11时50 分
3
4.1.1 SQL语言的发展
1986年10月由美国ANSI 公布最早的SQL标 准。
1989年4月,ISO提出了具备完整性特征的 SQL,称为SQL-89 。 1992年11月,ISO又公布了新的SQL标准, 称为SQL-92(以上均为关系形式)。
2016年12月17日11时50 分
11
二进制字符串类型
Binary(n):固定长度,n<=8000 Varbinary(n):可变长度,n<=8000 注:n为二进制数据的字节数 image:大容量、可变长二进制字符数 据,可用于存储文件。
2016年12月17日11时50 分
12
日期时间型
1999年颁布SQL-99,是SQL92的扩展。
2016年12月17日11时50 分 4
4.1.2 SQL语言的特点
1. 一体化 2. 高度非过程化 3. 简洁 4. 使用方式多样
2016年12月17日11时50 分
5
4.1.3 SQL语言功能概述
四部分:数据定义功能、数据控制功能、数据 查询功能和数据操纵功能。 SQL功能 命令动词
2016年12月17日11时50 分
34
示例
例1.为SC表添加“修课类别”列,此 列的列名为Type,数据类型为NCHAR(2) ,允许空。 ALTER TABLE SC
ADD Type NCHAR(2) NULL
2016年12月17日11时50 分
35
示例
例2.将Type列的类型改为NCHAR(4)。
2016年12月17日11时50 分 13
货币类型
Money:8字节,精确到小数点后4位。 Smallmoney:4字节,精确到小数点后 4位。 可以带有适当的货币符号。例如,100 英镑可表示为 £ 100。
2016年12月17日11时50 分
14
4.3 数据定义功能
4.3.1 架构定义与删除
2016年12月17日11时50 分 23
定义基本表
CREATE TABLE <表名>( <列名> <数据类型> [列级完整性约束定义]
{, <列名> <数据类型>
[列级完整性约束定义] … } [, 表级完整性约束定义 ] )
2016年12月17日11时50 分
24
在列级完整性约束定义处可定义的约束
2016年12月17日11时50 分 8
字符串型
普通编码字符串类型 统一字符编码字符串类型 二进制字符串类型