sql语句对数据库的基本操作

上传人:宝路 文档编号:52872775 上传时间:2018-08-26 格式:PPT 页数:32 大小:1.56MB
返回 下载 相关 举报
sql语句对数据库的基本操作_第1页
第1页 / 共32页
sql语句对数据库的基本操作_第2页
第2页 / 共32页
sql语句对数据库的基本操作_第3页
第3页 / 共32页
sql语句对数据库的基本操作_第4页
第4页 / 共32页
sql语句对数据库的基本操作_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《sql语句对数据库的基本操作》由会员分享,可在线阅读,更多相关《sql语句对数据库的基本操作(32页珍藏版)》请在金锄头文库上搜索。

1、第二章,数据库的实现,回顾,在需求分析阶段,设计数据库的一般步骤为? 实体的映射关系有哪些? 请简要说明三大范式的含义?,目标,掌握建库的SQL语句掌握建表的SQL语句掌握加约束的SQL语句掌握创建安全帐户的SQL语句,回顾数据库的基础知识,数据库文件的组成: 主数据文件:*.mdf 次要数据文件:*.ndf 日志文件:*.ldf 数据库的其他属性: 文件存放位置,分配的初始空间,属于哪个文件组 文件增长:可以按百分比或实际大小指定增长速度 文件容量设置:可以指定文件增长的最大值或不受限,创建数据库,CREATE DATABASE 数据库名ON PRIMARY(,n )LOG ON (,n),

2、T-SQL创建数据库的语法:,主文件组,可选参数,默认,创建数据库示例 1,CREATE DATABASE stuDBON 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=2

3、mb,FILEGROWTH=1MB ) GO,数据文件的具体描述,日志文件的具体描述,演示创建数据库1:一个数据文件和一个日志文件,创建数据库示例 2,CREATE DATABASE employeesON (/*-主数据文件的具体描述-*/NAME = employee1, FILENAME = D:projectemployee1_Data.mdf , SIZE = 10, FILEGROWTH = 10%), (/*-次要数据文件的具体描述-*/NAME = employee2, FILENAME = D:projectemployee2_Data.ndf , SIZE = 20, MA

4、XSIZE = 100, FILEGROWTH = 1),LOG ON (/*-日志文件1的具体描述-*/NAME = employeelog1, FILENAME = D:projectemployeelog1_Log.ldf , SIZE = 10, FILEGROWTH = 1), (/*-日志文件2的具体描述-*/NAME = employeelog2, FILENAME = D:projectemployeelog2_Log.ldf , SIZE = 10, MAXSIZE = 50, FILEGROWTH = 1) GO,演示创建数据库2:多个数据文件和多个日志文件,删除数据库,如

5、果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(

6、)语句:检测是否存在stuDB数据库如果存在stuDB数据库,则删除,回顾表的基础知识,建表的基本步骤: 确定表中有哪些列 确定每列的数据类型 给表添加各种约束 创建各表之间的关系SQL Server中的数据类型,整型数据:int smallint 浮点数据:float numeric ,字符数据 固定长度:char(6) 可变长度: varchar(10) unicode编码:nchar(10),布尔数据(真/假)bit: 1/ 0,货币数据 money,日期数据 datetime,创建表,建表的语法,CREATE TABLE 表名(字段1 数据类型 列的特征,字段2 数据类型 列的特征,.

7、 ),列的特征: 包括该列是是否为空(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), -身份证号stuSeat SMALLINT IDENTITY (1,1), -座位号

8、,自动编号stuAddress TEXT -住址,允许为空,即可选输入 ) GO,NUMERIC (18,0) 代表18位数字,小数位数为0,演示:创建学员信息表stuInfo,IDENTITY(起始值,递增量),建表示例 2,CREATE TABLE stuMarks (ExamNo CHAR(7) NOT NULL, -考号stuNo CHAR(6) NOT NULL, -学号writtenExam INT NOT NULL, -笔试成绩LabExam INT NOT NULL -机试成绩 ) GO,演示:创建学员成绩表 stuMarks,删除表,如果当前数据库中已存在stuInfo表,再

