数据库的基本操作
使用企业管理器创建表
掌握使用企业管理器创建数据库和表 以后掌握用命令创建表
3.3 具体例子
教学所用数据库:学生选课数据库。 我们给这个数据库取一个名字: teaching。这个数据库中有三张表,学 生情况表,表名为student;课程表, 表名为course;学生选课表,表名为 chooseCourse。三个表的表结构如下:
第3章 数据库基本操作
3.1 关系型数据库
关系型数据库可以想象成一个仓库,里 面放了很多张二维表格。表格又叫关系 (Relation) 掌握用企业管理器创建数据库。 以后掌握用命令创建数据库。 Create database student SQL 语句,SQL编程
表格介绍
二维表格,又称为关系。 用学生基本情况表为例,分析,制表格。
学分有1.5的情况,所以 数据类型选择real 。
chooseCourse:在这个表中,学号是外 键,课程号也是外键
列名 学号 课程号 成绩 备注 数据类型 char char tinyint varchar 长度 是否允许 空值 8 6 1 50 × × √ √ 说明
}主键
成绩设置为整数,如果成绩 计算出来有小数,则进行四 舍五入处理。 学生选修一门课程后,有的 不需要考试,有的没有成绩, 具体有以下几种情况:缓考, 免考,免修,取消资格,缺 考,退学,未交卷,作弊等。
3.7.2
定义表结构
表结构:定义表由几个列组成,每个列的列名是 什么、该列中存放什么样的数据、该列的长度是 多少、列中存放的数据有什么样的限制、表中各 列之间有什么样的约束等。 使用格式: CREATE TABLE <表名>(
<列名> <数据类型> <数据长度> 约束] [,…n] [, 表级完整性约束[,…n] ] )
NUMERIC:与DECIMAL完全相同。
3、字符数据
字符数据用来存放各种汉字、字母、数字符号 和特殊符号。有CHAR,VARCHAR,NCHAR, NVARCHAR四种。Character,特征,字符 VARCHAR:Variable Character 可变长度字符 Char:使用形式为char(n),每个字符占一个 字节,n为字符所占的长度,为1至8000。固定 长度。 Varchar:使用形式为Varchar(n),可变长度。 大小为1至8000 。
表结构定义
关系模式:对关系的结构描述称为关系 模式。 关系模式的形式化表示为: R(U,D,F),其中U为字段的集合,D 为字段取值的数据类型,F为属性间的 数据依赖关系。
关系模式举例
学生信息表((学号,姓名,性别,出生 日期,联系方式,家庭住址,邮政编码, QQ号码,身高), (char,varchar,char,datetime,varchar ,varchar,char,varchar,real),(学号-> 姓名,学号->性别,…))
市场上所有RDBMS都支持SQL标准,但又根据需要 进行了扩充。RDBMS的含义:Relation DataBase Management System
MicroSoft公司对标准SQL也进行了扩展,推出了 自己的Transact_SQL,简称T_SQL。
SQL语言分为三种子语言,分别是 : 数据定义语言(DDL:Data Definition Language) 用于定义数据库、表、视图等。主要有CREATE、 ALTER、DROP语句。 数据操纵语言(DML:Data Manipulation Language) 用于查询、插入、删除、修改数据。主要有:SELECT、 INSERT、DELETE、UPDATE 语句 。记忆方法:查插删 改 数据控制语言(DCL:Data Control language) 用于 管理数据库用户对数据库中表、视图等的使用权限。 主要有GRANT、REVOKE语句 。
讨论:
造表的时候,每个列需要确认哪些信息?
3.2
SQL Server的数据类型
1、整数数据:用来存储十进制整数,有 INT,SMALLINT,TINYINT,BIGINT。 INT:每个INT类型的数据占4个字节,取值范围为-231~ 231-1(-2147483648 ~ 2147483647)的所有正负整 数。 SMALLINT:占2个字节,取值范围-32768 ~32767. TINYINT:占1个字节,取值范围0 ~255之间的所有正整 数。 BIGINT:占8个字节。取值范围:9223372036854775807
6、图像数据 图像数据,image,它用于存储图片、照片 等。 7、文本数据 文本数据,text,用于存储大量文本数据。 8、货币型数据 货币型数据用于存储货币值,使用时应在 数据前加上货币符号。
money:具有4位小数,占8个字节。 smallmoney:具有4位小数,值范围比 money小,占4个字节。
SQL——Standard Query Language:标准的 查询语言,也可以翻译成Structured Query Language:结构化的查询语言。
SQL不仅提供了对数据查询的语言,而且还提 供了数据定义、数据操作、数据控制等语言
SQL是最通用的关系数据库操作语言。在1986年 被ANSI确认为是关系数据库语言,并发布了一种 SQL86标准,之后又推出了SQL89、SQL92标准, 现正制定SQL 3标准。
3.5 备份和还原数据库
把数据库从一台计算机转移到另一台计 算机就要使用数据库的备份和还原 掌握使用企业管理器备份和还原数据库
掌握向表中插入数据,删除数据,修改 数据的方法 安排学生反复练习
3.6 学习使用SQL语句
现在,所有关系型数据库管理系统(RDBMS)提 供给用户访问数据库的语言是SQL
建立关系图
关系图就是表之间的制约关系 掌握使用企业管理器创建关系图
自定义完整性
用户自定义完整性规则是表格设计者为了保 证表中某些行、列的数据满足具体应用要求 而自定义的一些规则。 如果列的数据的取值范围有一定限制,例如 开课学期,在中国对于一般本科来说,应该 是1至8,这时候用户就可以对列进行限制, 这种限制就是用户自定义完整性。有了限制 之后,后面录入数据如果超出范围,数据库 系统拒绝接收错误数据并报错。用户自定义 完整性约束的常见例子是定义表结构时,列 不允许空。
(4) [列级完整性约束]:定义该列上数据的约束条 件,是否为主键,是否允许空,是否有自定义约 束条件(例如本科的开课学期这一列的约束为, 大于等于1,小于等于8)。 (5) [表级完整性约束]:定义表之间的约束关系, 即参照完整性约束。
(6) 约束有: NULL/NOT NULL(空值约束/非空值约束)
[列级完整性
语句说明:
(1)< 表名 > 用户给定的标识符。即所要定义的表名。 表名最好取有意义的名字,如Students,做到见 名知意;同一个数据库中,表名不允许同名。 (2)< 列名 > 用户给定的列名,最好取有意义的列名, 如Sno,Cno,做到见名知意。 (3)< 数据类型 > :指定该列存放数据的数据类型。 各RDBMS所提供的数据类型略有不同
几个概念
表的行称为记录(Record) 表的列称为属性,或数据项(Item),或字 段(Column)。不同的字段的数据类型可能不 同。 关键字(Key):若表中记录的某一个字段或 字段组合能唯一地标识记录,则称该字段或 字段组合为候选关键字(Candidate Key)。 造表时选定的关键字称为主关键字(Primary Key),简称关键字,也称为主键。
3.4 理论知识点:数据完整性
同学们已经掌握了创建数据库,创建表, 下面我们要学习隐含在其中的理论知识。 现实世界的事物,例如学生、课程,我 们叫实体,对应数据库中的一张表。实 体的属性对应的就是表的列,其中有的 列非常关键,例如学生表中的学号,你 们的学号可不可以重复?可不可以为空
学号就是前面讲过的主键,能够唯一地 标识每一个学生,不允许重复,不允许 为空,这个理论取个名字,就叫实体完 整性。 实体完整性的内容,一张表必须有一个 主键,主键不能重复,不允许为空。
Char和Varchar举例。如果定义有两个变量 str1和str2,str1定义为char(8),str2定义 为varchar(8)。 str1=“abc”,len(str1)=8 str2=“abc”,len(str2)=3 字符串string
4、位型 位型(Bit)只能存储0或1。例如男性可以 定义为1,女性定义为0。 若表中某列为bit型数据,那么该列不允许 为空值。
5、日期/时间数据 datetime:存储日期和时间的结合体,取值从 1753年1月1日到9999年12月31日23时59分59秒。 占8个字节,固定的,造表时自动指定长度, 不需要输入。 smalldatetime:日期时间范围小于datetime,范 围为1900年1月1日至2079年6月6日。占4个字 节,固定的,造表时自动指定长度,不需要输 入。
DEFAULT (默认值约束)
UNIQUE(惟一值约束)
CHECK(检查约束)
PRIMARY KEY(主键约束)
FOREIGN KEY(外键约束)
语句举例 使用数据库之前,一定要先打开数据库。打开数 据库的格式为:use 数据库名。例如打开 student数据库,命令为:use student
列级约束,自定义约束 自定义完整性 student