1 / 28

数据库原理 第三章:关系数据库标准语言 SQL

数据库原理 第三章:关系数据库标准语言 SQL. 授课教师:王哲. 复习上节课内容. 命令方式下管理数据库 创建、修改、删除 管理数据表 界面方式创建、修改、删除表 命令方式创建表. 本次课学习内容. 命令方式下管理数据表 创建、修改、删除表 管理表数据 插入数据 更新数据 删除数据. 一、命令方式下管理数据表. 创建数据表 create 修改数据表 alter 删除数据表 drop. 1 、创建数据表. 在 T-SQL 中,用于创建数据表的语句是 CREATE TABLE ,该语句的基本语法格式为:. 创建数据表的完整语法格式为:

orpah
Download Presentation

数据库原理 第三章:关系数据库标准语言 SQL

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 数据库原理第三章:关系数据库标准语言SQL 授课教师:王哲

  2. 复习上节课内容 • 命令方式下管理数据库 • 创建、修改、删除 • 管理数据表 • 界面方式创建、修改、删除表 • 命令方式创建表

  3. 本次课学习内容 • 命令方式下管理数据表 • 创建、修改、删除表 • 管理表数据 • 插入数据 • 更新数据 • 删除数据

  4. 一、命令方式下管理数据表 • 创建数据表 create • 修改数据表 alter • 删除数据表 drop

  5. 1、创建数据表 • 在T-SQL中,用于创建数据表的语句是CREATE TABLE,该语句的基本语法格式为:

  6. 创建数据表的完整语法格式为: CREATE TABLE 表名 (列名 数据类型[缺省值][NOT NULL] [,列名 数据类型[缺省值][NOT NULL]]…. [,UNIQUE(列名[,列名]….)] [,PRIMARY KEY(列名[,列名]…)] [,FOREIGN KEY (列名[,列名]…)REFERENCES 表名(列名[,列名]…)] [,CKECK (条件)])

  7. 参数说明: • DEFAULT (缺省值):指定列的缺省值;NOT NULL:列值不能为空值;UNIQUE:取值唯一的列名;PRIMARY KEY:主关键字(主码)列名;FOREIGN KEY:外部码列名;REFERENCES:引用的外部码的表名和列名 CKECK :指定表级约束条件。

  8. 练习1:在数据库student中创建stu_info表,表中包括:学号、姓名、出生年月、性别、地址、电话号码、邮编,所在系代号,每月生活补贴等。练习1:在数据库student中创建stu_info表,表中包括:学号、姓名、出生年月、性别、地址、电话号码、邮编,所在系代号,每月生活补贴等。 USE student CREATE TABLE stu_info ( 学号 char(10) NOT NULL PRIMARY KEY, 姓名 char(8) NOT NULL, 出生年月 datetime NULL, 性别 char(2) NOT NULL default('女'), 地址 char(20), 电话号码 char(12), 邮编 char(6), 系代号 tinyint, 每月生活补贴 money ) go

  9. 创建数据表时使用默认值、约束 CREATE TABLE stu1 (stuid CHAR(8) PRIMARY KEY, stuname CHAR(8), stusex CHAR(2) default('男'), stuage int check(stuage>=0 and stuage<=100) default 20, studept varchar(30) )

  10. 练习:以本章学生-课程数据库为例,创建学生-课程库及以下内容: 学生表:Student(Sno,Sname,Ssex,Sage,Sdept) 课程表:Course(Cno,Cname,Cpno,Ccredit) 学生选课表:SC(Sno,Cno,Grade)

  11. 2)修改数据表 当创建了一个表后,随着应用环境和应用需求的变化,有时需要对表结构、列的属性进行修改,对于一个已经存在的表可以进行的修改操作有: 1) 更改表名 2) 增加字段、删除字段 3) 修改已有字段的属性(字段名、数据类型、长度、是否为空值)

  12. T-SQL中对数据表进行修改的语句是ALTER TABLE,基本语法是:

  13. 在表student中增加新字段“院系“、“班级名称“;在表student中增加新字段“院系“、“班级名称“; • 修改表XS中已有字段的属性:将字段名为“姓名”的字段长度由原来的8改为10;将字段名为“出生时间”的字段的数据类型由原来的datetime改为smalldatetime; • 修改XS中字段“专业名”长度为20;

  14. 3)删除数据表 • T-SQL中对表进行删除的语句是DROP TABLE,该语句的语法格式为: DROP TABLE table_name 其中table_name是要被删除的表名。 例如,要删除表XS,使用的T-SQL语句为: DROP TABLE XS GO

  15. 提高篇 • 修改表中某个字段名称为新名称,如name修改为stuname;(建议使用sp_rename) Use test Exec sp_rename‘table.column_name’,’new_column_name’ • 修改数据表名称 Use test Exec sp_rename ‘old_table_name’,’new_table_name’

  16. 二、管理表数据 • 插入数据 INSERT • 修改数据 ALTER • 删除数据 DELETE

  17. 1、插入表数据 • 插入一个元组基本格式 INSERT INTO <表名>[(<列名>[,<列名>…])] VALUES(<表达式>[,<表达式>……]) • 插入一个查询结果 INSERT INTO <表名>[(<列名>[,<列名>…])] <SELECT查询>

  18. 插入操作举例 • 插入一个完整的元组 INSERT INTO Student VALUES(‘200215121’,‘李勇’,‘男’,20,’CS’) • 插入一个不完整的元组 INSERT INTO Student(Sno,Sname)VALUES(‘200215122’,‘刘晨') • 插入一个查询结果 INSERT INTO Student2 ( SELECT * FROM Student)

  19. 插入数据时注意事项 • 新插入记录应与表结构定义匹配; • 列名项数与提供值的数目应匹配; • 可以指定列值为Null ; • INTO子句中没有出现的属性列,新记录在这些列上将取空值(Null)或默认值; • 如果INTO子句中没有指明任何列名,则新插人的记录必须在每个属性列上均有值,且顺序应与表中属性列顺序一致。

  20. 练习 • 向Stedent表中插入一条记录(’200501‘,’李勇‘) • 向Stedent表中插入记录(’200502‘,’男‘)和(’200503‘,’女‘) • 向Stedent表中插入记录(’200504‘,’刘晨‘)和(’200505‘,’女‘)

  21. 2、修改表数据 • 基本格式 Update table_name Set <列名1>=<表达式> [, <列名2>=<表达式>] … [[FROM <表名>] where <逻辑表达式>] • 说明: • 一次可以更新多个属性的值; • 更新的条件可以与其他的表相关(使用FROM指定); • 如果省略where语句,则表示要修改表中的所有记录。

  22. 三种修改方式 1. 修改某一个元组的值 2. 修改多个元组的值 3. 带子查询的修改语句 • 在修改之前建议先查看表记录(Select * from table)

  23. 查看数据表Student所有记录 SELECT * FROM Student • 查看数据表Student中字段学号、姓名的所有记录 SELECT Sno,Sname FROM Student • 给学号为200215122的学生年龄增加1岁 UPDATE Student SET Sage = Sage+1 WHERE Sno=’200215122‘ • 给CS系的男同学年龄增加1岁 UPDATE Student SET Sage = Sage+1 WHERE Sdept=’CS‘ and Ssex=’男‘

  24. 给所有课程的学分提高1分 UPDATE Course SET Ccredit = Ccredit +1 • 将学号为200515121同学的姓名,性别,年龄分别设置为(张三,男,20) UPDATE Student SET 姓名=‘张三’,性别=‘女’,年龄=20 WHERE Sno=‘200515121’ • 给CS系的学生的选课成绩增加10分 UPDATE SC SET Grade= Grade+10 WHERE Sno= (SELECT Sno FROM Student WHERE Student.Sdept =‘CS’)

  25. 练习 • 将数据表student中学号为200215121的记录的性别及所在系的字段值改为(女,IS); • 将数据表SC中所有记录的成绩的字段值增加10%; • 将数据表Student中姓名中姓“王”的记录年龄增加1; • 将选修课程号为1的记录的成绩字段值增加10 ,其他记录的成绩字段值增加5;

  26. 3、删除表数据 • 基本格式 Delete from table_name [where <逻辑表达式>] • DELETE命令从指定的表中删除满足“逻辑表达式”条件的元组; • 如果没有指定删除条件则删除表中的全部元组,所以在使用该命令时要格外小心; • DELETE命令只删除元组,它不删除表或表结构。

  27. 练习 • 将数据表Student中学号为2005001的记录删除; • 将数据表Student中性别不为“女”的记录删除; • 将数据表Student 中院系为null的记录删除; • 将数据表Student 中CS系年龄小于20的男同学的记录删除;

  28. 总结 • 命令方式下管理数据表 • 命令方式创建、修改、删除表 • 管理表数据 • 插入数据 • 更新数据 • 删除数据

More Related