第二讲 SQL-数据定义语句

更新时间:2023-08-30 00:27:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

数据库基础与应用第二讲 数据定义语句及完整性 约束

上海第二工业大学 计算机与信息学院An Introduction to Database System

2.1 SQL概述SQL的特点1. 2. 3. 4. 5. 综合统一 高度非过程化 面向集合的操作方式 以同一种语法结构提供两种使用方法 语言简洁,易学易用

An Introduction to Database System

5. 语言简捷,易学易用表 3.1 SQL 语言的动词 SQL 功 能 数 据 定 义 数 据 查 询 数 据 操 纵 数 据 控 制 动 词 CREATE, DROP, ALTER SELECT INSERT, UPDATE DELETE GRANT, REVOKE

An Introduction to Database System

SQL 的各种版本

SQL标准的发展:从SQL/86-SQL/89-SQL/92SQL99-SQL2003(P79) 各种DBMS的采用的SQL和标准SQL有所不同如:

SQL Server/Sybase采用的SQL为Transact-SQL Oracle采用的SQL为PL/SQL(Procedural Language/Structured Query Language )基本语句中子句的不同 功能有扩展An Introduction to Database System

不同之处包括:

2.2 数 据 定 义

SQL Server中建立数据库 CREATE DATABASE dbs ON ( NAME = dbs_dat, FILENAME = 'H:\教学\2012-II\数据库系 统概论\dbs.mdf') SQL Server删除数据库 drop database dbsAn Introduction to Database System

2.2 数 据 定 义表 3.2 SQL 的数据定义语句 操 作对 象 表 视 图 索 引 操 作 方 式 创 建 CREATE TABLE CREATE VIEW CREATE INDEX 删 除 DROP TABLE DROP VIEW DROP INDEX 修 改 ALTER TABLE

An Introduction to Database System

2.2.1 定义语句格式CREATE TABLE <表名>(<列名> <数据类型>[ <列级完整性约束条件> ] [ , < 列 名 > < 数 据 类 型 >[ < 列 级 完 整 性 约 束 条 件 >] ] … [,<表级完整性约束条件> ] );

<表名>:所要定义的基本表的名字 <列名>:组成该表的各个属性(列) <列级完整性约束条件>:涉及相应属性列的完整性 约束条件 <表级完整性约束条件>:涉及一个或多个属性列的 完整性约束条件An Introduction to Database System

例题[ 例 1] 建立一个“学生”表 Student ,它由学号 Sno 、姓名 Sname 、性别 Ssex 、年龄 Sage 、所 在系 Sdept 五个属性组成。其中学号不能为空, 值是唯一的,并且姓名取值也唯一。CREATE TABLE Student (Sno CHAR(6) PRIMARY KEY, Sname CHAR(20) UNIQUE, Ssex CHAR(1), Sage INT, Sdept CHAR(15))An Introduction to Database System

定义基本表(续)

常用完整性约束

主码约束: PRIMARY KEY 唯一性约束:UNIQUE 非空值约束:NOT NULL 参照完整性约束

PRIMARY KEY与 UNIQUE的区别?An Introduction to Database System

create table course ( cno char(6) primary key, cname varchar(20), cpno char(6), ccredit int )An Introduction to Database System

例题 (续)[例2] 建立一个“学生选课”表SC,它由 学号Sno、课程号Cno,成绩Grade组成, 其中(Sno, Cno)为主码。 CREATE TABLE SC(Sno

CHAR(6) , Cno CHAR(6) , Grade int, Primary key (Sno, Cno));An Introduction to Database System

包括外码:格式一create table sc ( sno char(6) REFERENCES student(sno), cno char(6), grade int, primary key (sno,cno), )

An Introduction to Database System

格式二create table sc ( sno char(5) , cno char(6), grade int, primary key (sno,cno), FOREIGN KEY (sno) REFERENCES student(sno) )An Introduction to Database System

三、删除基本表

DROP TABLE <表名>;

数据、表上的索引都删除

[例3] 删除Student表 DROP TABLE Student ;

An Introduction to Database System

二、修改基本表ALTER TABLE <表名>[ ADD <新列名> <数据类型> [ 完整性约束 ] ] [ DROP <完整性约束名> ] [ MODIFY <列名> <数据类型> ];

<表名>: 要修改的基本表 ADD子句: 增加新列和新的完整性约束条件 DROP子句: 删除指定的完整性约束条件 MODIFY子句:用于修改列名和数据类型An Introduction to Database System

例题[例4] 向Student表增加“入学时间”列,其数 据类型为日期型。ALTER TABLE Student ADD Scome DATE

SQL Server:ALTER TABLE Student ADD Scome DATETIME

若基本表中原来是否已有数据,新增加的列一律为空值。An Introduction to Database System

语句格式(续) 删除属性列

间接删除

把表中要保留的列及其内容复制到一个新表中 删除原表 再将新表重命名为原表名

直接删除属性列:

[例5]:标准:ALTER TABLE Student Drop Scome SQL Server : ALTER TABLE Student Drop Column

ScomeAn Introduction to Database System

[例6] 将年龄的数据类型改为半字长整数。

标准SQL:SQL Server: TABLE Student ALTER COLUMN Sage SMALLINT

ALTER TABLE Student MODIFY Sage SMALLINT;

ALTER

注:修改原有的列定义有可能会破坏已有数据

An Introduction to Database System

[例7] 删除学生姓名必须取唯一值的约束。

标准:ALTER TABLE Student DROP UNIQUE(Sname);SQL Server: ALTER TABLE Student DROP UQ__Student__77BFCB91(其中UQ__Student__77BFCB91 为约束名,由系统生成,在企业管理器中可查,为避免系统生成约束名,用户可指定名称, 例 : CREATE TABLE student (id CHAR(8) PRIMARY KEY,name VARCHAR(16) CONSTRAINT nameunique UNIQUE

An Introduction to Database System

本文来源:https://www.bwwdw.com/article/ap2i.html

Top