SQL语言基本知识及数据库和表的创建.ppt
关系数据库与SQL语言关系数据库与SQL Server 2008,目 录,第1章 数据库基础第2章 关系库的基本理论第3章 数据库设计第4章 Transact-SQL语言和SQL SERVER 2008第5章 数据库和表的创建第6章 数据库的查询和视图第7章 存储过程和触发器第8章 数据库应用实战,课前回顾,数据库设计3.1 数据库设计概述3.2 需求分析3.3 概念结构设计(重点)3.4 逻辑结构设计(重点)3.5-3.7 物理设计,数据库实施,数据库运行与维护,本堂内容,第四章:T-SQL语言4.1 SQL语言基本知识4.2.1 数据类型第五章:数据库和表的创建5.1 命令方式创建数据库和表(重难点),4.1 SQL语言基本知识,SQL是结构化查询语言(Structured Query Language),是一种使用关系模型的数据库应用语言。目前,绝大多数流行的关系数据库管理系统,如Oracle,Sybase,Microsoft SQL Server 和DB2等 都采用SQL语言标准。,4.1.1 SQL基本概念-SQL中的基本术语,4.1.2 SQL特点,高度非过程化 用户只需提出“做什么”,无须告诉“怎么做”,不必了解存取路径。两种使用方式,统一的语法结构 SQL既是自含式语言(用户使用),又是嵌入式语言(程序员使用)。语言简洁,易学易用,4.1.3 SQL语言的分类,4.1.4 T-SQL语言简介,同任何程序语言一样,T-SQL语言有自己的数据类型,表达式,关键字和语句结构。1.标识符2.对象命名规则,标识符,标识符是一个同用户定义的,SQL可识别的,有意义的字符序列。(1)标识符可以由1-30个字符组成(2)第一个字符必须为字母,下划线,或#(3)默认情况下,标识符内不允许有空格,也不允许将关键字作为标识符,对象命名规则,一个对象的完整名称包括4个标识符:服务器名,数据库名,所有者名和对象名,4.2 T-SQL 表达式-数据类型,4.2.1 数据类型 数据类型是指用于存储,检索及解释数据值类型的预先定义的命名方法,它决定了在计算机中的存储格式,代表了不同的信息类型。,常用数据类型,字符类型:char,varchar()精确数类型:decimal,numeric整数类型:int,smallint,tinyint,bigint日期时间类型:datetime,date,time货币类型:money具体请同学们参看P64 表4-1,第五章 数据库和表的创建,数据库是SQL 用来存储表,视图等对象的逻辑实体。一个数据库包含两种文件,一种是数据文件,用于存储数据库中的所有对象,如表,视图等。另一种是日志文件,用于记录对数据库的所有修改操作。本堂课主要介绍如何使用命令方式创建,修改,删除数据库和表。,数据库文件组成,主数据文件数据库的起点,通常扩展名为.mdf,用来存储数据库的启动信息和部分或全部数据辅助数据文件包含主要数据文件外的其他数据文件,通常扩展名是.ndf事务日志文件包含恢复数据库所需的所有日志信息,通常扩展名是.ldf,数据库文件组成,数据库文件的文件名默认情况下主数据文件名为:数据库名.mdf 事务日志文件名为:数据库名_Log.ldf用户自定义数据库文件的存放位置默认情况下,存放在:c:program files Microsoft SQL Server MSSQL.1 MSSQL data用户自定义,数据库的类型,5.1 命令方式创建数据库和表,定义一个数据库数据库的名字(命名规则与标识符命名规则相同)数据库的大小数据库所在的文件,创建数据库的方式,使用界面创建(熟悉)简单、方便使用命令创建(掌握)命令方式、较复杂但它是兼容语法,一旦学会它,可套用到其它数据库系统中;在程序中执行的某些动作必须使用命令,创建数据库语法,CREATE DATABSE 数据库名 ON PRIMARY(NAME=逻辑文件名,FILENAME=磁盘文件名,SIZE=初始大小,MAXSIZE=最大容量|unlimited,FILEGROWTH=增长量),n,FILEGROUP(),n LOG ON(NAME=逻辑文件名,FILENAME=磁盘文件名,SIZE=初始大小,MAXSIZE=最大容量|unlimited,FILEGROWTH=增长量),n,创建不指定文件的数据库,用命令创建数据库的格式CREATE DATABASE 数据库名 ON LOG ON 实例1:创建一个简单数据库。CREATE DATABSE mydb1,创建一个名为mydb1的数据库,其大小与model的数据库完全相同。,创建指定数据文件和日志文件的数据库,CREATE DATABASE Sales ON(NAME=Sales_dat,FILENAME=E:saledat.mdf,SIZE=10,MAXSIZE=50,FILEGROWTH=5)LOG ON(NAME=Sales_log,FILENAME=D:salelog.ldf,SIZE=5MB,MAXSIZE=25MB,FILEGROWTH=5MB),数据库删除,命令格式Drop database 数据库名,n实例:删除数据库Sales。Drop database Sales 说明:当数据库处于下列情况不能被删除。当有用户正在数据库使用时。当数据库正在被恢复时。当数据库正在参与复制时。,5.1.2 定义基本表,数据表的类型设计表创建基本表修改基本表删除表,数据表的类型,系统表用于存储服务器的配置信息、数据表的定义信息的一组特殊表,称为系统表。用户表已分区表已分区表是将超大表按照某种业务规则分别存储在不同的文件组中,以提高性能和方便管理。临时表临时表是一种因为暂时需要所产生的数据表,它存放在Tempdb数据库中,当使用完临时表且关闭连接后,系统会自动删除临时表。,设计表,表中要存储的数据类型(用来确定数据的取值范围)表中需要的列数、每列的类型列是否可以为空是否需要在列上使用完整性约束需要使用什么样的索引哪些列作为主键、哪些列作为外键哪些用户拥有访问该数据库或表的权限,表约束,创建基本表-语法,基本语法 create table 表名(列名 数据类型 列级完整性约束,列名 数据类型 列级完整性约束,.表级完整性约束);,创建基本表-语法,-完整性约束关系字主要有以下所示几个:primary key(列名,列名)-主键 unique(列名,列名)-唯一键 foreign key(列名,列名)references 表名(列名,列名)-外键 check(条件)-检查约束注意:一个表中可以有多个外键,但一个表中只能有一个主键,基本表的定义实例,示例:1.创建院系表:系(系别号,系名)create table Department(Dno char(10)primary key,Dname varchar(20)-请同学们分析一下创建学生表的SQL语句-2.创建学生表:学生(学号,姓名,性别,年龄,系别号)要求:(学号唯一且不空,性别只能取 1或0 1代表男生,0代表女生),课堂练习1:创建课程表和表约束,要求:按下图所示的结构,用命令方式创建数据表及其约束。,练习1:创建课程表和表约束(续),Create database Stu_DBgo-表示一个批的结束。go 只能独自占用一行use Stu_DB-从默认的master数据库切换到Stu_DB库create table Course(序号 int identity,-自增长 课程号 char(3)not null primary key,课程名 char(20)not null,授课教师 char(8),开课学期 tinyint not null default 1 check(开课学期=0 and 开课学期=6),学时 tinyint not null,学分 tinyint),基本表的定义()续,外键的不同处理方式:ON DELETE NOACTION 指定如果试图删除/修改某一行,而该行的键被其他表的现有行中的外键所引用,则产生错误并回滚DELETE/UPDATE语句。(若未说明,默认为此项)ON DELETE CASCADE允许删除主表中的主键值,不过主表中某个主键值被删除后,当前表外键引用该主键值的所有行均被删除ON DELETE SET NULL/DEFAULT 允许删除主表中的主键值,不过主表中某个主键值被删除后,当前表引用该主键值的外键属性置为空值(或默认值),基本表的修改,在表中添加新属性:ALTER语句格式:alter table 表名add 列名 列数据类型增加新列drop 列名删除列alter 修改内容修改列定义 add 约束 内容增加新约束,基本表的修改,示例1:alter table student add note char(30)示例2:alter table student add foreign key(Dno)references Department(Dno)示例3:alter table student drop column sname 示例4:alter table student alter column notes char(80)not null,修改表结构练习,-请同学们完成修改学生表student1.增加出生日期列 2.增加约束要求学生年龄要大于15岁,基本表的删除,删除数据库中的对象(如表或表的索引等):drop语句格式drop table 表名示例 drop table studentDANGER drop基本表后,基本表的定义、表中数据、索引都将被删除,本课小结,第五章创建数据库创建数据表修改数据表 删除数据表,第四章:SQL语言基本知识SQL的分类数据类型,基本表的定义,格式 create table 表名(列名 数据类型 default 缺省值 not null,列名 数据类型 default 缺省值 not null,primary key(列名,列名),unique(列名,列名),foreign key(列名,列名)references 表名(列名,列名),check(条件)注意:一个表中可以有多个外键,但一个表中只能有一个主键,