330 likes | 475 Views
数据库原理 第三章:关系数据库标准语言 SQL. 授课教师:王哲. 复习上节课内容. SQL 基础知识 概述、 SQL 特点、基础概念 SQL Server 2005 基础知识 发展史、版本信息、安装环境、平台 SQL Server 2005 体系结构 逻辑角度、物理角度 界面方式下创建及管理数据库 数据库属性(名称、大小、增长方式等). 本次课学习内容. 命令方式下管理数据库 管理数据表 界面方式创建、修改、删除表 命令方式创建、修改、删除表. 1 、命令方式下管理数据库. 创建数据库: CREATE 修改数据库: ALTER 删除数据库: DROP.
E N D
数据库原理第三章:关系数据库标准语言SQL 授课教师:王哲
复习上节课内容 • SQL基础知识 • 概述、SQL特点、基础概念 • SQL Server 2005基础知识 • 发展史、版本信息、安装环境、平台 • SQL Server 2005体系结构 • 逻辑角度、物理角度 • 界面方式下创建及管理数据库 • 数据库属性(名称、大小、增长方式等)
本次课学习内容 • 命令方式下管理数据库 • 管理数据表 • 界面方式创建、修改、删除表 • 命令方式创建、修改、删除表
1、命令方式下管理数据库 • 创建数据库:CREATE • 修改数据库:ALTER • 删除数据库:DROP
1)命令方式下创建数据库 在使用T-SQL语句创建数据库中,其核心是CREATE DATABASE 语句。该语句基本语法格式是: CREATE DATABASE database_name /*指定数据库名*/ [ON file子句] /*指定数据库文件和文件组属性 [LOG ON file子句] /*指定日志文件属性*/
file子句 • NAME=logical_file_name, • FILENAME=’os_file_name’ • [,SIZE=size] • [,MAXSIZE={max_size|UNLIMITED}] • [,FILEGROWTH=grow_increment]) • [,...n]
例1:要求创建一个学生-课程数据库(名称为student)。例1:要求创建一个学生-课程数据库(名称为student)。 Create database student 例2:要求在本地磁盘D创建一个学生-课程数据库(名称为student1),只有一个数据文件和日志文件,文件名称分别为stu和stu_log,初始大小都为3MB,增长方式分别为10%和1MB,数据文件最大为500MB,日志文件大小不受限制。
CREATE DATABASE student1 ON ( NAME = stu, FILENAME = 'D:\stu.mdf' , SIZE = 3MB , MAXSIZE = 500MB , FILEGROWTH = 10%) LOG ON ( NAME = stu_log, FILENAME = ‘D:\stu_log.ldf’ , SIZE = 1MB , MAXSIZE = unlimited,FILEGROWTH = 1MB )
2)命令方式修改数据库 主要内容: 增加或删除数据文件 改变数据文件的大小和增长方式 增加或删除日志文件 改变日志文件的大小和增长方式 增加或删除文件组
语法格式 Alter database database_name {add file <filespec>[,…n] [to filegroup filegroupname] |add log file <filespec>[,…n] |remove file logical_file_name [with delete] |modify file <filespec> |modify name=new_databasename |add filegroup filegroup_name |remove filegroup filegroup_name |modify filegroup filegroup_name }
3)命令方式删除数据库 语法格式: DROP DATABASE 〈,数据库名组〉 例1:将数据库student删除,可使用下述语句。 DROP DATABASE student GO
练习题 1、创建一个Company数据库,该数据库的主数据文件逻辑名称为Company_data,物理文件为Company.mdf,初始大小为10MB,最大尺寸为无限大,增长速度为10%;数据库的日志文件逻辑名称为Company_log,物理文件名为Company.ldf,初始大小为1MB,最大尺寸为50MB,增长速度为1MB。
例2:修改数据库student现有数据文件的属性,将主数据文件的最大大小改为50MB,增长方式改为每次2MB增长。例2:修改数据库student现有数据文件的属性,将主数据文件的最大大小改为50MB,增长方式改为每次2MB增长。 例3:对数据库student增加数据文件student2,初始大小为10MB,最大大小为50MB,按10%增长。 例4:删除新增的数据文件student2 例5:将数据库student的名字改为DB。
二、管理数据表 建立数据库最重要的一步就是创建其中的数据表,即决定数据库包括哪些表,每个表中包含哪些字段,每个字段的数据类型等。 创建表的实质就是定义表结构及约束等属性,在创建数据表之前,先要设计表,即确定表的名字、所包含的各字段名、字段的数据类型、长度、是否可为空值等等,这些属性构成表结构。
主要内容: • 常见数据类型 • 界面方式下创建及编辑数据表 • 命令方式下创建及编辑数据表
2)字符型 • char[(n)] 定长字符数据类型,其中n定义字符型数据的长度,n在1到8000之间,缺省为1。当表中的列定义为char(n)类型时,若实际要存储的串长度不足n时,则在串的尾部添加空格以达到长度n,所以char(n)的长度为n。 (2)varchar[(n)] 变长字符数据类型,其中n的规定与定长字符型char中n完全相同,但这里n表示的是字符串可达到的最大长度。varchar(n)的长度为输入的字符串的实际字符个数,而不一定是n。
3)精确数值型 4)浮点型
6)货币型 7)位型
2、界面方式下管理数据表 主要内容: 创建数据表 修改数据表 删除数据表
案例:以本章学生-课程数据库为例,创建以下内容案例:以本章学生-课程数据库为例,创建以下内容 学生-课程模式 S-T : 学生表:Student(Sno,Sname,Ssex,Sage,Sdept) 课程表:Course(Cno,Cname,Cpno,Ccredit) 学生选课表:SC(Sno,Cno,Grade)
界面方式下修改表 当创建了一个表后,随着应用环境和应用需求的变化,有时需要对表结构、列的属性进行修改,对于一个已经存在的表可以进行的修改操作有: 1) 更改表名 2) 增加字段、删除字段 3) 修改已有字段的属性(字段名、数据类型、长度、是否为空值) 界面方式下删除表
查看表属性 SQL Server 2005的数据表可分为用户表和系统表两种类型,用户表是数据库用户创建的表,用于存放用户的数据,系统表则是SQL Server 2005为实现数据库维护而创建的表,任何用户都不应该直接修改系统表,否则会导致数据库无法使用。 在目录树窗口中选中数据库中的“表”项目,即可在内容窗口中显示出该数据库包含的数据表。
练习 在数据库teacher内创建: 教师基本情况表(jbqk): 教师编号(teacher_no) 教师姓名(teacher_name) 教师所在部门编号(department_no) 教师职称(teacher_grade) 教师上课情况表(skqk): 教师编号(teacher_no) 所上课程(course_kc) 是否专业课(course_zy) 课时数(course_ks) 班级号(classe_number) 总人数(total_number)
3、命令方式下管理数据表 • 在T-SQL中,用于创建数据表的语句是CREATE TABLE,该语句的基本语法格式为:
创建数据表的完整语法格式为: CREATE TABLE 表名 (列名 数据类型[缺省值][NOT NULL] [,列名 数据类型[缺省值][NOT NULL]]…. [,UNIQUE(列名[,列名]….)] [,PRIMARY KEY(列名[,列名]…)] [,FOREIGN KEY (列名[,列名]…)REFERENCES 表名(列名[,列名]…)] [,CKECK (条件)])
参数说明: • DEFAULT (缺省值):指定列的缺省值;NOT NULL:列值不能为空值;UNIQUE:取值唯一的列名;PRIMARY KEY:主关键字(主码)列名;FOREIGN KEY:外部码列名;REFERENCES:引用的外部码的表名和列名 CKECK :指定表级约束条件。
练习1:在数据库student中创建stu_info表,表中包括:学号、姓名、出生年月、性别、地址、电话号码、邮编,所在系代号,每月生活补贴等。练习1:在数据库student中创建stu_info表,表中包括:学号、姓名、出生年月、性别、地址、电话号码、邮编,所在系代号,每月生活补贴等。 USE student CREATE TABLE stu_info ( 学号 char(10) NOT NULL PRIMARY KEY, 姓名 char(8) NOT NULL, 出生年月 datetime NULL, 性别 char(2) NOT NULL default('女'), 地址 char(20), 电话号码 char(12), 邮编 char(6), 系代号 tinyint, 每月生活补贴 money ) go
创建数据表时使用默认值、约束 CREATE TABLE stu1 (stuid CHAR(8) PRIMARY KEY, stuname CHAR(8), stusex CHAR(2) default('男'), stuage int check(stuage>=0 and stuage<=100) default 20, studept varchar(30) )
练习:以本章学生-课程数据库为例,创建学生-课程库及以下内容: 学生表:Student(Sno,Sname,Ssex,Sage,Sdept) 课程表:Course(Cno,Cname,Cpno,Ccredit) 学生选课表:SC(Sno,Cno,Grade)
总结 • 命令方式下管理数据库 • 管理数据表 • 界面方式创建、修改、删除表 • 命令方式创建、修改、删除表 • 管理表数据 • 插入数据 • 更新数据 • 删除数据