1、数据库原理与应用数据库原理与应用南方医科大学生物医学工程学院信息技术系2022-5-31小组汇报各小组汇报基于SQL server建立的基本表,需要注意的地方有哪几点2022-5-31 数 据 定 义表表 3.2 SQL 的数据定义语句的数据定义语句 操作对象操作对象 操操 作作 方方 式式 创创 建建 删删 除除 修修 改改 表表 CREATE TABLE DROP TABLE ALTER TABLE 视视 图图 CREATE VIEW DROP VIEW 索索 引引 CREATE INDEX DROP INDEX 2022-5-311、定义基本表 CREATE TABLE ( , , );
2、:所要定义的基本表的名称:组成该表的各个属性(列)名称:涉及相应属性列的完整性约束条件:涉及一个或多个属性列的完整性约束条件注意:SQL语句的结束符为分号2022-5-31定义基本表例1 建立一个“员工”表Staff,它由工号号Sno、姓名Sname、性别Ssex、年龄Sage、所在部门Sdept五个属性组成。其中工号不能为空,值是唯一的,并且姓名取值也唯一。 CREATE TABLE Staff (Sno CHAR(5) NOT NULL UNIQUE, Sname CHAR(20) UNIQUE, Ssex CHAR(2), Sage INT, Sdept CHAR(15);2022-5-
3、31SQL Server主要支持的数据类型二进制数据 字符数据 Unicode数据 日期和时间数据 数字数据 货币数据 特殊数据 2022-5-31SQL Server常用数据类型binary 定长二进制数型char 定长字符串型datetime 日期时间型int 全字长整数型decimal 小数型float 浮点型money 货币型2022-5-31定义基本表常用完整性约束主码约束: PRIMARY KEY唯一性约束:UNIQUE非空值约束:NOT NULL参照完整性约束:FOREIGN KEY2022-5-312、修改基本表ALTER TABLE ADD 完整性约束 DROP MODIFY
4、 ;:要修改的基本表ADD子句:增加新列和新的完整性约束条件DROP子句:删除指定的完整性约束条件MODIFY子句:用于修改列名和数据类型2022-5-31修改基本表例2 向Staff表增加“入职时间”列,其数据类型为日期型。 ALTER TABLE Staff ADD Scome DATE;不论基本表中原来是否已有数据,新增加的列一律为空值。SQL Server中只有日期时间类型(datetime或smalldatetime)2022-5-31修改基本表例3 将年龄的数据类型改为半字长整数。 ALTER TABLE Staff MODIFY Sage SMALLINT;注:修改原有的列定义有
5、可能会破坏已有的数据。SQL Server中用ALTER COLUMN 替代MODIFY。2022-5-31修改基本表例4 删除员工姓名必须取唯一值的约束。ALTER TABLE Staff DROP UNIQUE(Sname);SQl Server中直接删除约束的名称。如果建立约束时没有命名,则系统自动生成约束名。2022-5-313、删除基本表DROP TABLE ;例5 删除Staff表 DROP TABLEStaff;基本表定义一旦删除,表中的数据、此表上建立的索引和视图都将自动被删除。因此执行删除基本表操作一定要小心。2022-5-31课堂练习1.小组合作,分别创建一下三个基本表 a
6、. 员工信息表 b. 商品信息表 c. 库存信息表2022-5-311.员工信息表1 1员工编号员工编号StuffnoStuffnochar(10)char(10)唯一标识唯一标识2 2员工姓名员工姓名StuffnameStuffnamechar(20)char(20) 3 3性别性别StuffsexStuffsexchar(5)char(5) 4 4联系方式联系方式StufftelphStufftelphoneone char(20) char(20)5 5所在部门所在部门StuffapparStuffapparmentmentchar(20)char(20) 6 6密码密码Stuffpas
7、swStuffpasswardardchar(20)char(20)2022-5-312.商品信息表编号编号数据项数据项数据项字数据项字段名段名数据类型数据类型数据项含数据项含义义1 1商品编号商品编号Goodsnooodsnochar(10)char(10)唯一标识唯一标识2 2商品名称商品名称GoodsnameGoodsnamechar(20)char(20) 3 3商品规格商品规格GoodscaleGoodscalechar(10)char(10) 5 5供应商供应商SupplyerSupplyerchar(20)char(20) 6 6库存量库存量SumSumintint 7 7商品价
8、格商品价格GoodspricGoodsprice eMoney2022-5-313.库存信息表编号编号数据项数据项数据项别名数据项别名数据类型数据类型数据项含义数据项含义1 1商品编号商品编号Goodsnooodsnochar(10)char(10)唯一标识,唯一标识,外码外码2 2商品名称商品名称Goodsnameoodsnamechar(2 20)唯一标识,唯一标识,外码外码3 3商品规格商品规格GoodsscaleoodsscaleChar(10)har(10) 4 4供应商供应商SupplyerupplyerChar(20)har(20) 5 5剩余总量剩余总量Sumremainumr
9、emainIntnt2022-5-31数据更新1、 插入数据2、 删除数据3、 修改数据2022-5-311、插入数据两种插入数据方式 插入单个元组 插入子查询结果2022-5-31(1)插入单个元组语句格式 INSERT INTO (,) VALUES ( , )功能将新元组插入指定表中。2022-5-31插入单个元组INTO子句指定要插入数据的表名及属性列属性列的顺序可与表定义中的顺序不一致没有指定属性列:表示要插入的是一条完整的元组,且属性列属性与表定义中的顺序一致指定部分属性列:插入的元组在其余属性列上取空值 VALUES子句 提供的值(个数和类型)必须与INTO子句相匹配。2022-
10、5-31插入单个元组例1 将一个新员工记录(工号:95027;姓名:陈学冬;性别:男;所在部门:sales;年龄:18岁)插入到Staff表中。 INSERT INTO Staff VALUES (95027,陈学冬,男,18,sales);2022-5-31执行插入操作首先检查实体完整性规则插入行主码属性上的值是否存在再检查参照完整性规则如果向被参照关系插入,不检查如果向参照关系插入,则检查插入行在外码属性上的值是否存在最后检查用户定义的完整性规则如果定义了用户定义的完整性规则,则检查插入行相应属性上的值是否遵守用户定义的完整性规则2022-5-31数据更新1、 插入数据2、 删除数据3、
11、修改数据2022-5-312、删除数据语句格式: DELETE FROM WHERE ;功能删除指定表中满足WHERE子句条件的元组(注意Delete语句与Drop语句的区别)WHERE子句指定要删除的元组缺省表示要删除表中的所有元组2022-5-31删除数据三种删除方式删除某一个元组的值删除多个元组的值带子查询的删除语句2022-5-31(1)删除某一个元组的值例8 删除工号号为95019的员工记录。 DELETE FROM Staff WHERE Sno=95019;2022-5-31(2)删除多个元组的值例9 删除95025号员工的所有记录。 DELETE FROM Staff WHER
12、E Sno=2;例10 删除所有的员工记录。 DELETE FROM Staff;2022-5-31执行删除操作一般只需检查参照完整性规则如果删除被参照关系中的行,则检查被删除行在主码属性上的值是否正在被相应的参照关系的外码引用:如果不被引用,则执行删除操作如果被引用,则有三种可能的做法:拒绝删除空值删除级联删除2022-5-31数据更新1、 插入数据2、 删除数据3、 修改数据2022-5-313、修改数据语句格式 UPDATE SET =,= WHERE ;功能修改指定表中满足WHERE子句条件的元组。2022-5-31修改数据SET子句指定修改方式要修改的列修改后取值WHERE子句指定要
13、修改的元组缺省表示要修改表中的所有元组2022-5-31修改数据三种修改方式修改某一个元组的值修改多个元组的值带子查询的修改语句2022-5-31(1)修改某一个元组的值例4 将员工95020的年龄改为22岁。 UPDATE Staff SET Sage=22 WHERE Sno=95020;2022-5-31(2)修改多个元组的值例5 将所有员工的年龄增加1岁。 UPDATE Staff SET Sage= Sage+1;例6 将销售部所有员工的年龄增加1岁。 UPDATE Staff SET Sage= Sage+1 WHERE Sdept=sales;2022-5-31执行修改操作将修改
14、操作看成先执行删除操作,再执行插入操作,因此是删除和插入两种情况的综合。2022-5-31更新数据与数据一致性DBMS在执行插入、删除、更新语句时必须保证数据库一致性必须有事务的概念和原子性完整性检查和保证2022-5-31课堂练习21.为课堂练习1建立的3个表,各插入至少5条数据。2.将“商品信息表”中的“商品价格”全部上调1元。3.添加员工编号为“95022”的员工数据,男,22岁,销售部。4.删除员工编号为95022的员工数据 完成后请两个小组现场操作展示2022-5-31作业:按附录要求完成超市数据库基本表的创建,所有数据的插入,并自行熟练增添,修改,删除数据等操作。附录超市管理系统数据库开发案例.doc