100 likes | 195 Views
实验 2:SQL 语言基础. 1. 实验目的 熟练使用 SQL 语句对数据库进行数据查询 (Data Query), 数据定义 (Data Definition), 数据更新 (Data Update) 和数据控制 (Data Control) 等操作. 2. 实验原理 (1). 数据定义语言 (DDL) ① 基本表的创建 SQL 使用 CRAEATE TABLE 语句创建基本表 , 一般格式为 : CREATE TABLE[ 模式名 ]< 基本表名 >(< 列名 >< 数据类型 >[ 列级完整性约束条件 ]
E N D
实验2:SQL语言基础 1.实验目的 • 熟练使用SQL语句对数据库进行数据查询(Data Query),数据定义(Data Definition),数据更新(Data Update)和数据控制(Data Control)等操作.
2.实验原理 (1).数据定义语言(DDL) ①基本表的创建 • SQL使用CRAEATE TABLE语句创建基本表,一般格式为: • CREATE TABLE[模式名]<基本表名>(<列名><数据类型>[列级完整性约束条件] • [, >(<列名><数据类型>[列级完整性约束条件]] … • [, [表级完整性约束条件]) • 其中[……]内的内容” ……”是可选项,<基本表名>是所要定义的基本表名称
创建基本表的同时通常还需要定义与该表相关的完整性约束条件,这些完整性约束条件被存储在DBMS的数据字典中,当用户操作基本表中的数据时,由DBMS自动检查该操作是否违反预先设定的这些完整性约束条件创建基本表的同时通常还需要定义与该表相关的完整性约束条件,这些完整性约束条件被存储在DBMS的数据字典中,当用户操作基本表中的数据时,由DBMS自动检查该操作是否违反预先设定的这些完整性约束条件 • 如果完整性约束条件涉及该基本表的多个属性列,则必须将其定义在表级上,否则可以定义在列级上也可以定义在表记上
②基本表的插入 A.增加属性列 • 增加新的属性列使用ALTER…ADD…语句,其基本格式为: • ALTER TABLE<基本表名>ADD<新列名><数据类型>[完整性约束条件] • [ALTER COLUMN<列名><数据类型>] • 其中,<表名>是要修改的基本表名称,ADD子句用于增加新列和新的完整性约束条件,DROP CONSTRAINT子句用于取消完整性约束条件,ALTER COLUMN子句用于更改
B.删除属性列 • 删除已有的属性列使用ALTER…DROP …语句,其基本格式为: • ALTER TABLE<基本表名>DROP<属性列名>[CASCADE|PESTRAIN],其中,CASCDE表示在基本表删除某属性列时,所有引用到该属性列时,所有引用到该属性列的视图和约束也要一起自动删除;而PRSTRICT表示在没有视图或约束引用该属性列时,才可以在基本表删除该列,否则就拒绝删除操作 C.修改属性列: • 修改已有的属性列的类型及宽度使用ALER…MODIFY…语句,其基本格式为: • ALTER TABLE<基本表名>MODIFY<属性列名><类型>
③基本表的撤消 • SQL使用DROP TABLE语句撤消基本表,其基本格式为: • DROP TABLE<基本表名>[CASCADE|RESTRAIN> (2)数据查询 • 一般查询语句格式为: • SELECT[ALL|DISTINCT]<列名>[,<列名>… FROM<基本表名或视图名>[,<基本表名或视图名>] … [WHERE<逻辑条件式>] [GROUP BY<列名1>[HABING<逻辑表达式>]] [ORDER BY<列名2>[ASC|DESC]] • 上述整个映像语句的含义是: 首先,根据WHERE子句的条件表达式明确选择的条件: 其次,从FROM子句指定的基本表或视图中找出满足条件的元组: 最后,再按SELECT子句中的目标列表达式,选出元组中的属性值形成结果关系表
说明:SQL的查询中可以插入一些常用的统计功能,它们能对集合中的元素做下列计算.说明:SQL的查询中可以插入一些常用的统计功能,它们能对集合中的元素做下列计算. • COUNT:集合元素个数统计. • SUM:集合元素的和(仅当元素为数值型) • AVG集合元素的平均值(仅当元素为数值型) • MAX集合中元素的最大值(仅当元素为数值型) • MIN集合中元素的最小值(仅当元素为数值型) • 以上5个函数被称为总计(聚集)函数(Aggregate Function),这些函数以相应的集合为其变域,而以数值为其值域
(3)数据更新 SQL的更新功能包括删除,插入及修改三种操作 ①数据删除 • SQL的删除语句一般形式: • DELETE FROM <基本表名> WHERE <条件> • 其中DELETE指明该语句为删除语句,FROM与WHERE的含义与映像语句中相同,而整个语句的含义表示为“从指定表中删除满足WHERE子句条件的所有元组”. • 如果省略WHERE子句,则表示删除表中的所有元组,但表的定义仍然在数据字典中,即DELETE语句使表称为空表.对于省略了WHERE子句的删除语句,用户使用起来必须慎重.
②数据插入 • SQL插入语句的一般形式为: • INSERT INTO<基表名>[<列名>[,<列名>] …] VALUES (<常量>[<常量>] …)|<子查询> • 该语句的含义是执行一个插入操作,将VALUES所给出的值INTO所指定的表中 • ③数据修改 • SQL修改语句的一般形式为: • UPDATE<基本表名> SET <列名>=表达式[,<列名>=表达式] …> WHERE<逻辑条件> • 该语句的含义是修改(UPDATE)指定基本表中满足(WHERE)逻辑条件的元组,并把这些元组按照SET子句中的表达式修改相应列上的值.
3.实验内容 • ①为XSXK数据库创建三个表:S(SID,SN,SA,SE,SD),C(CID,CN),SC(SID,CID,G).其中S表示学生信息表,SID表学号,SN表示学生姓名,SA表示学生年龄,SE表示学生性别,SD表示学生所在的系别:C表示课程信息表,CID表示课程编号,CN表示课程名称;SC表示学生选棵关系,G表示课程的考试成绩. • ②将一个学生新记录(SID:35,Sn;张三,Sa:20,Se:男,Sd:物理)插入到表S中.(字符串用单引号) • ③将一个课程记录(CID: 10,CN:数学)插入到表C中. • ④将一个选课记录(SID:35,CID:10,G;88)插入到表SC中. • ⑤将学号为35的学生系别改为计算机. • ⑥删除计算机系全体学生的选课记录. 4.领先一步: • 往三张表中加入更多的数据记录,测试数据库的实体、参照完整性;尝试更多的复杂查询语句,如:查询选修了张三所选全部课程的同学列表;…