《数据库原理》课件第3章 SQL语言初步.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《数据库原理》课件第3章 SQL语言初步.ppt》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库原理 数据库原理课件第3章 SQL语言初步 数据库 原理 课件 SQL 语言 初步
- 资源描述:
-
1、2024-9-612024-9-62主要内容(一)主要内容(一)v3.1 SQL简介简介SQL的特点SQL语言的分类vSQL数据定义功能vSQL数据查询功能vSQL数据修改功能vSQL数据控制功能v3.2 基本的数据定义基本的数据定义定义、删除与修改基本表索引的创建和删除v3.3 基本的数据操作基本的数据操作插入、修改、删除数据2024-9-6 3v历史SQL:Structured Query Language1974年,由Boyce和Chamber提出1975-1979年,在System R上实现,由IBM的San Jose研究室研制,称为Sequel1986年 ANSI公布第一个SQL标准
2、;1987、1989、1992.不断扩充;目前有标准:SQL86、SQL92、SQL99、SQL2003、SQL2006、SQL2008v本章主要讲述SQL92语言的用法。v要求能熟练使用SQL语句在不同的RDBMS中完成数据库的基本操作。2024-9-6 4v标准化标准化有关组织有关组织vANSI(American Natural Standard Institute)vISO(International Organization for Standardization)有关标准有关标准vSQL-86“数据库语言数据库语言SQL”vSQL-89“具有完整性增强的数据库语言具有完整性增强的数据
3、库语言SQL”,增加了对完整性约束的支持,增加了对完整性约束的支持vSQL-92“数据库语言数据库语言SQL”,是,是SQL-89的超集,增加了许多新特性,如新的数据类型,更丰富的的超集,增加了许多新特性,如新的数据类型,更丰富的数据操作,更强的完整性、安全性支持等。数据操作,更强的完整性、安全性支持等。vSQL-3增加对面向对象模型的支持增加对面向对象模型的支持vSQL2003支持支持 XML,支持,支持 Window 函数、函数、Merge 语句等语句等vSQL2006继续增强继续增强 XML方面的特性方面的特性vSQL20082024-9-6 5v特点特点一体化一体化v集集DDL,DML
4、,DCL于一体于一体v单一的结构单一的结构-关系,带来了数据操作符的统一关系,带来了数据操作符的统一面向集合的操作方式面向集合的操作方式v一次一集合一次一集合高度非过程化高度非过程化v用户只需提出用户只需提出“做什么做什么”,无须告诉,无须告诉“怎么做怎么做”,不必了解存,不必了解存取路径取路径两种使用方式,统一的语法结构两种使用方式,统一的语法结构vSQL既是自含式语言(用户使用),又是嵌入式语言(程序员既是自含式语言(用户使用),又是嵌入式语言(程序员使用)使用)语言简洁,易学易用语言简洁,易学易用2024-9-6 6v请比较:请比较:SQL支持的数据库三级模式支持的数据库三级模式 见图见
5、图ANSI SPARC报告中的数据库三级模式报告中的数据库三级模式 不同点不同点 v视图(视图(View)视图从若干个视图从若干个Table或其他视图上生成或其他视图上生成视图是一张虚表视图是一张虚表视图属于外模式(子模式)视图属于外模式(子模式)Database中只有视图的定义,而无实际存储的数据中只有视图的定义,而无实际存储的数据v基本表(基本表(Table)v存储文件(存储文件(File)*.dbf *.mdb *.mdf 、*.ndf2024-9-6 7vSQL对三级模式的对应支持对三级模式的对应支持用户用户1视图视图基本表基本表1基本表基本表2用户用户2存储文件存储文件外模式外模式模
6、模 式式内模式内模式用户用户外模式外模式模式模式内模式内模式DB内模式的基本单内模式的基本单位,存储基本表位,存储基本表外模式的基本单外模式的基本单位,与基本表有位,与基本表有本质区别本质区别返回2024-9-6 8v不同之处:不同之处:三级模式中,一个应用程序只能开启一个外模式,三级模式中,一个应用程序只能开启一个外模式,SQL中则不然中则不然三级模式中,应用程序只能访问外模式,三级模式中,应用程序只能访问外模式,SQL中可以是外模式和中可以是外模式和模式模式模式模式内内模式映像模式映像外模式外模式模式映像模式映像应用应用1应用应用2应用应用3外模式外模式A外模式外模式B模模 式式内内 模模
7、 式式OSDBMS数据库数据库SQL用户用户SQL用户用户视图视图1视图视图2基本表基本表1基本表基本表2基本表基本表3存储文件存储文件1存储文件存储文件2存储文件存储文件3外模外模式式模模 式式内模内模式式图图2 SQL2 SQL支持的数据库模式支持的数据库模式 图图1 SPARCSPARC三级模式结构三级模式结构 返回2024-9-6 9用户用户1 1用户用户2 2用户用户4 4视图视图V1V1视图视图V1V1用户用户3 3基本表基本表B1B1基本表基本表B2B2基本表基本表B4B4基本表基本表B3B3存储文件存储文件S1S1存储文件存储文件S2S2存储文件存储文件S4S4存储文件存储文件
8、S3S3SQLSQL用户用户VIEWVIEWTableTableStored fileStored file图图3 SQL数据库体系结构数据库体系结构2024-9-6 10v数据定义语言数据定义语言 DDL(Data Definition Language)用于创建、更改或删除数据库对象,如表、视图、索引及其它对象。语句包括:CREATE、ALTER、DROPv数据操纵语言数据操纵语言DML(Data Manipulation Language)用于操纵数据库对象(如表)。语句包括:SELECT、INSERT、UPDATE、DELETEv数据控制语言数据控制语言DCL (Data Contro
9、l Language)用于定义控制访问对象(如表)。语句包括:GRANT、REVOKE2024-9-6 11SQL功能功能操作符操作符数据查询数据查询SELECT数据定义数据定义CREATE,ALTER,DROP数据操纵数据操纵INSERT,UPDATE,DELETE数据控制数据控制GRANT,REVOKEvSQL语句的语句的9个核心动词个核心动词2024-9-6 12实验环境实验环境v安装SQL Server 2000/8v配置SQL Server 2000/8vSQL Server 2000/8的管理工具和实用程序2024-9-6 13v保证计算机的软硬件环境能满足保证计算机的软硬件环境能
10、满足SQL Server 的需要的需要v根据所期望的用途和计算机的软硬件环境选根据所期望的用途和计算机的软硬件环境选择合适的版本和部件择合适的版本和部件v创建创建SQL Server 使用的账号使用的账号2024-9-6 14v启动和停止启动和停止SQL Server 服务服务v注册服务器和创建服务器组注册服务器和创建服务器组2024-9-6 15v服务管理器(服务管理器(Service Manager)v客户机网络连接工具(客户机网络连接工具(SQL Server Client Network Utility)v服务器网络连接工具(服务器网络连接工具(SQL Server Server Ne
11、twork Utility)v企业管理器(企业管理器(SQL Server Enterprise Manager)v查询分析器(查询分析器(SQL Server Query Analyzer)v在线手册(在线手册(Books online)2024-9-6 16v表表TABLE创建基本表创建基本表表结构的修改表结构的修改删除基本表删除基本表2024-9-6 17vSQL的数据定义语句(的数据定义语句(DDL)包括以下语句:)包括以下语句:创建创建删除删除修改修改表表CTEATE TABLEDROP TABLEALTER TABLE视图视图CTEATE VIEWDROP VIEWALTER VI
12、EW索引索引CTEATE INDEXDROP INDEXn注意:索引无修改语句!注意:索引无修改语句!2024-9-6 18v建立一个新数据库建立一个新数据库 数据库名数据库名v撤消一个数据库撤消一个数据库 数据库名数据库名v指定当前数据库指定当前数据库 数据库名数据库名2024-9-6 19v创建创建grademanager数据库数据库CREATE DATABASE grademanagerON-数据文件数据文件(NAME=grademanager_data,-文件逻辑名称 FILENAME=C:MSSQL7datagrademanager_Data.MDF,-文件物理名称(物理地址)SIZ
13、E=10,-文件初始大小 FILEGROWTH=10%)-文件增长幅度LOG ON-日志文件日志文件(NAME=grademanager_log,FILENAME=C:MSSQL7datagrademanager_log.LDF,SIZE=5,FILEGROWTH=10%)2024-9-6 20v字符型字符型Char(n):固定长度的字符串:固定长度的字符串Varchar(n):可变长字符串:可变长字符串v数值型数值型整数型整数型vbigint:8字节、字节、int:4字节、字节、smallint:2字节、字节、tinyint:1字节字节小数型小数型vnumeric(p,s):定点数,整数位和
14、小数位共:定点数,整数位和小数位共p位,小数位位,小数位s位,位,0=s=p=38 vdecimal,用法同,用法同numeric货币型货币型vmoney、smallmoneyv日期型日期型datetime:精确度精确度1/300秒,秒,8字节字节Smalldatetime:范围缩小,精确度:范围缩小,精确度1秒,秒,4字节字节v文本型文本型 textv逻辑型逻辑型 bit2024-9-6 21v语法语法1:CREATE TABLE(NULL|NOT NULL,PRIMARY KEY,FOREIGN KEY REFERENCES,CHECK,);v例1.建立student关系CREATE TA
15、BLE student(sno NUMERIC(6,0)NOT NULL,sname CHAR(8)NOT NULL,age NUMERIC(3,0),sex CHAR(2),bplace CHAR(20);2024-9-6 22创建表(续)创建表(续)v例2.创建职工表:CREATE TABLE Employee(Eno CHAR(4)NOT NULL UNIQUE,/*Eno取唯一值*/Ename CHAR(8)NOT NULL,Sex CHAR(2)NOT NULL default(男),/*Sex的默认值为“男”*/Age INT NULL,Is_Marry CHAR(1)NULL,T
16、itle CHAR(6)NULL,Dno CHAR(2)NULL);2024-9-6 23v其中,自定义的表名或者列名若是由包含多个单词的词组所其中,自定义的表名或者列名若是由包含多个单词的词组所构成,则必须选择使用中括号(构成,则必须选择使用中括号()或者双引号()或者双引号(“”)将此)将此表名或列名括起在内表名或列名括起在内v例3.创建职工表2,其中表名或者列名包含多个单词构成:CREATE TABLE Employee2 (Employee no CHAR(4)NOT NULL UNIQUE,Employee name CHAR(8)NOT NULL,Sex CHAR(2)NOT NU
17、LL,Age INT NULL,Is_Marry CHAR(1)NULL,Title CHAR(6)NULL,Dno CHAR(2)NULL);2024-9-6 24v语法语法2:CREATE TABLE AS(NOT NULL,)CLUSTER (,);v例4.创建女学生girl_student关系 CREATE TABLE girl_student AS SELECT sno,sname,age FROM student WHERE sex=女;在查询结果基础上在查询结果基础上创建新表创建新表MSSQL SERVER中实现:中实现:SELECT sno,sname,ageINTO girl
18、_studentFROM studentWHERE sex=女;2024-9-6 25v语法语法DROP TABLE,v说明说明此语句一执行,指定的表即从数据库中删除(表被删除,表在数据字典中的定义也被删除)此表上建立的索引和视图也被自动删除此表上建立的索引和视图也被自动删除 DROP TABLE语句一次可以删除多个表,多表间用逗号逗开。语句一次可以删除多个表,多表间用逗号逗开。vDROP与与DELETE区别:区别:DELETE清空表中所有数据行清空表中所有数据行v例5.删除表DROP TABLE student;2024-9-6 26v语句语句 ALTER TABLE ADD 列的完整性约束
19、|ADD ALTER COLUMN DROP COLUMN DROP CONSTRAINT;v说明说明ADD:为表增加一新列或者表级完整性约束,具体规定与CREATE TABLE的相当,但新列必须允许为空(除非有默认值);DROP COLUMN:在表中删除一个原有的列;ALTER COLUMN:修改表中原有列的数据类型;通常,当该列上有约束定义时,不能修改数据类型。DROP CONSTRAINT:删除原有的表级约束。2024-9-6 27v对表增加列对表增加列语法:语法:ALTER语句的形式:语句的形式:ALTER TABLE ADD NULL|NOT NULL,;例6.在student表中增
20、加一列addressALTER TABLE student ADD address CHAR(50);例7.在Employee表中增加一列负责人Emgr ALTER TABLE Employee ADD Emgr CHAR(4)NULL;如果原表中已存在数据,则新定义的列必须设置为如果原表中已存在数据,则新定义的列必须设置为NULL(除非有默认值)(除非有默认值);修改表结构(续)修改表结构(续)2024-9-6 28v对表删除列对表删除列语法:语法:ALTER语句的形式:语句的形式:ALTER TABLE DROP COLUMN ,;例8.删除新添列addressALTER TABLE st
21、udent DROP COLUMN address;修改表结构(续)修改表结构(续)2024-9-6 29v增大某个列增大某个列语法:语法:ALTER TABLE ALTER COLUMN NULL|NOT NULL,;例9.修改student表的列bplace的数据类型。ALTER TABLE studentALTER COLUMN bplace CHAR(30);(条件:列为空。改变数据类型和缩短长度)例10.修改列Emgr的数据类型为CHAR(10)。ALTER TABLE Employee ALTER COLUMN Emgr CHAR(10);/*只修改数据类型,不可修改列名*/如果列
22、中已存在数据,则不能改变数据类型,如果列中已存在数据,则不能改变数据类型,且不能缩短列的宽度,但可以增大列宽且不能缩短列的宽度,但可以增大列宽修改表结构(续)修改表结构(续)2024-9-6 30v添加约束添加约束语法:vALTER TABLE ADD CONSTRAINT ,;例11.新增唯一性约束ALTER TABLE student ADD CONSTRAINT uq_bplace UNIQUE(bplace);v删除约束删除约束语法:语法:vALTER TABLE DROP CONSTRAINT ,;例12.删除新增的唯一性约束ALTER TABLE student DROP CONS
23、TRAINT uq_bplace;2024-9-6 31v查看表的定义查看表的定义sp_helpsp_help显示:表的基本定义、表中的每个列的定义和表中标识列的定义v查看表间的依赖关系查看表间的依赖关系sp_dependssp_depends显示:所有依赖于所查表的对象和所有所查表依 赖的对象v查看表上的约束查看表上的约束sp_helpconstraintsp_helpconstraintv查看表中的数据查看表中的数据2024-9-6 32vATLER TABLE语句不支持列名的修改,如若需要重命名列名,语句不支持列名的修改,如若需要重命名列名,则可以使用则可以使用系统存储过程系统存储过程s
24、p_rename来完成。来完成。v例13.将表Emoployee2重命名为Emp。EXEC sp_rename Employee2,Emp;v系统存储过程sp_rename也可将表名进行重命名。v例14.将Emp表中的列Employee name重命名为Ename。EXEC sp_rename Emp.Employee name,Ename,column;2024-9-6 33v数据的更新操作:数据的更新操作:表中增加元组表中增加元组 INSERT修改表中数据修改表中数据 UPDATE删除元组删除元组 DELETE含有子查询的数据更新(含有子查询的数据更新(3.5)通过视图修改数据(通过视图修
25、改数据(3.6.4)2024-9-6 34v基本语法:INSERT INTO table_or_view (column_list)data_values|select_statement v有两种方式:使用使用VALUES关键字直接给各列赋值关键字直接给各列赋值使用使用SELECT子句,把从其他表或视图中选取的数据插入。子句,把从其他表或视图中选取的数据插入。v必须注意:必须注意:输入项的顺序和数据类型必须与表中列的顺序和数据类型相一致。可以不给全部列赋值,但没有赋值的列必须是可以空的列、有默认值的列、IDENTITY列等。字符型和日期型值插入时要用单引号括起来。2024-9-6 35v语句
展开阅读全文