4.2学习总结

数据库原理第三章 SQL语言基础及数据定义功能

3.1基本概念

SQL语言是操作关系数据库的标准语言

3.1.1SQL语言的发展

1986年10月由美国ANSI 公布最早的SQL标准。

1989年4月,ISO提出了具备完整性特征的SQL,称为SQL-89 。

1992年11月,ISO又公布了新的SQL标准,称为SQL-92(以上均为关系形式)。

1999年颁布SQL-99,是SQL92的扩展。

3.1.2 SQL语言的特点

SQL语言是一个综合的、功能强大的且比较简洁易学的语言。

特点:

1.一体化

2.高度自动化

3.简洁

4.能以多种方式使用

3.1.3SQL语言功能概述

功能:

1.数据查询 :

SELECT

2.数据操纵:

INSERT、UPDATE、DELETE

3.数据定义:

CREATE、DROP、ALTER

4.数据控制:

GRANT、REVOKE

3.2SQL Server提供的主要数据类型

数值型

字符串型

日期时间型

3.2.1数字类型

精确数字类型:

整数 :

Bigint: 8字节

Int:4字节

Smallint:2字节

Tinyint:1字节

Bit:1位,存储1或0

小数 Numeric(p,q)或Decimal(p,q), 其中:p为数字位长度,q:小数位长度。

近似数据类型:

Float:8字节

Real:4字节

3.2.2字符串类型:

非Unicode字符串类型:

Char(n):定长存储,n<=8000

Varchar(n): 不定长存储(按实际),长度不超过n , n<=8000   (存储n+2个字节)

Text:存储大于8000字节的文本

Unicode字符串类型:

nchar(n):定长存储,n<=4000     (存储2n个字节)

nvarchar(n): 不定长存储,长度最大不超过n , n<=4000  (存储2n+2个字节)

ntext:存储大于8000字节的文本 特点:每个字符占两个字节 (存储所输入字符串长度的的两倍个字节)

二进制字符串类型:

Binary(n):固定长度,n <= 8000。

Varbinary(n):可变长度,n <=8000 。 注:n为二进制数据的字节数  (存储所输入字符串长度的+2个字节)

image:大容量、可变长二进制字符数据,可用于存储文件。

3.2.3日期和时间类型

Datetime:8字节,年月日时分秒毫秒 (例:‘2001/08/03 10:30:00.000’ )

SmallDateTime:4字节,年月日时分 (例: ‘2001/08/03 10:30:00’ )

3.3数据定义功能

3.3.1基本表的定义和删除

定义基本表 使用SQL语言中的CREATE TABLE语句实现,其一般格式为:

CREATE TABLE 表名

( 列1名 数据类型 列级完整性约束定义,

列2名 数据类型 列级完整性约束定义,

… ,

表级完整性约束定义 )

 

列级完整性约束定义:

NOT NULL:限制列取值非空。(只能在列级完整性约束定义处定义)

DEFAULT:给定列的默认值。(只能在列级完整性约束定义处定义)

UNIQUE:限制列取值不重。

CHECK:限制列的取值范围。

PRIMARY KEY:指定本列为主码。

FOREIGN KEY:定义本列为引用其他表的外码。使用形式为: FOREIGN KEY(外码列名)REFERENCES 外表名(外表列名)

创建SC表

CREATE TABLE SC

( Sno char(7) NOT NULL,

Cno char(10) NOT NULL,

Grade tinyint, XKLB char(4) ,

PRIMARY KEY ( Sno, Cno ),

FOREIGN KEY (Sno) REFERENCES Student (Sno),

FOREIGN KEY (Cno) REFERENCES Course (Cno)

)

 

删除表

DROP TABLE 表名

 

3.3.2 修改表结构

在定义完表之后,如果需求有变化,比如添加列、删除列或修改列定义,可以使用ALTER TABLE语句实现。

ALTER TABLE语句可以对表添加列、删除列、修改列的定义、定义主码、外码,也可以添加和删除约束。

修改表结构语法

ALTER TABLE 表名 ALTER COLUMN 列名 新数据类型

ALTER TABLE 表名 ADD COLUMN 列名 数据类型 

ALTER TABLE 表名  DROP COLUMN 列名 

ALTER TABLE 表名  ADD PRIMARY KEY(列名,… ) 

ALTER TABLE 表名  ADD FOREIGN KEY(列名) REFERNECES 表名(列名)

3.4数据完整性

为了防止数据库中存在不符合语义的数据

3.4.1完整性约束条件的作用对象

完整性检查是围绕完整性约束条件进行的,因此,完整性约束条件是完整性控制机制的核心。

完整性约束条件的作用对象可以是表、元组和列。即为: 列级约束 元组约束 关系约束

列级约束:

列级约束主要是对列的类型、取值范围、精度等的约束,具体包括: 对数据类型的约束: 包括数据类型、长度、精度等。 对数据格式的约束: 如:规定学号的前两位表示学生的入学年份,第三位表示系的编号,第四位表示专业编号,第五位代表班的编号等等。 对取值范围的约束: 如:学生的成绩取值范围为0~100。 对空值的约束。

元组约束:

元组的约束是元组中各个字段之间的联系的约束, 如: 开始日期小于结束日期, 职工的最低工资不能低于规定的最低保障金。

关系约束:指若干元组之间、关系之间的联系的约束。 比如: 学号的取值不能重复也不能取空值, 学生修课表中的学号的取值受学生表中的学号取值的约束

3.4.2实现数据完整性

声明完整性 :在表定义时声明 使用约束、缺省值(DEFAULT)等 由SQL Server自动加以保证

过程完整性: 在客户端或服务器端用编程语言或工具实现 在Server端用触发器(trigger)来实现

实现约束:

1. PRIMARY KEY 约束 2. UNIQUE 约束 3. FOREIGN KEY 约束 4. DEFAULT 约束 5. CHECK 约束

PRIMARY KEY 约束:

保证实体完整性 每个表有且只有一个PRIMARY KEY 约束

格式: ALTER TABLE 表名 ADD [ CONSTAINT 约束名 ] PRIMARY KEY ( 列名)

UNIQUE 约束:

确保在非主键列中不输入重复值。 应用在客观具有唯一性质的列上,如身份证号、社会保险号等。 格式: ALTER TABLE 表名 ADD [ CONSTRAINT 约束名 ] UNIQUE(列名)

FOREIGN KEY约束:

用于建立和加强两个表数据之间的连接的一列或多列 格式: ALTER TABLE 表名 ADD [ CONSTRAINT 约束名 ] FOREIGN KEY (列名) REFERENCES 引用表名 (列名)

CHECK约束:

通过限制输入到列中的值来强制域的完整性。 可定义同表多列之间的约束关系 格式: ALTER TABLE 表名 ADD [ CONSTRAINT 约束名 ] CHECK (逻辑表达式)

 

数据库的创建:

语法结构: Create database 数据库名称 on primary

( name=数据文件逻辑名,

filename=数据文件物理名,

size=初始大小,

maxsize=最大,

filegrowth=增长率

)

log on(日志文件的性质…..);

删除数据库:

语法格式: Drop database 数据库名称; 例如: Drop database mydb;

posted @ 2023-04-03 00:50  代不动码  阅读(26)  评论(0)    收藏  举报