资源预览内容
第1页 / 共100页
第2页 / 共100页
第3页 / 共100页
第4页 / 共100页
第5页 / 共100页
第6页 / 共100页
第7页 / 共100页
第8页 / 共100页
第9页 / 共100页
第10页 / 共100页
亲,该文档总共100页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第三章SQL语言及T-SQL的应用(1),本章学习重点之一:1、关系数据库的标准语言SQL基本知识。2、SQL的数据定义语句、数据操作语句、数据控制语句。3、视图、索引的概念与操作。,内容概要(之一):3.1 关系数据库的标准语言SQL3.2 数据定义3.3 数据查询语言,3.1关系数据库标准语言SQL3.1.1 SQL的发展史1974年IBM圣约瑟实验室(San Jose Research Laboratory)的Boyce和Chamberlin为关系数据库管理系统System-R设计的一种查询语言,当时称为SEQUEL语言(Structured English Query Language),后简称为SQL。1981年IBM推出关系数据库系统SQL/DS后,SQL得到了广泛应用。,1986年美国国家标准协会(American National Standard Institute 简称ANSI)公布了第一个SQL标准SQL86。1987年,国际标准化组织(International Organization for Standardization 简称ISO )通过SQL86标准。1989年,ISO制定SQL89标准,SQL89标准在SQL86基础上增补了完整性描述。 1990年,我国制定等同SQL89的国家标准。 1992年,ISO制定SQL92标准,即SQL2。 1999年,ANSI制定SQL3标准。 注: Server 2000中使用Transact-SQL语言。,3.1.2 SQL的特点,SQL(Structured Query Language)的特点:综合统一a、SQL集各种数据语言的功能于一体,语言风格统一。b、实体和实体之间的联系均用关系表示。2. 高度非过程化 只要提出“做什么”。 有利于各种数据库之间交换数据、有利于程序的移植、有利于实现程序和数据间的独立性;有利于实施标准化。,3. 面向集合的操作方式 操作数是集合,操作结果也是集合。4.以同一种语法结构提供两种使用方法自含式语言:联机交互的使用方式。嵌入式语言:嵌入到高级语言中。5. 语言简洁,易学易用,3.1.3 SQL的分类1、数据定义语言(DDL:Data Definition Language) 创建、修改或删除数据库中各种对象,包括表、视图、索引等。2、查询语言(QL:Query Language) 按照指定的组合、条件表达式或排序检索。3、数据操纵语言(DML:Data Manipulation Language ) 插入、删除、修改等操作。,4、数据控制语言(DCL:Data Control Language) 授予或收回访问数据库的某种特权、控制数据操纵事务的发生时间及效果、对数据库进行监视。 注意:在书写各种SQL 命令时,命令中所涉及的标点符号,如括号、逗号、分号、圆点(英文句号)等都应是英文半角,如果写成中文全角符号,则会在执行命令时出错。,3.2 数据定义命令 数据定义命令用于建立数据库和建立、修改、删除基本表。,3.2.1 建立数据库ANSI标准SQL建立数据库(SCHEMA:模式)的命令是: CREATE SCHEMA AUTHORIZATION ;例如:创建者是duck,则上面命令写作: CREATE SCHEMA AUTHORIZATION duck;注:RDBMS更常用下面命令格式: CREATE DATABASE ;例如:建立学费管理数据库的命令CREATE DATABASE xfgl;, Server语言,SQL SERVER中建立数据库补充,SQL Server 2000中常用的数据类型:, Server中的数据类型,3.2.2 建立数据表(标准)建立基本表的命令格式为:CREATE TABLE ( , , );:所要定义的基本表的名字 :组成该表的各个属性(列) :涉及相应属性列的完整性约束条件,如:NOT NULL:指该列的值不能为空值。UNIQUE:指该列的值是唯一的。 :涉及一个或多个属性列的完整性约束条件 注:完整性约束被存入系统的数据字典中。,创建表语句中常用完整性约束、主码约束: PRIMARY KEY、唯一性约束:UNIQUE、非空值约束:NOT NULL、参照完整性约束:FOREIGN KEY REFERENCES 引用表名(引用列)、检查约束:CHECK(检查表达式) 、默认值约束:DEFAULT默认值,例1 建立一个”学生”表Student,它由学号Sno、姓名Sname、性别Ssex、年龄Sage、所在系Sdept五个属性组成。其中学号不能为空,值是唯一的,并且姓名取值也唯一。(非空约束、唯一性约束实例) CREATE TABLE Student(Sno CHAR(8) NOT NULL UNIQUE, Sname VARCHAR(10) UNIQUE, Ssex CHAR(2) ,Sage tinyint,Sdept CHAR(2);Not null、unique组合等价于主键约束。,例2主键约束、默认约束:CREATE TABLE student (Sno CHAR(8) PRIMARY KEY, Sname VARCHAR(10)UNIQUE, Ssex CHAR(2) default 男, Sage TINYINT, Sdept CHAR(2);,列级约束,PRIMARY KEY与 UNIQUE 的区别?()主键具有以下特征:每个表只能定义一个主键主键值不能为空。主键列可以由一个或多个列组成。主键值不重复。()惟一键通常限定的是没有被选为主键的关键字,它列或多列值的不重复,惟一性与主键的区别如下:每个表可以有多个惟一键。惟一键的列值可以为空,但只能有一个空。,例3建立一个“学生选课”表SC,它由学号Sno、课程号Cno,修课成绩Grade组成,其中(Sno, Cno)为主码。(CHECK约束实例)CREATE TABLE SC( Sno CHAR(8) , Cno CHAR(3) , Grade int check(grade=0 and grade=0 and grade=100),primary key (Sno, Cno);,3.2.3 修改基本表,ALTER TABLE ADD 完整性约束 DROP MODIFY ;:要修改的基本表 ADD子句:增加新列和新的完整性约束条件 DROP子句:删除指定的完整性约束条件 MODIFY子句:用于修改列名和数据类型注:标准SQL无删除列的语句。,1、添加新列命令:ALTER TABLE ADD 列名 数据类型;例向Student表增加“入学时间”列,其数据类型为日期型。 ALTER TABLE Student ADD Scome DATETIME;不论基本表中原来是否已有数据,新增加的列一律为空值。2、删除指定的完整性约束条件的命令:ALTER TABLE DROP 完整性约束名;例删除学生表中姓名列必须取唯一值的约束。 ALTER TABLE Student DROP UNIQUE(Sname);,注:-SQL中删除约束命令:ALTER TABLE DROP CONSTRAINT 约束名;例7将Student表中的删除主键约束删除。 ALTER TABLE STUDENT DROP CONSTRAINTPK_student_21B6055D 注:在创建时若未给所设置的约束取名,系统将自动取名字。查看约束信息)可以用存储过程:sp_help 数据表名)可以在sysobjects中查到。,如:IF EXISTS(SELECT * FROM sysobjectsWHERE NAME= PK_student_21B6055D ),、修改列命令:ALTER TABLE MODIFY 列名 数据类型;例将年龄的数据类型改为占2字节整数。ALTER TABLE Student MODIFY Sage SMALLINT;注:修改原有的列定义有可能会破坏已有数据。T-SQL:ALTER TABLE Student alter column Sage SMALLINT;、-SQL中删除列命令: ALTER TABLE DROP COLUMN 列名;例将Student表中新增加的“入学时间”列删除。ALTER TABLE Student DROP COLUMN Scome;注:在删除列时,必须先删除该列的索引和约束后,才能删除该列。,back,3.2.4 数据表的删除,DROP TABLE ;基本表删除 数据、表上的索引都删除 表上的视图往往仍然保留,但无法引用。 删除基本表时,系统会从数据字典中删去有关该基本表及其索引的描述 。例10 删除Student表 DROP TABLEStudent ;,须使用的基本操纵、查询语句:1、查看表数据:(1)使用企业管理器(2)SQL语句格式简单格式: Select */属性列组 from 数据表名2、向数据表中插入数据()使用企业管理插入数据( 2 )SQL语句格式INSERT INTO ( , , ) VALUES ( , );,例1、向学生基本情况表(student)中插入一条记录(学号:95020;姓名:陈林;性别:女;所在系:MA;年龄:19岁)。INSERT INTO student VALUES(95020,陈林,女, 19 ,MA);,3、删除数据(1)使用企业管理器:(2)SQL删除语句;DELETE FROM WHERE ;例1、删除学号为95010的学生记录。 DELETE FROM student WHERE sno = 95010;,
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号