资源预览内容
第1页 / 共88页
第2页 / 共88页
第3页 / 共88页
第4页 / 共88页
第5页 / 共88页
第6页 / 共88页
第7页 / 共88页
第8页 / 共88页
第9页 / 共88页
第10页 / 共88页
亲,该文档总共88页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
数据库原理与设计,数据库原理与设计,第2章 关系数据库语言,数据库原理与设计,第2章 关系数据库语言,SQL概述 SQL Server数据库的基本管理与设置 数 据 定 义 数 据 查 询 数 据 更 新,SQL(Structured Query Language)是结构化查询语言,由于它语言简捷、功能丰富,倍受用户及计算机工业界欢迎,已成为目前应用最广的关系数据库语言。Transact-SQL是Microsoft公司对SQL标准的一个实现,简称T-SQL。Microsoft SQL Server 2000实现了SQL2标准。而Microsoft SQL Server 2005实现了SQL3标准。要特别留意“实现”这个词,不论是2000版或者是2005版,T-SQL并不完全服从SQL标准。,数据库原理与设计,2.1 SQL概述,SQL简单易学、风格统一,利用简单的几条命令就可以完成所有的功能。在SQL Plus Worksheet环境下可以单独使用的SQL语句,几乎可以不加修改地嵌入到如VB、PB这样的前端开发平台上,利用前端工具和SQL的数据库操纵能力,可以快速建立数据库应用程序。 SQL有以下主要特点。 1综合统一 2高度非过程化 3面向集合的操作方式 4以同一种语法结构提供两种使用方式 5语言简洁,易学易用,数据库原理与设计,2.1.2 SQL数据库的体系结构,数据库原理与设计,2.1.3 SQL语句的分类,在SQL2标准中,SQL语句可以大体分为以下三类。 数据定义语言(Data Definition Language,DDL):用于定义SQL模式、基本表、视图、索引等结构。 数据操作语言(Data Manipulation Language,DML):数据操作分成数据查询和数据更新两类。而数据更新又分成插入、删除和修改3种操作。查询语句SELECT是SQL中使用频率最高的语句。 数据控制语言(Data Control Language,DCL):包括事务管理功能和数据保护功能,即数据库的恢复、并发控制,以及数据库的安全性、完整性控制。,数据库原理与设计,2.1.4 SQL的语法约定,1标识符 2标识符的类型 3SQL语句的语法,数据库原理与设计,2.2 SQL Server数据库的基本管理与设置,2.2.1 启动和关闭数据库服务 1启动服务器 (1)使用自动服务系统 (2)用SQL Server服务管理器启动SQL Server (3)从Windows应用程序启动SQL Server (4)从命令行启动SQL Server 2停止、暂停和继续运行服务器,数据库原理与设计,2.2.2 创建数据库,1数据库的存储结构 数据库的存储结构分为逻辑存储结构和物理存储结构两种。 数据库的逻辑存储结构:指的是数据库是由哪些性质的信息所组成。实际上,SQL Server的数据库是由诸如表、视图、索引、约束、默认值、规则、触发器、用户定义数据类型、用户定义函数、存储过程等各种不同的数据库对象所组成的。 数据库的物理存储结构:指的是数据库文件是如何在磁盘上存储的。数据库在磁盘上是以文件为单位存储的,由数据库文件和事务日志文件组成,一个数据库至少应该包含一个数据库文件和一个事务日志文件。,数据库原理与设计,2创建数据库,创建数据库需要经过许可,在默认情况下,只有系统管理员和数据库拥有者可以创建数据库。数据库被创建后,创建数据库的用户自动成为该数据库的所有者。 创建数据库的过程实际上就是为数据库设计名称、设计所占用的存储空间和存放文件位置的过程。 使用Transact-SQL语言创建数据库,语法如下: CREATE DATABASE 数据库名 ON PRIMARY ,n LOG ON ,n := (NAME=逻辑文件名, FILENAME=操作系统下的物理路径和文件名 ,SIZE=文件初始大小 ,MAXSIZE=文件最大大小|UNLIMITED ,FILEGROWTH=增量值 ,n,数据库原理与设计,2.2.3 修改数据库,建立一个数据库之后,可以根据需要对该数据库的结构进行修改。修改数据库包括增、删数据文件和事务日志文件,修改数据文件和事务日志文件的初始容量、最大容量、增长方式等。 使用ALTER DATABASE语句修改数据库语法格式如下: ALTER DATABASE 数据库名 ADD FILE ,n TO 文件组 |ADD LOG FILE ,n |REMOVE FILE with delete |MODIFY FILE |MODIFY NAME=新数据库名 |ADD FILEGROUP |REMOVE FILEGROUP |MODIFY FILEGROUP FILEGROUP_PROPERTY NAME=新文件组名,数据库原理与设计,2.2.4 设置数据库选项,数据库的选项决定了一个数据库的特性。在一个数据库上设置的选项不会影响其他数据库。可以用sp_dboption系统存储过程设置数据库选项。 使用系统存储过程sp_dboption查看数据库选项的基本语法如下: sp_dboption 数据库名 配置选项名 设置值,数据库原理与设计,2.2.5 删除数据库,当不再需要某个数据库时,应当把它从数据库服务器中删除。删除一个数据库时也删除了该数据库的全部对象,从而将其所占的磁盘空间全部释放掉。 使用Transact-SQL语言删除数据库的基本语法如下: DROP DATABASE 数据库名 ,.n ,数据库原理与设计,2.3 数 据 定 义,2.3.1 表的创建与管理 表格实例之一:,数据库原理与设计,emp(eno, cname, age, sal, mgr,dno) 职工 职工号 姓名 年龄 工资 领导 部门号 其中,mge为职工的上一级领导(即上级领导的职工号),表格实例之二,数据库原理与设计,CREATE TABLE student (snoNUMBER(6), sname CHAR(6), sex CHAR(2), birthday DATE, dno CHAR(3) );,建立表对象,数据库原理与设计,字符型: CHAR(n) 字符数据,长度为n个字符 VARCHAR2(n)变长字符型(n为最大长度) 数据型: NUMBER(n) 数值数据,最大可达105位 NUMBER(m,n)m位数字,其中n为小数位 日期型: DATE,其格式为DDMONYY 例如:17DEC85或1712月85,列数据类型,数据库原理与设计,完整性约束,(1)主码完整性约束 sno number(6)constraint e 1 primary key, (2)非空完整性约束 sname char(6) constraint e 2 not null, (3) 唯一完整性约束 dname char(20) contraint d2 unique, (4)check完整性约束 age number constraint e3 check(age between 18 and 60), sex char(2)check(sex in(男,女), (5)引用完整性约束 dno char(3)constraint e4 references dep(dno) on delete cascade,数据库原理与设计,引用完整性约束,先建主表,后建子表 子表引用的必须是主表的主码(或定义了unique约束的列)。 子表dno的值必须是合法值(主表值) 当删除主表记录时,若子表中有对应记录,不能删。 指定了on delete cascade 连带删除。,数据库原理与设计,表约束,CREATE TABLE sc (sno number(6), cno char(3), grade number(3), primary key (sno,cno) );,CREATE TABLE ( not null(列1,列2) unique(列1,列2) );,数据库原理与设计,表约束(2),数据库原理与设计,完整性约束的作用时间:,create table student () enable constraint e1 enable constraint e2 ; disable,数据库原理与设计,基本表的修改和删除,修改表对象 ALTER TABLE emp ADD (列定义) MODIFY(ename char(10) ADD (表约束) DROP CONSTRAINT e4; 删除表对象 DROP TABLE emp;,数据库原理与设计,DML YGQK(DB写语句) :,INSERT INTO emp VALUES(e01,李宏,32, ); UPDATE emp SET sal=sal*1.1 WHERE dno=d01; DELETE FROM emp WHERE dno=d01;,数据库原理与设计,2.3.2 索引的创建与管理,1索引的概念 2索引的分类 索引分为聚簇索引与非聚簇索引。 聚簇索引(Clustered Index)对表的物理数据页中的数据按列进行排序,然后再重新存储到磁盘上,即聚簇索引与数据是一体的,它的叶结点中存储的是实际的数据。 非聚簇索引(Nonclustered Index)具有完全独立于数据行的结构,使用非聚簇索引不用将物理数据页中的数据按列排序。非聚簇索引的叶结点存储了组成非聚簇索引的关键字值和行定位器。,数据库原理与设计,3创建索引,(1)选择创建索引的列 如果在一个列上创建索引,该列就称为索引列。通常使用的索引列有如下这些: 表的主键列; 连接中频繁使用的列; 在某一范围内频繁搜索的列和按排序顺序频繁检索的列。 建立索引需要产生一定的存储开销,在进行插入和更新数据的操作时,维护索引也要花费时间和空间,因此没有必要对表中的所有列都建立索引。一般来说,下面这些列不考虑建立索引: 很少或从来不在查询中引用的列; 只有两个或很少几个值的列(如性别,只有两个值:“男”或“女”); 以bit、text、image数据类型定义的列; 另外,数据行数很少的小表一般也没有必要创建索引。 (2)创建索引的语法格式 使用CREATE INDEX语句创建索引,语法格式如下: CREATE UNIQUE CLUSTERED|NONCLUSTERED INDEX ON (,),数据库原理与设计,4管理索引,(1)查看索引 利用系统存储过程sp_helpindex可以查看特定表上的索引信息,也可以删除不需要的索引。 例2-19 使用系统存储过程查看Course表的索引信息。 EXECUTE sp_helpindex Course (2)删除索引 在创建索引之后,如果该索引不再需要,可以用DROP语句将其删除。DROP语句的语法如下: DROP INDEX .,数据库原理与设计,2.3.3 视图的创建与管理,1视图的概念 视图是从一个或者多个表或视图中导出的表,其结构和数据是建立在对表的查询基础上的。 2视图的创建 使用CREATE VIEW语句创建视图,语法格式如下: CREATE VIEW (,) AS WITH CHECK OPTION 3查看视图 每当创建了一个新的视图后,在系统说明的系统表中就定义了该视图的存储,因此,可以使用系统存储过程sp_help显示视图特征,使用sp_helptext显示视图在系统表中的定义,使用sp_depends显示该视图所依赖的对象。,数据库原理与设计,2.3.3 视图的创建与管理(2),4修改视图 对于一个已经存在的并且其定义未
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号