SQL语句建库建表建约束.ppt

上传人:za****8 文档编号:2993447 上传时间:2019-12-05 格式:PPT 页数:29 大小:596.51KB
返回 下载 相关 举报
SQL语句建库建表建约束.ppt_第1页
第1页 / 共29页
SQL语句建库建表建约束.ppt_第2页
第2页 / 共29页
SQL语句建库建表建约束.ppt_第3页
第3页 / 共29页
点击查看更多>>
资源描述
SQL 语言建库建表建约束,制作人:成立智(成哥) Q ICQ:QQ1787211789 P hone:15801239839 备注: 本人男 (你懂得),学习目标,理解SQL的相关概念 掌握数据类型 了解数据库存储结构 掌握如何创建一个数据库以及表 熟练使用添删改查操作,SQL的基本概念,数据库(DATABASE)和表(TABLE),字段(FIELD),关键字(KEY),记录(RECORD),数据库系统和数据库管理系统,数据模型,SQL的基本概念,完整性约束:数据完整性(Data Integrity指数据的精确性(Accuracy)和可靠性(Reliability)。数据完整性分为四类: 实体完整性(Entity Integrity) 域完整性(Domain Integrity) 参照完整性(Referential Integrity) 用户定义的完整性(User-definedIntegrity),SQL的基本概念,实体完整性(Entity Integrity):实体完整性规定表的每一行在表中是惟一的实体。 在数据表中可以对相应字段进行如下约束来实现实体完整性: UNIQUE(唯一约束) PRIMARYKEY(主键约束) IDENTITY(标识列),SQL的基本概念,域完整性(Domain Integrity):是指数据库表中的列必须满足某种特定的数据类型或约束。 域完整性有以下几种约束: CHECK(检查约束) FOREIGN KEY(外键约束) DEFAULT(默认值约束) NOT NULL(不为空值约束),SQL的基本概念,参照完整性(Referential Integrity):是指两个表的主关键字和外关键字的数据应对应一致。 在SQL Server 中,参照完整性作用表现在如下几个方面: 禁止在从表中插入包含主表中不存在的关键字的数据行 禁止会导致从表中的相应值孤立的主表中的外关键字值改变 禁止删除在从表中的有对应记录的主表记录,SQL的基本概念,用户定义的完整性(User-defined Integrity):是针对某个特定关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。 SQL Server 提供了定义和检验这类完整性的机制,以便用统一的系统方法来处理它们,而不是用应用程序来承担这一功能。其它的完整性类型都支持用户定义的完整性。 SQL Server 提供了一些工具来帮助用户实现数据完整性,其中最主要的是:规则(Rule)、缺省值(Default)、约束(Constraint) 和触发器(Trigger)。,数据类型,整型数据类型 浮点数据类型 字符数据类型 日期和时间数据类型 文本和图形数据类型,货币数据类型 位数据类型 二进制数据类型 特殊数据类型 新增数据类型,数据库管理,数据库文件 主数据库文件(Primary Database File) 辅助数据库文件(Secondary Database File) 事务日志文件,数据库的存储结构,数据库文件组 为了便于分配和管理,SQL Server允许将多个文件归纳为同一组,并赋予此组一个名称,这就是文件组。,1、文件与文件组 在SQL Server 中数据库是由数据库文件和事务日志文件组成的。一个数据库至少应包含一个数据库文件和一个事物日志文件。 (1) 数据库文件(Database File) 数据库文件是存放数据库数据和数据库对象的文件。一个数据库可以有一个或多个数据库文件,一个数据库文件只属于一个数据库。当有多个数据库文件时,有一个文件被定义为主数据库文件(Primary Database File), 扩展名为mdf, 它用来存储数据库的启动信息和部分或全部数据,一个数据库只能有一个主数据库文件。其它数据库文件被称为次数据库文件(Secondary Database File), 扩展名为ndf, 用来存储主文件没存储的其它数据。 采用多个数据库文件来存储数据的优点体现在: 数据库文件可以不断扩充,而不受操作系统文件大小的限制; 可以将数据库文件存储在不同的硬盘中,这样可以同时对几个硬盘做数据存取,提高了数据处理的效率。对于服务器型的计算机尤为有用。,(2) 事务日志文件(Transaction Log File) 事务日志文件是用来记录数据库更新情况的文件,扩展名为ldf。例如使用INSERT、UPDATE、 DELETE、 等对数据库进行更的操作都会记录在此文件中,而如SELECT 等对数据库内容不会有影响的操作则不会记录在案。一个数据库可以有一个或多个事务日志文件。 (3) 文件组(File Group) 文件组是将多个数据库文件集合起来形成的一个整体。每个文件组有一个组名。与数据库文件一样,文件组也分为主文件组(Primary File Group) 和次文件组(Secondary FileGroup) 一个文件只能存在于一个文件组中,一个文件组也只能被一个数据库使用。主文件组中包含了所有的系统表。当建立数据库时,主文件组包括主数据库文件和未指定组的其它文件。在次文件组中可以指定一个缺省文件组,那么在创建数据库对象时如果没有指定将其放在哪一个文件组中,就会将它放在缺省文件组中。如果没有指定缺省文件组则主文件组,为缺省文件组。 注意:事务日志文件不属于任何文件组。,创建数据库,CREATE DATABASE 数据库名 ON PRIMARY ( ,n ) LOG ON ( ,n),T-SQL创建数据库的语法:,创建数据库示例,CREATE DATABASE stuDB ON PRIMARY -默认就属于PRIMARY主文件组,可省略 ( NAME=stuDB_data, -主数据文件的逻辑名 FILENAME=D:projectstuDB_data.mdf, SIZE=5mb, -主数据文件初始大小 MAXSIZE=100mb, -主数据文件增长的最大值 FILEGROWTH=15% -主数据文件的增长率) LOG ON (NAME=stuDB_log, FILENAME=D:projectstuDB_log.ldf, SIZE=2mb, FILEGROWTH=1MB) GO,数据文件的具体描述,日志文件的具体描述,删除数据库,如果SQL Server中已存在数据库stuDB,运行 下列语句,会出现什么问题?,CREATE DATABASE stuDB ON ( ) LOG ON ( ) GO,演示:再次运行示例1,USE master -设置当前数据库为master,以便访问sysdatabases表 GO IF EXISTS(SELECT * FROM sysdatabases WHERE name =stuDB) DROP DATABASE stuDB CREATE DATABASE stuDB ON ( ) LOG ON ( ) GO,删除数据库,删除数据库的语法:,DROP DATABASE 数据库名,EXISTS()语句: 检测是否存在stuDB数据库 如果存在stuDB数据库,则删除,创建表,建表的语法:,CREATE TABLE 表名 ( 字段1 数据类型 列的特征, 字段2 数据类型 列的特征,),列的特征:包括该列是是否为空(NULL)、是否是标识列(自动编号)、是否有默认值、是否为主键等。,建表示例 1,USE stuDB -将当前数据库设置为stuDB GO CREATE TABLE stuInfo /*-创建学员信息表-*/ ( stuName VARCHAR(20) NOT NULL , -姓名,非空(必填) stuNo CHAR(6) NOT NULL, -学号,非空(必填) stuAge INT NOT NULL, -年龄,INT类型默认为4个字节 stuID NUMERIC(18,0), -身份证号 stuAddress TEXT -住址,允许为空,即可选输入) GO,NUMERIC (18,0) 代表18位数字,小数位数为0,演示:创建学员信息表stuInfo,IDENTITY(起始值,递增量),删除表,如果当前数据库中已存在stuInfo表,再次创建时系统将提示出错 。如何解决呢?,删除表,删除表的语法:,DROP TABLE 表名,USE stuDB -将当前数据库设置为stuDB ,以便在 stuDB数据库中建表 GO IF EXISTS(SELECT * FROM sysobjects WHERE name=stuInfo ) DROP TABLE stuInfo CREATE TABLE stuInfo /*-创建学员信息表-*/ () GO,创建约束,约束名的取名规则推荐采用:约束类型_约束字段 主键(Primary Key)约束 唯一(Unique )约束 默认(Default)约束 检查(Check )约束 外键(Foreign)约束,主键(Primary Key)约束 CREATE TABLE stuInfo ( stuId int primary key identity(1,1),-设为主键值,值为自增增量为1; stuName VARCHAR(20) NOT NULL , ) 如果需要自定义主键名,可以使用以下代码: CREATE TABLE stuInfo ( stuId int primary key identity(1,1) constraint PK_STUID primary key clustered, ),唯一( UNIQUE )约束 与primary key约束不同, UNIQUE约束允许有NULL值。 CREATE TABLE stuInfo ( , stuNo CHAR(6) unique, , ) 如果需要自定义主键名,可以使用以下代码: CREATE TABLE stuInfo ( , stuNo CHAR(6) CONSTRAINT U_stuNo unique, ),默认(Default)约束 CREATE TABLE stuInfo ( , stuBeginDate datetime default(getdate(), , ) 如果需要自定义主键名,可以使用以下代码: CREATE TABLE stuInfo ( , stuBeginDate datetime CONSTRAINT D_ stuBeginDate default(getdate(), ),外键(Foreign)约束 如果该学生信息表和另一张学生成绩表建立相关,那么就必须建立外键。 CREATE TABLE stuInfo ( , currID int foreign key(currID) references stuCurr(currID) ) 如果需要自定义外键名,可以使用以下代码: CREATE TABLE stuInfo ( , currID int CONSTRAINT FK_stu_cur foreign key(currID) references stuCurr(currID) ),添加约束,添加约束的语法:,ALTER TABLE 表名 ADD CONSTRAINT 约束名 约束类型 具体的约束说明,添加约束示例,ALTER TABLE stuInfo ADD CONSTRAINT PK_stuNo PRIMARY KEY (stuNo) ALTER TABLE stuInfo ADD CONSTRAINT UQ_stuID UNIQUE (stuID) ALTER TABLE stuInfo ADD CONSTRAINT DF_stuAddress DEFAULT (地址不详) FOR stuAddress ALTER TABLE stuInfo ADD CONSTRAINT CK_stuAge CHECK(stuAge BETWEEN 15 AND 40) ALTER TABLE stuMarks ADD CONSTRAINT FK_stuNo FOREIGN KEY(stuNo) REFERENCES stuInfo(stuNo) GO,演示:给学员信息表stuInfo添加约束,删除约束,如果错误地添加了约束,我们还可以删除约束 删除约束的语法,ALTER TABLE 表名 DROP CONSTRAINT 约束名,例如:删除stuInfo表中地址默认约束 ALTER TABLE stuInfo DROP CONSTRAINT DF_stuAddress,小 结,SQL语言是数据库技术开发的主体,通过SQL语言我们可以按照需求获取数据信息。 数据都有其数据类型,通过数据类型,我们可以了解数据的属性。 SQL语言包括数据定义语言,主要是创建数据库对象;数据操纵语言,可以对数据进行添删改查操作及管理;数据控制语言,对用户和对象的操作设置权限。,
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!