9、次创建时系统将提示出错 。如何解决呢?,删除表,删除表的语法:,DROP TABLE 表名,USE stuDB -将当前数据库设置为stuDB ,以便在stuDB数据库中建表 GO IF EXISTS(SELECT * FROM sysobjects WHERE name=stuInfo )DROP TABLE stuInfo CREATE TABLE stuInfo /*-创建学员信息表-*/ ( ) GO,回顾SQL Server的约束,约束的目的:确保表中数据的完整型 常用的约束类型: 主键约束(Primary Key Constraint):要求主键列数据唯一,并且不允许为空 唯一约束

10、(Unique Constraint):要求该列唯一,允许为空,但只能出现一个空值。 检查约束(Check Constraint):某列取值范围限制、格式限制等,如有关年龄的约束 默认约束(Default Constraint):某列的默认值,如我们的男性学员较多,性别默认为“男” 外键约束(Foreign Key Constraint):用于两表间建立关系,需要指定引用主表的那列,添加约束,添加约束的语法:,ALTER TABLE 表名 ADD CONSTRAINT 约束名 约束类型 具体的约束说明,约束名的取名规则推荐采用:约束类型_约束字段 主键(Primary Key)约束:如 PK_

11、stuNo 唯一(Unique Key)约束:如 UQ_stuID 默认(Default Key)约束:如 DF_stuAddress 检查(Check Key)约束:如 CK_stuAge 外键(Foreign Key)约束:如 FK_stuNo,添加约束示例,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_stuAddr

12、ess DEFAULT (地址不详) FOR stuAddress ALTER TABLE stuInfo ADD CONSTRAINT CK_stuAge CHECK(stuAge BETWEEN 15 AND 40) ALTER TABLE stuMarksADD CONSTRAINT FK_stuNo FOREIGN KEY(stuNo) REFERENCES stuInfo(stuNo) GO,演示:给学员信息表stuInfo添加约束,添加主键约束(stuNo作为主键),添加唯一约束(因为每人的身份证号全国唯一),添加默认约束(如果地址不填,默认为“地址不详”),添加检查check约束

13、,要求年龄只能在1540岁之间,添加外键约束(主表stuInfo和从表stuMarks建立关系,关联字段为stuNo),添加约束示例,演示:查看约束结果,删除约束,如果错误地添加了约束,我们还可以删除约束 删除约束的语法,ALTER TABLE 表名 DROP CONSTRAINT 约束名,例如:删除stuInfo表中地址默认约束 ALTER TABLE stuInfo DROP CONSTRAINT DF_stuAddress,回顾SQL Server的安全模型,登录方式回顾,登录验证有两种方式: SQL身份验证:适合于非windows平台的用户或Internet用户, 需要提供帐户和密码

14、Windows身份验证:适合于windows平台用户,不需要提供密码,和windows集成验证 登录帐户相应有两种:SQL 帐户和Windows帐户,创建登录,添加 Windows登录帐户EXEC sp_grantlogin jbtrainingS26301 添加 SQL登录帐户EXEC sp_addlogin zhangsan, 1234,演示创建登录,EXEC表示调用存储过程, 存储过程类似C语言的函数,内置的系统管理员 帐户sa 密码默认为空,建议修改密码,域名用户名,用户名,密码,创建登录,创建数据库用户,创建数据库用户需要调用系统存储过程sp_grantdbaccess,其用法为:,

15、EXEC sp_grantdbaccess 登录帐户名,数据库用户名 其中,“数据库用户“为可选参数,默认为登录帐户, 即数据库用户默认和登录帐户同名。,USE stuDB GO EXEC sp_grantdbaccess jbtrainingS26301, S26301DBUser EXEC sp_grantdbaccess zhangsan, zhangsanDBUser,在stuDB数据库中添加两个用户,创建数据库用户,系统内置的数据库用户,dbo 用户 表示数据库的所有者(DB Owner) 无法删除 dbo 用户,此用户始终出现在每个数据库中 guest 用户 适用于没有数据库用户的

16、登录帐号访问 每个数据库可有也可删除,向数据库用户授权,delete FROM Employees,SELECT * FROM Employees,权限的类型,授权的语法为: GRANT 权限 ON 表名 TO 数据库用户,USE stuDB GO /*-为zhangsanDBUser分配对表stuInfo的select, insert, update权限-*/ GRANT select, insert, update ON stuInfo TO zhangsanDBUser /*-为S26301DBUser分配建表的权限-*/ GRANT create table TO S26301DBUser,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 教学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号