第8讲 数据表和约束的创建(实训)
实训数据表的创建与设置
实训三数据表的创建与设置【实训目的】能够使用SQL Server 2000企业管理器,按要求创建和修改用户数据表,建立索引,并能够实现数据完整性的约束,完成数据表数据的输入,并将数据导出到excel表格中。
【实训任务】(1)在已经创建的名为“StudentScore"学生成绩管理数据库中创建下列数据表:表3-1班级信息表(bClass )的逻借结构字段字段名类型长度中文含义备注1Class」d Varchar8 班级代号主键、2Class_Namc Varchar20 班级名称非聚集唯一索引3Class_Num Int班级人数4Major_Id Char 2 专业代号外键5Length Char 1 学制6Departjd Char 2 所属系部表3・2专业信息表(bMajor)的逻辑结构字段字段名类型长度中文含义备注1Majorjd Char 2 专业代号主键、索引2Major_Name Varchar40 专业名称3Depart」d Char 2 系部代号4Depart Name Varchar40 系部名称表3-3学生信息表(bSmdcm)的逻辑结构字段字段名类型长度中文含义备注1Studjd Varchar10 学生学号主键、索引2Stud_Name Varchar8 学生姓名3Stud_Sex Char 2 学生性别男/女4Birth Datetime出生日期5Member Char 2 是否团员是/否6Stud_Place Varchar20 学生籍贯7Class Id Varchar8 所在班级外键表3-4课程信息表(bCourse)的逻辑结构字段字段名类型长度中文含义备注1Course_Id Varchar8课程代号主键、索引2Course^Namc Varchar30课程划称3Course_Type Varchar1课程类型2.考试;1 .考査;0-选修4Hours Int课时数检查约束20表3-5学生成绩表(bScore)的逻辑结构字段字段名类型长度小数位中文含义备注1Stud_Cod Int成绩编码标识列2Stud_Id Varchar10学生学号外键3Coursejd Varchar8课程代号外键4Term Tinyint学期检查约朿205Score Numeric1成绩检查约朿206Credit Numeric1学分检查约朿207Makeup Numeric1补考成绩检查约束20(2)拓展实训练习【实训要求】完成时间:4课时上交形式:数据库文件(电子格式),报告内容(结果可打印张贴或书写)【实训步骤】3. 1创建数据表操作要求:1.创建数据表操作步骤:(1)在企业管理器中,选择并展开要创建新表的数据库Student Score.(2)在展开的列表中右击"表”节点,从弹岀的快捷菜单中选择【新建表】命令,打开如图3-1所示的“新建表”对话框。
(4周)实验3约束的创建
CONSTRAINT constraint_name
PRIMARY KEY [CLUSTEREN\NONCLUSTEREN]
{(column[,……])}
使用T-Sql语句创建
ALTER TABLE table_name
ADD
CONSTRAINT constraint_name
UNIQUE [CLUSTEREN\NONCLUSTEREN]
{(column[,……])}
T-sql语句创建
ALTER TABLE table_name
ADD
CONSTRAINT constraint_name
DEFAULTconstant_expression[FOR column_name]
4.使用规则
规则与check约束相同,用来限制输入值的取值范围
check约束
使用规则规则与check约束相同用来限制输入值的取值范围check约束创建表时随表创建一列可以应用多个check约束规则创建表后单独创建规则一列只能应用一个规则一个规则只需定义一次就可以被多次应用规则中包含创建绑定解绑删除1创建规则createrulerulenameasconditionexpressionrulename
课时
第4周第1-2课时2007年9月日
约束的创建
一、实验目的:
1、掌握约束的使用方法。
2、掌握默认约束的使用方法。
3、掌握规则的使用方法。
二、实验环境:
Windows 2000+SQLserver 2000
三、实验内容与步骤:
创建主键约TABLE table_name
创建表时随表创建
一列可以应用多个check约束
规则
实验创建数据库及关系表数据完整性约束
实验创建数据库及关系表数据完整性约束CKBOOD was revised in the early morning of December 17, 2020.实验一创建数据库及关系表、数据完整性约束网工1203 熊健羲 38一、实验目的1. 掌握SQL Server数据库管理系统的使用,能够在该环境中进行日常数据库操作;2. 掌握在SQL Server中使用图形化工具创建数据库的方法;3.掌握建立关系表的语句,掌握定义主码约束及外码约束的语句;4.掌握修改表结构的语句。
5.掌握数据完整性约束的功能。
二、实验内容和步骤1.创建符合如下条件的数据库:数据库的名字为:Students数据文件的逻辑文件名为:Students_dat,存放在用户盘某目录下;文件的初始大小为:5MB;增长方式为自动增长,每次增加1MB。
实验结果:2.在已建立的Students数据库中,确定出各表中的数据类型,写出创建满足下述条件的四张表的SQL语句,并查看执行结果。
实验结果:3.写出实现如下操作的SQL语句,并查看执行结果:(1)在选课表中添加一个新的修课类别列:列名为:选课类别,类型为char(4)。
(2)将课程表中的学分列的类型改为:tinyint(微整型,取值范围在0~255)。
(3)删除学生表的专业列。
(4)为教师表添加主码约束,其主码列为:教师号。
实验结果:4.在Students数据库中,编写建立满足完整性要求的定义表的SQL语句,执行并观察执行结果。
(1)图书表,结构如下:书号:统一字符编码定长类型,长度为6,主码,书名:统一字符编码可变长类型,长度为30,非空,第一作者:普通编码定长字符类型,长度为10,非空,出版日期:小日期时间型,小于等于当前系统日期,(用getdate()实现)印刷数量:小整型,取值范围:1000~5000,默认为4000,价格:定点小数,小数部分一位,整数部分3位。
实验结果:(2)书店表,结构如下:书店编号:统一字符编码定长类型,长度为6,主码,店名:统一字符编码可变长类型,长度为30,非空,电话:普通编码定长字符类型,12位长,取值形式:010-8位数字地址:普通编码可变长字符类型,40位长。
MySQL数据库应用技术-数据约束实训
《MySQL数据库基础与应用》实训项目报告
适用于:数据2001、数据2002、数据2003
学生学号:姓名:班级:
【实训3】:数据约束实训
一、角色:数据库管理员
二、任务说明:在MySQL中,完成下列任务,将程序运行截图及程序代码粘贴到对应任务题目下。
保存该文件,并上交。
三、实施:
任务1:选择mydb数据库
任务2:为电子杂志订阅表subscribe的email字段添加非空约束,并输入数据对非空约束进行测试。
(not null)
任务3:为电子杂志订阅表subscribe的id字段添加主键约束,并输入数据对主键约束进行测试。
(primary key)
任务4:为电子杂志订阅表subscribe的code字段添加唯一约束,并输入数据对唯一约束进行测试。
(unique)
任务5:为电子杂志订阅表subscribe的status字段添加默认值为1,并输入数据对默认值约束进行测试。
(default)。
表的创建和表的约束-PPT精选文档
10
约束的禁用、启用和删除-------禁用check约束, nocheck选项,
命令如下: alter table xsxx add 学号 int identity(1001,1)
•
关于indentity 列的说明
indentity列的值是由SQL insert操作而自动产生的。一般情况下, insert语句不能通过为标识列提供值的方法来影响标识的值。
6
关于indentity 列的说明
例:添加列“入学总分” Alter table xsxx add 入学总分 int 例:删除列“专业名” Alter table xsxx drop column 专业名
4
表的修改
例修改: 将字段“学号”的类型由“int”改为“char”型,命令 如下:
alter table xsxx alter column 学号 char(6)
例: insert into xsxx (姓名,出生年月) values(’张三’,‘1970-12-30’ ) 用户希望自行设置indentity列的值则需要:首先使用命令: set identity_insert 表名 on 这意味着可以在insert语句中显式地提供标识值。 insert into xsxx insert into xsxx (学号,姓名,性别,出生年月) values(‘1007’, 'tom', 1 , '1966-12-30‘)
?
3
表的修改
对已经存在的表的列进行添加、删除、修改操作时,都属 表的修改。
表的修改命令:
alter table 表名 [add 列名 数据类型 [NULL | NOT NULL]] [drop column 列名 ] [alter column 列名 数据类型 [NULL | NOT NULL]]]
表的创建和管理(约束)
表的创建和管理创建了数据库,需要创建表存储数据。
本章介绍:●表结构的创建、修改、删除;●表数据的插入、更新、删除;●表数据的约束(主键、唯一、检查、默认、外键)一、表的概念数据表的概念在第1章已经介绍,即:●表由行、列构成,●行代表一条记录,列代表记录的一个属性。
●行列的次序并不影响数据。
SQL SERVER2008允许每个数据库最多20亿张表,每张表最多1024列,每行数据最多8K。
二、数据类型SQL SERVER的数据有数据类型,在创建表结构时需要确定表中每列的数据类型。
SQL SERVER的数据类型有系统数据类型和用户自定义数据类型。
1、系统数据类型(常用)2、用户自定义数据类型SQL Server用户自定义数据类型从系统类型派生,指定一个容易记忆的名称,便于统一使用某种数据类型。
例如:邮政编码都是6个数字字符的号码,数据类型可以用char(6)表示。
为了方便以后统一使用,可以指定一个名字zip代表char(6)这种数据类型。
zip就是用户自定义数据类型。
(1)使用企业管理器管理自定义数据类型●创建:数据库-可编程性-类型-用户自定义类型-右键-新建“用户定义数据类型”-输入名称、选择数据类型等确定后创建。
●删除:数据库-可编程性-类型-用户自定义类型-选中自定义数据类型-右键删除-删除对象窗口-确定例3-1:使用企业管理器,创建一个用户自定义数据类型telphone_code,系统数据类型为varchar(15),允许空。
(2)使用T-SQL语法管理自定义数据类型●创建:CREATE TYPE <类型名> FROM <系统类型> [NULL | NOT NULL]●删除:DROP TYPE <类型名>例3-1:使用T-SQL,创建一个用户自定义数据类型telphone_code,系统数据类型为varchar(15),允许空。
(使用T-SQL)CREATE TYPE telphone_code FROM varchar(15) NULLDROP TYPE telphone_code例3-2、例3-3:T-SQL创建删除自定义数据类型(参见教材、略)三、表结构的创建、修改和删除1、表结构的创建(1)使用企业管理器创建表结构数据库-表右键-“新建表”-表设计器窗口。
数据库表约束的创建与使用之主键约束
数据库表约束的创建与使⽤之主键约束我们直接开门见⼭,⾸先我们先来确定什么是约束:数据表的约束是在表中定义的⽤于维护数据库完整性的⼀些规则。
那么约束的作⽤也就很明显了,我们可以通过表中的列定义约束可以防⽌将错误的数据插⼊表中,也可以保持表之间数据的⼀致性。
接下来我们来了解⼏个概念:实体完整性:规定表的每⼀⾏在表中是惟⼀的实体。
⼜称⾏完整性,要求在表中不能存在完全相同的⾏。
通过PRIMARY KEY(主键)、Unique(唯⼀约束)、Identity(标识字段)实现。
参照完整性:⼜称引⽤完整性。
指表间的规则,作⽤于有关联的两个或两个以上的表,通过使⽤主键和外键(或唯⼀键)之间的关系,使表中的键值在相关表中保持⼀致。
通过 Foregin Key(外键)实现。
⽤户⾃定义完整性:指针对某⼀具体关系数据库的约束条件,它反映某⼀具体应⽤所涉及的数据必须满⾜的语义要求。
通过NOT NULL(⾮空)、default(默认)、check(检查)实现。
我们来看⼀下约束的分类:主键约束:主键约束使⽤primary key表⽰,⽤来保证实体的唯⼀性。
也就是使⽤主键约束可以确保在整个表中存储的数据不存在重复值。
⼀般是将Id列设置为主键。
主键列的值能唯⼀标识表中的每⼀⾏,⼀个表只能有⼀个主键,⽽且主键约束中的列不能为空值。
只有主键列才能被作为其他表的外键所创建。
由此可见主键已经有了唯⼀约束和⾮空约束的作⽤了。
所以图中标识出了要注意主键约束与唯⼀约束、⾮空约束的关系。
主键约束具体使⽤如下图所⽰:注:使⽤图形化界⾯创建约束的⽅法本⽂不做讲解了。
由图中我们可知,创建主键约束有两种途径,⼀种是在创建表时同步创建主键约束,另外⼀种是表创建完成以后我们再创建主键约束。
以学⽣表(Student)为例:创建表时创建主键约束:CREATE TABLE Student(Id INT PRIMARY KEY--PRIMARY KEY就是创建主键约束的关键字)创建表成功后创建主键约束:ALTER TABLE Student ADD CONSTRAINT PK_Student_Id PRIMAERT KEY(Id)需要注意的是表创建完成以后创建约束属于修改表,所以需要以ALTER TABLE 开头表⽰修改表,ADD CONSTRAINT是添加约束的关键字,PK_Student_Id是创建约束的名字,PRIMARY KEY表⽰约束的种类,括号⾥⾯的Id表⽰在Id列上创建约束。
关系数据库与SQL Server 2008第8讲 数据表和约束的创建(实训)
无
tinyint 1
×
1
tinyint 1
×
无
tinyint 1
√
无
约束 主键 只能为1-6
动手操作1:创建kc表和表约束(续)
create database xscj
单列后定义约束
go --表示一个批的结束。go 只能独自占用一行
use xscj
--从默认的master数据库切换到xscj库
create table kc
学时
tinyint not null ,
学分
tinyint
)
ቤተ መጻሕፍቲ ባይዱ
动手操作2:查看表定义和表约束
任务1:用命令查看表定义。
命令格式:[exec] sp_help 表名
任务2:用命令查看表约束。
命令格式:[exec] sp_helpcnostraint 表名
任务3:在对象资源管理器中查看表定义和 表约束。
动手操作3:创建xsqk表和表约束
要求:用命令方式创建xsqk表,在所有列后再定义约束。
表4-2 学生情况表XSQK的结构描述
属性
列名
数据类型 长度 是否允许 默认值 标识列
为空值
序号
int
4
初值、增
量均为1
学号
char
10
×
无
姓名
varchar
10
×
无
性别
bit
1
×
1
出生日期 smalldatetime 4
动手操作1:创建kc表和表约束
要求:用命令方式创建数据KC表,在单列后 直接定义约束。
列名
序号
课程号 课程名 授课教师 开课学期
上机实习设计(数据库及表的创建已授课)
06
数据库性能优化
索引优化
01
总结词
索引是提高数据库查询效率的重 要手段,通过合理地创建和使用 索引,可以显著减少查询时间。
03
避免过度索引
过多的索引会增加数据库的存储 负担和插入、更新、删除操作的
性能损耗。
02
选择合适的索引类型
根据查询需求选择合适的索引类 型,如单列索引、组合索引、唯
一索引等。
在进行数据插入时,验证是必不可少的步骤。验证可以确保数据的完整性和准确性,并 防止无效或错误的数据被添加到数据库中。验证通常包括以下几个方面
1. 数据格式验证
检查数据的格式是否符合表结构中定义的规则,例如日期格式、字符串长度等。
数据插入的验证
2. 数据范围验证
确保数据值在预期的范围内或 满足特定的条件,例如年龄字 段的值应在0-120之间。
```sql
INSERT INTO 表名 (列1, 列2, 列3, ...) VALUES (值1, 值2, 值3, ...);
单条数据的插入
```
在执行插入操作后,需要验证数据是否成功插入,可以通过查询数据库或使用相应的工具进行检查。
批量数据的插入
总结词
批量数据插入是将多条记录一次性添加 到数据库表中,可以提高数据插入的效 率和速度。
04
定期维护索引
定期对索引进行重建和优化,以 保持其性能和效率。
SQL语句优化
总结词
SQL语句的编写和优化是提高数据库性能的关键,通过改进SQL语句 的结构和写法,可以显著提高查询效率。
减少全表扫描
尽量避免使用SELECT * 语句,只选择需要的列,以减少数据读取量。
使用连接代替子查询
数据库表格及约束PPT课件
8
2.3.2 字符串类型
➢字符串是一个字节列。字符串的长度为该序列中的字节数。如果长度为0,则该 字符串的值称为空字符串
➢定长字符串:CHAR(n)或CHARACTER(n) ➢长度属性介于 1 到 254 字节之间 ➢如果没有指定长度,那么就认为是 1 个字节
11
2.3.4 空值
➢ 空值是一个区分所有非空值的特殊值 ➢ 它意味着对应的行中的某一列无任何其他值,所有数据类型都允许存在空值
12
2.3 数据类型
注意: ➢ 数据类型包括 DATE、TIME 和 TIMESTAMP。日期时间值可在某些算术和字符串操作中使用,而
且兼容某些字符串,但它们既不是字符串,也不是数字。 (具体可以参照教材的表2.3) ➢ 日期时间值的字符串表示:尽管 DATE、TIME 和 TIMESTAMP 的值的内部表示对用户是透明的,
➢ INTEGER 或 INT(大型整数):四个字节的整数,精度为 10 位 ➢范围 -2147483648 ~ 2147483647
➢ BIGINT(大整数):八个字节的整数,精度为 19 位。 ➢范围 -9223372036854775808 ~ 9223372036854775807
7
2.3.1 数值类型
➢ 二进制大对象:BLOB(n[K|M|G]),是一个字节序列。它用于保存非传统数据, 如图像等
10
2.3.3 日期时间型
➢日期时间值是日期、时间以及时间戳记(一个格式为yyyyxxddhhmmss的字符串 表示有效日期和时间的14为字串)的表示法。日期时间值可以用于某些算术运算 和字符串运算,并且与某些字符串是相容的,但是它们既不是字符串也不是数字。 ➢日期:是一个由三部分组成的值(年、月和日)。 ➢时间:是一个由三部分组成的值(小时、分钟和秒)。 ➢时间戳记:是一个由七部分组成的值(年、月、日、小时、分钟、秒和微秒)。
创建数据库表与约束
4、货币数据类型
数据类型 money 说明 介于-263~263-1 之间,精确到小数点
后面4位数字,存储大小为8个字节。
smallmoney 介于-214748.3648~+214748.3647
之间,精确到小数点后面4位数字, 存储大小为4个字节。
5、二进制数据类型 二进制字符串由十六进制数表示。
要查看表之间的关系,可以在数据库 中选择“数据库关系图”选项,然后根据 提示信息新建数据库关系图。
还可以用下面的方法建立主-外键关系, 如lessons表和scores表之间: 在新建的关系图中添加lessons表,然 后将scores表的lno列拖动到lessons表的 lno列上松手,在出现的对话框中进行设置。
2.2 建立数据库表
一、创建数据库表 在SQL Server Management Studio 中,展开“studentdb”数据库节点,然后 在“表”上右击选择“新建表”,在出现 的表设计器中可以输入表中各列的信息, 如列名、数据类型、是否允许空,如下图 所示:
图2-1 在SQL Server Management Studio中创建students表
二、SQL Server 中常用的数据类型 1、数字数据类型
数据类型 bigint int Smallint tinyint bit 说明 从-263~263-1 的整型数据,存储大小为8个字 节 从-231~231-1 的整型数据,存储大小为4个字 节 从-215~215-1 的整型数据,存储大小为2个字 节 从0~255 的整型数据,存储大小为1个字节 只能包括0、1或NULL,可以用bit数据类型 代表TRUE或FALSE、YES或NO。
输完各列信息以后,单击保存按钮,输入 表名称:students。在对象资源管理器中展开 “表”节点即可看到students已经存在。
创建表、索引和约束
创建表的SQL语句
```sql
CREATE TABLE students (
创建表的SQL语句
id INT, name VARCHAR(50),
创建表的SQL语句
• age INT
创建表的SQL语句
);
```
VS
创建表的过程与步骤
3. 编写SQL语句
2. 设计表格结构
使用`CREATE TABLE`语句创建表。
与单列和复合索引类似, 唯一索引不允许两行拥
有相同的索引值。
创建索引的SQL语句
单列索引创建示例
CREATE INDEX index_name ON table_name (column_name);
复合索引创建示例
CREATE INDEX index_name ON table_name (column1, column2, ...);
01
1. 确定需要创建约束的列和约束 类型。
02
2. 在创建表或修改表结构的SQL 语句中,使用相应的约束语法。
3. 执行SQL语句,创建或修改表 结构。
03
4. 验证约束是否成功创建或修改 ,可以使用数据库管理工具或查
询语句来验证。
04
04 表、索引和约束的关系与 影响
表、索引和约束的关系
01 表是存储数据的结构,是数据库中存储数据的逻 辑单位。
限制列中的值范围,确保数据 满足特定条件。
主键约束
唯一标识表中的每条记录,确 保每行数据的唯一性。
唯一约束
确保某列或多列的组合值唯一, 但允许NULL值。
非空约束
确保列中的值不为NULL。
创建约束的SQL语句
主键约束
创建数据库表与约束.
内容提要
2.1 表相关的几个基本概念
2.2 建立数据库表
2.3 建立表间关系
2.4 建立检查约束 2.5 导入和导出数据 2.6 删除表
一、数据完整性 数据完整性是要求数据库中的数据具有准 确性。准确性是通过数据库表的设计和约束来实 现的。 SQL Server提供了以下4种类型的约束 (Constraint): 1、实体完整性约束 实体完整性约束要求表中的每一行数据都反 映不同的实体,不能在表中存在完全相同的数据 行。 实现方法:索引、唯一约束、主键约束或标 识列属性。
numeric[(p[,s])] float[(n)]
real
从-3.40E+308~3.40E+308之间的浮点数字数据。 存储大小为4字节。
2、文本数据类型
可以存储由任意字母、符号或数字字符组成 的数据。根据字符长度可以分为固定长度、可变 长度两种,根据字符定义方法又分为非Unicode 数据类型和Unicode数据类型两种。
2.1 表相关的几个基本概念
2、域完整性约束 域完整性约束是给定列的输入有效性。 实现方法:限制数据类型、检查约束、 输入格式、外键约束、默认值、非空约束。 例如:学生的成绩若定义为整数类型 则不能输入带小数的分数;学生选修的课 程必须是课程表中实际存在的课程。
3、引用完整性
在输入或删除数据行时,引用完整性约束来保持表 之间已经定义的关系。 在强制引用完整性时, SQL Server禁止用户进行 下列操作: (1)当主表中没有关联的记录时,将记录添加到相关表 中。 (2)更改主表中的值导致相关表中的记录孤立。
思考: • 在主键列输入的数值,允许为空吗?
• 一个表可以有多个主键吗?
实验报告-数据库和表的基本操作和约束条件
S表.SNO=SPJ.SNO)
运行结果:
⑤.SQL源码:
SELECTJNO
FROMSPJ
WHEREPNO=ANY(
SELECTPNO
FROMSPJ
WHERESNO='S1')
GROUPBYJNO
HAVINGCOUNT(DISTINCTPNO)=(SELECTCOUNT(DISTINCTPNO)FROMSPJWHERESNO='S1')
SQL源码:
SELECTJNO
FROMSPJ
WHERESNO='S1'
运行结果:
④.找出工程项目J2所使用的各种零件的名称及其数量:
SQL源码:
SELECTPNO,QTY
FROMSPJ
WHEREJNO='J2'
运行结果:
⑤.找出上海厂商供应的所有零件号码:
SQL源码:
SELECTPNO
FROMSPJ,S表
GROUPBYJNO
HAVINGAVG(QTY)>(SELECTMAX(QTY)
FROMSPJ
WHEREJNO='J1')
运行结果:
6.针对实验一创建的Student数据库进行下面的数据查询:
(1) 求不选修C语言课程的学生学号:
SQL源码:
SELECTDISTINCTsno
FROMSC,C
o=oAND
《数据库系统概论》实验报告
题目:实验一
数据库和表的基本操作和约束条件
姓名
班级
学号
日期
2010-10-10
1.实验内容和步骤结果
表的操作、约束
创建表表结构如表8-2所示。
▪USE STUDENT1▪GO▪CREATE TABLE SCORE▪(学生号char(7) NOT NULL,▪课程号char(3) NOT NULL,▪成绩tinyint,▪学分tinyint,▪PRIMARY KEY (学生号, 课程号)▪)【例8-12】创建一个学生信息表(XSS),包括姓名、学号、性别字段。
其中输入性别字段值时,只能接受“男”或者“女”,而不能接受其他数据。
▪USE STUDENT1▪GO▪CREATE TABLE XSS▪(学号char(12) PRIMARY KEY,▪姓名char(8) ,▪性别char(2) CONSTRAINT chk_sex CHECK(性别in ('男','女')▪)修改表【例8-13】在学生表中修改“姓名”字段的属性,使该字段的数据类型为varchar(50),允许为空。
▪USE STUDENT1▪AL TER TABLE 学生▪AL TER COLUMN 姓名varchar(50) NULL【例8-14】在学生信息表XSS中添加“年龄”字段,数据类型为整型,可以为空。
▪USE STUDENT1▪GO▪AL TER TABLE XSS▪ADD 年龄int【例8-15】删除学生信息表XSS中的“年龄”字段。
▪USE STUDENT1▪GO▪AL TER TABLE XSS▪DROP COLUMN 年龄列约束和表约束Microsoft SQL Server 2005系统提供了5种约束类型,即PRIMARY KEY(主键)、FOREIGN KEY(外键)、UNIQUE、CHECK、DEFAUL T约束。
1、创建和删除PRIMARY KEY(主键)约束①定义表的同时设置主键约束【例8-16】在“教学库”数据库中创建“学生”表,包括字段有:学生号,姓名,性别、专业;学生号为主键,▪USE 教学库▪GO▪CREATE TABLE 学生▪( 学生号char(5) PRIMARY KEY,▪姓名char(8) NOT NULL,▪性别char(2),▪专业char(8)▪)【例8-17】在“教学库”数据库中创建“课程”表,包括字段:课程号,课程名学分,其中课程号为主键。
实训八数据库表创建
已知某信息管理系统存在class和student两个表, 如图所示。
列名 CNO 数据类型
NUMBER(2)
约束 主键
备注 班号 班名 人数
列名 CNO
SNAME SAGE SEX
数据类型
NUMBER(4) VARCHAR2 (10) NUMBER CHAR(2) NUMBER(2)
约束 主键 唯一
备注 学号 姓名 年龄 性0)
NUM
NUMBER(3)
class
CNO
student
利用SQL语句完成如下: 1.为该信息系统中两个表创建一个自己的表 空间。 2.在该表空间中用SQL语句创建两个表。 3.为student表的SAGE列添加一个检查约束, 保证该列取值在0-100之间。 4.为student表的SEX列添加一个检查约束, 保证该列取值为“M”或“F”,且默认值为 “M”。
参考仿写: Alter table student ADD CONSTRAINT P_FK FOREIGN KEY(CNO) REFERENCES class(CNO) ON DELETE CASCADE;
利用SQL语句完成如下: 5.为student表添加列phone,数据类型为 VARCHAR2(10);添加列birth,数据类型为 DATE。 6.由于存在birth列(出生日期),为student 表删除列SAGE. 7.为student 表添加一个可以延迟的外键约束, 其CNO列参照class表的CNO列。
为“商品销售系统”数据表创建索引和约束
《MySQL数据库应用与管理》第3章数据表的创建和管理
同步实训4:
为“商品销售系统”数据表创建索引和约束
一、实训目的
1.理解索引的概念和优点;
2.掌握索引的创建;
3.掌握默认约束的创建;
4.掌握外键约束的创建。
二、实训内容
1.修改销售员表(seller),在saleNo字段上创建唯一索引、在saleName
字段上创建普通索引;为sex字段设置默认值“男”。
2.修改客户表(customer),在customerNo字段上创建唯一索引、在
CompanyName字段上创建唯一索引。
3.修改商品表(product),在productNo字段上创建唯一索引;为
categoryId字段设置外键约束,参照商品种类表(category)的id字
段(不执行任何操作)。
4.修改订单表(orders),为customerId字段设置外键约束,参照客户表
(customer)的id字段(不执行任何操作);为saleId字段设置外键约
束,参照销售员表(seller)的id字段(不执行任何操作)。
5.修改订单明细表(orderDetail),在orderId和productId字段上创建
唯一索引(复合索引);为productId字段设置外键约束,参照商品表
(product)的id字段(不执行任何操作)。
1。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
约束
主键
0~200
第4章
数据库和表的管理—表和表约束的创建
6
第 8讲
动手操作3:创建xsqk表和表约束(续)
xscj int identity, char (10) not null,
use
create table xsqk
( 序号 学号
姓名
性别 专业名 所在系
varchar (10) not null,
第4章
数据库和表的管理—表和表约束的创建
2
第 8讲
动手操作1:创建kc表和表约束
要求:用命令方式创建数据KC表,在单列后 直接定义约束。
列名 序号
课程号 课程名 授课教师 开课学期 学时 学分 表4-3 课程表KC的结构描述 属性 数据类型 长度 是否允许 默认值 标识列 为空值 初始值、 int 4 增量均为1 char 3 × 无 varchar 20 × 无 varchar 20 √ 无 tinyint 1 1 × tinyint 1 × 无作3:创建xsqk表和表约束
要求:用命令方式创建xsqk表,在所有列后再定义约束。
表4-2 学生情况表XSQK的结构描述 属性 列名 数据类型 长度 是否允许 默认值 标识列 为空值 int 4 序号 初值、增 量均为1 char 10 学号 × 无 varchar 10 姓名 × 无 bit 1 1 性别 × 4 出生日期 smalldatetime × 无 varchar 20 专业名 × 无 varchar 20 所在系 × 无 char 11 √ 联系电话 无 tinyint 1 √ 总学分 无 varchar 50 √ 备注 无
4
第 8讲
动手操作2:查看表定义和表约束
命令格式:[exec] sp_help 表名
任务1:用命令查看表定义。
任务2:用命令查看表约束。
命令格式:[exec] sp_helpcnostraint 表名
任务3:在对象资源管理器中查看表定义和 表约束。
第4章 数据库和表的管理—表和表约束的创建
char tinyint tinyint 3 1 1 × √ √ 无 无 无 外键,参照KC表 0~100
组合为 主键
第4章
数据库和表的管理—表和表约束的创建
9
第 8讲
课余作业
教材 课后练习
课外练习:
预习:
数据表的管理和操作
第4章
数据库和表的管理—表和表约束的创建
10
bit not null default 1, varchar (20) not null, varchar (20) not null,
出生日期 smalldatetime not null,
联系电话
char (11),
7
总学分 tinyint , 备注 varchar (50) 第4章 数据库和表的管理 —表和表约束的创建
动手操作4:创建xs_kc表和表约束
要求:用对象资源管理器创建xs_kc表。
方法:右击“xscj库”中的“表”图标→单击“新建 表”……
列名
学号
课程号 成绩 学分
表4-4 学生与课程表XS_KC的结构 属性 数据类型 长度 是否允许 约束 默认值 为空值 外键,参照 char 10 × 无 XSQK表
第 8讲
第4章 数据库和表的管理
——数据表和约束的创建(实训)
SQL Server 2008
第 8讲
第4讲 数据库和表的管理
——表的创建和管理(实训)
实训项目
动手操作1:用命令方式创建kc表和表约束 动手操作2:查看表定义和表约束
动手操作3:用命令方式创建xsqk表和表约束
动手操作4:用对象资源管理器创建xs_kc表和表约 束
第 8讲
动手操作3:创建xsqk表和表约束(续)
所有列后定义约束 constraint pk_xsqk_xh primary key (学号),
constraint ck_xsqk_zxf check(总学分>=0 and 总 学分<=200) )
第4章
数据库和表的管理—表和表约束的创建
8
第 8讲
约束
主键
只能为1-6
第4章
数据库和表的管理—表和表约束的创建
3
第 8讲
动手操作1:创建kc表和表约束(续)
create database xscj 单列后定义约束 go --表示一个批的结束。go 只能独自占用一行 use xscj --从默认的master数据库切换到xscj库 create table kc ( 序号 int identity, 课程号 char (3) not null primary key , 课程名 varchar (20) not null , 授课教师 varchar (20) , 开课学期 tinyint not null default 1 check ( 开课学期>=0 and 开课学期<=6), 学时 tinyint not null , 学分 tinyint ) 第4章 数据库和表的管理—表和表约束的创建