第3章关系数据库标准语言SQL(1)
时间:2025-07-08
时间:2025-07-08
数据库SQL语言
数据库原理及应用Principle and Application of Database
第四章 关系数据库标准语言SQL
数据库原理及应用
数据库SQL语言
学习目标了解SQL语言的特点 掌握SQL的数据定义
掌握SQL的单表查询
数据库原理及应用
数据库SQL语言
4.1
SQL概述
SQL的特点 综合统一:SQL语言集数据定义语言DDL、数据操纵语言DML 、数据控制语言DCL的功能于一体。 高度非过程化:非关系数据模型的数据操纵语言是面向过程的语 言,操作必须指明存取路径;而用SQL语言进行数据操作,只要 提出“做什么”,无须指明“怎么做”,因此无需了解存取路径 。 面向集合的操作方式:非关系数据模型采用的是面向记录的操作 方式,操作对象是一条记录;而SQL语言采用的集合操作方式, 不仅操作对象、查询结果可以是元组的集合,而且一次插入、删 除、更新操作的对象也可以是元组的集合。 以同一种语法结构提供两种使用方法:SQL语言既是自含式语言 ,能独立地用于联机交互;又是嵌入式语言,能嵌入到高级语言 中进行混合编程。数据库原理及应用3
数据库SQL语言
语言简洁,易学易用:完成核心功能只用9个动词:表 3.1 SQL 语言的动词 SQL 功 能 数 据 定 义 数 据 查 询 数 据 操 纵 数 据 控 制 动 词 CREATE, DROP, ALTER SELECT INSERT,UPDATE DELETE GRANT,REVOKE
数据库原理及应用
数据库SQL语言
4.2定义、修改与删除基本表 定义基本表 CREATE TABLE <表名>
数 据 定 义
(<列名> <数据类型>[ <列级完整性约束条件> ] [,<列名> <数据类型>[ <列级完整性约束条件>] ] … [,<表级完整性约束条件> ] ); 其中:表名为所要定义的基本表的名字,列名为组成该表的 各个属性(列),列级完整性约束条件为涉及相应属性列的完整性 约束条件,表级完整性约束条件为涉及一个或多个属性列的完整 性约束条件。常用的完整性约束有:主码约束PRIMARY KEY 、唯一性约束UNIQUE、非空值约束NOT NULL、参照完整性约 束FOREIGN KEY REFERENCES。数据库原理及应用5
数据库SQL语言
[例1]建立一个“学生”表Student,它由学号Sno、姓名 Sname、性别Ssex、年龄Sage、系别Sdept五个属性组成。 其中学号不能为空,值是唯一的,并且姓名取值也唯一。CREATE TABLE Student (Sno CHAR(5) NOT NULL UNIQUE,
Sname CHAR(20) UNIQUE, Ssex CHAR(1) ,Sage INT,Sdept CHAR(15)); Sno Sname Ssex Sage Sdept
字符型, 长度为5, 不能为空
字符型, 长度为 20
字符型 长度为 1
整数
字符型 长度为 15
数据库原理及应用
数据库SQL语言
修改基本表
ALTER TABLE <表名> [ ADD <新列名> <数据类型> [ 完整性约束 ] ] [ DROP <完整性约束名> ] [ DROP column <列名> ] [ MODIFY <列名> <数据类型> ]; 其中:表名为要修改的基本表,ADD子句为增加新列和新的完 整性约束条件,DROP子句为删除指定
的完整性约束条件, MODIFY子句为用于修改列名和数据类型。[例2]向Student表增加“入学时间”列,其数据类型为日期型。 ALTER TABLE Student ADD Scome DATE;
不论基本表中原来是否已有数据,新增加的列一律为空值。数据库原理及应用7
数据库SQL语言
[例3]将年龄的数据类型改为半字长整数。 ALTER TABLE Student MODIFY Sage SMALLINT; 修改原有的列定义有可能会破坏已有数据。 [例4]删除学生姓名必须取唯一值的约束。
ALTER TABLE Student DROP UNIQUE(Sname);SQL没有提供删除属性列的语句,用户只能间接实现这一功能 :先把表中要保留的列及其内容复制到一个新表中,然后删除 原表,再将新表重命名为原表名。但有的DBMS提供直接删除 属性列的语句,如:ALTER TABLE Student Drop Scome;
数据库原理及应用
数据库SQL语言
删除基本表 DROP TABLE <表名>; 基本表定义一旦删除,表中的数据、表上建立的索引和视图都 将自动删除。但Oracle中删除基本表后建立在此表上的视图仍保 留在数据字典中,但用户引用时就出错。 [例5]删除Student表。 DROP TABLE Student ;
建立与删除索引建立索引是加快查询速度的有效手段,建立与删除索引由DBA 或表的属主负责完成,但有些DBMS自动建立PRIMARY或KEY UNIQUE列上的索引。数据库原理及应用9
数据库SQL语言
建立索引 CREATE [UNIQUE] [CLUSTER] INDEX <索引名> ON <表名>(<列名>[<次序>][,<列名>[<次序>] ]…); 用<表名>指定要建索引的基本表。 索引可以建立在该表的一列或多列上,各列名之间用逗号分隔 用<次序>指定索引值的排列次序,升序ASC,降序DESC。缺省ASC。 UNIQUE表明此索引的每一个索引值只对应唯一的数据记录。 CLUSTER表示要建立的索引是聚簇索引。 [ 例 6] 为 学 生 - 课 程 数 据 库 中 Student,Course,SC 三 个 表 建 立 索 引 。 其 中 Student表按学号升序建唯一索引,Course表按课程号升序建唯一索引, SC表按学号升序和课程号降序建唯一索引。 CREATE UNIQUE INDEX Stusno ON Student(Sno); CREATE UNIQUE INDEX Coucno ON Course(Cno); CREATE UNIQUE INDEX SCno ON SC(Sno ASC,Cno DESC);数据库原理及应用10
数据库SQL语言
唯一索引:对于已含重复值的属性列不能建UNIQUE索引,对 某个列建立UNIQUE索引后,插入新记录时DBMS会自动 …… 此处隐藏:2144字,全部文档内容请下载后查看。喜欢就下载吧 ……