《S2-SQL-SQL基础与表管理.ppt》由会员分享,可在线阅读,更多相关《S2-SQL-SQL基础与表管理.ppt(45页珍藏版)》请在三一文库上搜索。
1、T-SQL基础与表管理,回顾,什么是Data、DB、DBMS、DBA、DBS? 为何需要数据库? 数据库的发展过程? 关系模型与关系数据库相关概念? 什么是E-R图? 何为范式? 系统数据库有哪几个?作用是? 如何创建一个数据库?,本章目标,SQL与标准SQL T-SQL简介 T-SQL数据类型与运算符 管理数据库表 数据完整性与表约束,标准SQL,SQL(Structured Query Language)结构化查询语言,一般念做”sequel”或”S-Q-L” 标准SQL的版本: SQL-86 SQL-89 SQL-92 SQL:1999 SQL:2003,SQL特点,SQL特点: 综合统
2、一 高度非过程化,既不要求用户指定对数据的存放方法,也不需要用户了解其具体的数据存放方式 面向集合 既是自含式语言,又是嵌入式语言 语言简洁、易学易用,SQL功能,SQL语言由以下功能组成:,SQL的不同实现版本,标准SQL数据类型,非java.util.Date,FLOAT也是对应double,T-SQL简介,全称Transact-SQL,用于创建和管理SQL Server实例中的所有数据的命令语言。最早由Sybase公司和Microsoft公司联合开发。 是SQL Server的核心组件,与SQL Server通信,并访问SQL Server中的对象 对SQL-92标准的基础上进行扩展,T
3、-SQL的扩展,增加批次结束指令GO 表示一批的结束,注意GO是一个命令,不是SQL语句 注释 单行注释 - 多行注释 /* */ 新的数据类型 变量、运算符、语句 系统函数,T-SQL的数据类型,数值类型 日期类型 二进制类型 文本类型,数值,日期与二进制,文本,每个Unicode字符使用存储器的字节是字符数的两倍,这意味着: char(30)最多可以存15个汉字,而nchar(30)最多可以存储30个汉字。,思考,电话号码一般使用什么数据类型存储? 性别一般使用什么数据类型存储? 年龄信息一般使用什么数据类型存储? 照片信息一般使用什么数据类型存储? 薪水一般使用什么数据类型存储?,T-S
4、QL运算符,SQL Server操纵数据库,操纵SQL Server有两种方式: 使用SQL语言操纵 利用SQL语言操纵,灵活性较高,通用性强,对SQL语言的要求比较高 开发速度慢 使用Management Studio的图形用户界面操纵 利用GUI界面操纵,灵活性比较低,对SQL Server Management Studio的要求比较高 开发速度快,DDL之表操作,创建表 CREATE TABLE table_name ( column_name data_type ) 删除表 DROP TABLE table_name,CREATE TABLE tbl_personnle ( -员工表
5、 psn_id int, -编号 psn _name varchar(60), -姓名 psn_gender bit, -性别 psn_idc char(18), -身份证号 psn_salary smallmoney, -工资 psn_dpt int -部门 ),出现的问题,输入的类型是否正确? 工资必须是数字 输入的格式是否正确? 身份证号码必须是18位且唯一 是否在允许的范围内? 部门只能是已经存在的部门 是否存在重复输入? 不允许员工编号重复 是否符合其他特定要求? 工资必须高于最低工资标准 ,数据完整性,数据完整性,+,=,完整性,实体完整性,约束方法:唯一约束、主键约束、标识列,域
6、完整性,约束方法:数据类型、检查约束、外键约束、默认值、非空约束,引用完整性,约束方法:外键约束,自定义完整性,约束方法:检查约束、存储过程、触发器,向员工表中插入记录的同时将此操作记录日志:,表操作,在SQL管理平台中演示打开表、数据输入等操作,创建数据库表-1,创建数据库表-2,思考,在主键列输入的数值,允许为空吗? 一个表可以有多个主键吗? 在数据库中,如果公司内重名的员工,但是一个部门内不允许员工重名,可以组合部门和姓名两个字段一起来作为主键吗?,选择主键的原则,最少性 尽量选择单个键作为主键 稳定性 尽量选择数值更新少的列作为主键,创建数据库表-3,表中没有合适的列作为主键怎么办?,
7、思考,标识列允许为字符数据类型吗? 如果标识列A的初始值为1,增长量为2,则输入三行数据以后,再删除两行,下次再输入数据行的时候,标识值从多少开始?,创建数据库表-4,设置列的默认值:,创建数据库表-5,演示建立主-外键关系,设置外键:,创建数据库表-6,关系图,演示关系图,关系图,主表和从表,1、当主表中没有对应的记录时,不能将记录添加到子表 员工表中不能出现部门表中不存在的部门; 2、不能更改主表中的值而导致子表中的记录孤立 把部门表中的编号改变了,员工表表中的编号号也应当随之改变; 3、子表存在与主表对应的记录,不能从主表中删除该行 不能把有员工的部门删除 4、删除主表前,先删子表 先删
8、员工信息表、后删除部门表,创建数据库表-7,检查约束,总结,SQL Server 创建 表的过程是规定数据列的属性的过程, 同时也是实施数据完整性(包括实体完整性、引用完整性和域完整性等)保证的过程 实体完整性数据行不能存在重复,引用完整性要求子表中的相关项必须在主表中存在 域完整性实现了对输入到特定列的数值的限制 SQL Server中存在五种约束,分别是:主键约束、外键约束、检查约束、默认约束和唯一性约束,总结,创建数据库表需要:确定表的列名、数据类型、是否允许为空,还需要确定主键、必要的默认值、标识列和检查约束 如果建立了主表和子表的关系,则: 子表中的相关项目的数据,在主表中必须存在;
9、 主表中相关项的数据更改了,则子表对应的数据项也应当随之 更改; 在删除子表之前,不能够删除主表;,作业,使用PowerDesigner打开HRMS.pdm,根据其中内容,结合课上所讲知识,创建以下表: 职工信息表 tbl_personnel 职务表 tbl_post 职称表 tbl_title 工种表 tbl_workType 部门表 tbl_department 合同类型表 tbl_contractType,作业,为tbl_personnel表添加以下约束关系: 非空约束:姓名、性别、身份证号、出生日期、民族、籍贯、政治面貌、学历、参加工作时间、 主键约束:标识列 唯一值约束:身份证号 默认值约束:政治面貌默认为党员 外键约束:职务参照引用职务表,职称参照引用职称表,工种参照引用工种表,部门参照引用部门表,合同类型参照引用合同类型表 检查约束:性别只能是男或女,身份证号只能是18位,参加工作日期要比出生日期大至少16岁,作业,对其他的5个表 为每个表的ID列添加标识,从1开始,增量为1,并设置主键 为每个表的名称字段添加非空约束,
链接地址:https://www.31doc.com/p-2127305.html