sql语言基础及数据定义功能.ppt_第1页
sql语言基础及数据定义功能.ppt_第2页
sql语言基础及数据定义功能.ppt_第3页
sql语言基础及数据定义功能.ppt_第4页
sql语言基础及数据定义功能.ppt_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第3章 SQL语言基础及数据定义功能,3.1 SQL语言概述 3.2 数据类型 3.3 创建数据库 3.4 创建与维护关系表,概述,SQL(Structured Query Language)是用户操作关系数据库的通用语言。 包含数据定义、数据查询、数据操作和数据控制等与数据库有关的全部功能。 已成为关系数据库的标准语言。 所有的关系数据库管理系统都支持SQL。,3.1 SQL语言概述,3.1.1 SQL语言的发展 3.1.2 SQL语言的特点 3.1.3 SQL语言功能概述,3.1.1 SQL语言的发展,1986年10月美国ANSI公布最早的SQL标准。 1989年4月,ISO提出了具备完整性特征的SQL,称为SQL-89(SQL1)。 1992年11月,ISO又公布了新的SQL标准,称为SQL-92(SQL2) (以上均为关系形式)。 1999年颁布SQL-99(SQL3),是SQL92的扩展。,3.1.2 SQL语言的特点,1. 一体化 2. 高度非过程化 3. 简洁 4. 使用方式多样,3.1.3 SQL语言功能概述,四部分:数据定义功能、数据控制功能、数据查询功能和数据操纵功能。,3.2 数据类型,数值类型 字符串类型 日期时间类型 货币类型,精确数值类型,近似数值数类型,字符串类型,普通编码字符串类型 统一字符编码字符串类型 二进制字符串类型,普通编码字符串类型,说明:如果在使用char(n)或varchar(n)类型时未指定n,则默认长度为1。如果在使用CAST和CONVERT函数时未指定n,则默认长度为30。,统一字符编码字符串类型,二进制字符串类型,日期时间类型,日期时间类型(续),货币类型,3.3 创建数据库,3.3.1 SQL Server数据库分类 3.3.2 数据库基本概念 3.3.3 用图形化方法创建数据库 3.3.4 用T-SQL语句创建数据库,3.3.1 SQL Server数据库分类,两大类: 系统数据库:存放维护系统正常运行的信息。 用户数据库:存放用户自己的信息。,系统数据库,Master:最重要数据库,用于记录所有系统级信息。 Msdb:保存关于报警、作业、操作员等信息 Model:包含所有用户数据库的共享信息。当用户创建数据库时,系统自动将model数据库中的内容复制到新建数据库中。 Tempdb:临时数据库,用于存储用户创建的临时表、用户声明的变量以及用户定义的游标数据等。,3.3.2 数据库基本概念,1SQL Server数据库的组成 2关于数据的存储分配 3数据库文件的属性,1SQL Server数据库的组成,SQL Server将数据库映射为一组操作系统文件,这些文件被划分为两类:数据文件和日志文件。 数据文件包含数据和对象,例如表、索引、存储过程和视图等。 日志文件包含恢复数据库中的所有事务需要的信息。 数据和日志信息不混合在同一个文件中,一个文件只由一个数据库使用。,数据文件,用于存放数据库数据。数据文件又分为: 主要数据文件: 推荐扩展名是.mdf, 包含数据库的系统信息,也可存放用户数据。 每个数据库都有且只能有一个主要数据文件。 是为数据库创建的第一个数据文件。 不能小于3MB。 次要数据文件: 推荐扩展名是.ndf。 一个数据库可以包含0n个次要数据文件。 可与主要数据文件存放在不同地方。 所有文件的使用对用户也是透明的。,日志文件,推荐扩展名为.ldf。 用于存放恢复数据库的所有日志信息。 每个数据库有1n个日志文件。,2关于数据的存储分配,数据库中数据的存储分配单位是数据页。一页是一块8KB(其中用8060个字节存放数据,另外132个字节存放系统信息)的连续磁盘空间。 页是存储数据的最小空间分配单位。 不允许表中的一行数据存储在不同页上(varchar(max)、nvarchar(max)、text、ntext、varbinary(max)和image数据类型除外),即行不能跨页存储。,示例,假设某数据表有10000行数据,每行3000字节,估算其需要的空间: (10000/2) * 8KB = 40MB 其中,每页中有6000字节用于存储数据,有2060个字节是浪费的。,3数据库文件的属性,文件名及其位置:每个文件都有一个逻辑文件名和物理文件名及物理存储位置 初始大小:可以指定每个文件的初始大小。 增长方式:可以指定文件是否自动增长 最大大小:可以指定文件增长的最大空间限制,3.3.3 用图形化方法创建数据库,在SSMS的“对象资源管理器”中,在“数据库”节点上右击鼠标,在弹出的菜单中选择“新建数据库”命令; 在“新建数据库”窗口中进行相应设置。,3.3.4 用T-SQL语句创建数据库,CREATE DATABASE database_name ON PRIMARY ,.n LOG ON ,.n := ( NAME = logical_file_name , FILENAME = os_file_name | filestream_path , SIZE = size KB | MB | GB | TB , MAXSIZE =max_sizeKB|MB|GB|TB| UNLIMITED , FILEGROWTH =growth_incrementKB|MB|GB|TB|% ) ,.n ,示例1,例1创建一个名为“学生管理数据库”的数据库,其他选项均采用默认设置。 CREATE DATABASE 学生管理数据库,示例2,CREATE DATABASE RShDB ON ( NAME = RShDB, FILENAME = D:RShDB_DataRShDB.mdf , SIZE = 10, MAXSIZE = 30, FILEGROWTH = 5 ) LOG ON ( NAME = RShDB_log, FILENAME = D:RShDB_DataRShDB_log.ldf , SIZE = 3, MAXSIZE = 12, FILEGROWTH = 2 ),示例3,CREATE DATABASE students ON PRIMARY ( NAME = students, FILENAME = F:Datastudents.mdf, SIZE = 3MB, MAXSIZE = UNLIMITED ), ( NAME = students_data1, FILENAME = D:Datastudents_data1.ndf, SIZE = 5MB, MAXSIZE = 10MB, FILEGROWTH = 1MB ) LOG ON ( NAME = students_log, FILENAME = F:Datastudents_log.ldf, SIZE = 2MB, MAXSIZE = 6MB, FILEGROWTH = 10% ),3.4 创建与维护关系表,3.4.1 用T-SQL语句实现 3.4.2 用SSMS工具实现,3.4.1 用T-SQL语句实现,1 创建表 2 定义完整性约束 3 修改表结构 4 删除表,1 创建表,CREATE TABLE ( 列级完整性约束定义 , 列级完整性约束定义 , 表级完整性约束定义 ),2 定义完整性约束,NOT NULL:限制列取值非空。 DEFAULT:给定列的默认值。 UNIQUE:限制列取值不重。 CHECK:限制列的取值范围。 PRIMARY KEY:定义主码。 FOREIGN KEY:定义外码。 说明: NOT NULL和DEFAULT只能定义在列级完整性约束处 多列的CHECK约束只能定义在表级完整性约束处,主码约束,语法格式: PRIMARY KEY ( , n ) 如果是在列级完整性约束处定义单列的主码,可省略方括号部分。,外码约束,语法格式为: FOREIGN KEY () REFERENCES () 如果是在列级完整性约束处定义单列的外码,可省略方括号部分。,UNIQUE约束,用于限制在一个列中不能有重复的值。 语法格式为: 数据类型 UNIQUE ( , n ) 如果是在列级完整性约束处定义单列的UNIQUE约束,则可以省略括号部分。,DEFAULT约束,用于提供列的默认值。 一个列只能有一个默认值约束,而且一个默认值约束只能用在一个列上。 只能定义在列级完整性约束处。 语法格式: DEFAULT 默认值,CHECK约束,用于限制列的输入值在指定的范围内。 语法格式: CHECK (逻辑表达式) 说明:逻辑表达式中不能包含来自多个表的列。,Student表结构,定义Student表,CREATE TABLE Student ( Sno CHAR(7) PRIMARY KEY, Sname NCHAR(5) NOT NULL, SID CHAR(18) UNIQUE, Ssex NCHAR(1) DEFAULT 男, Sage TINYINT CHECK(Sage=15 AND Sage=45), Sdept NVARCHAR(20) ),Course表结构,定义Course表,CREATE TABLE Course ( Cno CHAR(6) PRIMARY KEY, Cname NVARCHAR(20) NOT NULL, Credit NUMERIC(3,1) CHECK(Credit0), Semester TINYINT ),SC表结构,定义SC表,CREATE TABLE SC ( Sno CHAR(7) NOT NULL, Cno CHAR(6) NOT NULL, Grade TINYINT, PRIMARY KEY (Sno, Cno), FOREIGN KEY (Sno) REFERENCES Student(Sno), FOREIGN KEY (Cno) REFERENCES Course(Cno) ),3 修改表结构,在定义基本表之后,如果需求有变化,比如添加列、删除列或修改列定义,可以使用ALTER TABLE语句实现。 ALTER TABLE语句可以对表添加列、删除列、修改列的定义,也可以添加和删除约束。,ALTER TABLE语句语法,ALTER TABLE ALTER COLUMN | ADD | DROP COLUMN | ADD 约束定义 | DROP ,示例,例2为SC表添加“修课类别”列,此列的定义为:Type NCHAR(1),允许空。 ALTER TABLE SC ADD Type NCHAR(1) NULL 例3将新添加的Type列的数据类型改为NCHAR(2)。 ALTER TABLE SC ALTER COLUMN Type NCHAR(2),示例,例4为Type列添加限定取值范围为必修、选修的约束。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论