数据库实验二SQL查询语句实践

合集下载

实验二SQL语言——数据查询操作

实验二SQL语言——数据查询操作

实验二SQL语言——数据查询操作SQL (Structured Query Language) 是一种用于管理关系数据库系统的标准语言。

在数据查询操作方面,SQL 可以帮助用户从数据库中检索想要的数据,通过下面的实验,我们将深入了解 SQL 语言在数据查询操作中的应用。

一、SELECT语句SELECT语句是SQL中最常用的语句之一,它用于从数据库中选择需要查询的数据。

SELECT语句的基本语法如下:```SELECT列名1,列名2,...FROM表名;```例如,我们有一个名为 "Students" 的表,其中包含了学生的姓名、年龄和性别等信息。

要查询学生的姓名和年龄,我们可以使用以下SELECT 语句:```SELECT 姓名, 年龄 FROM Students;```二、WHERE子句WHERE子句用于在SELECT语句中添加过滤条件,只返回满足条件的数据。

下面是WHERE子句的基本语法:```SELECT列名1,列名2,...FROM表名WHERE条件;```例如,我们要查询年龄大于等于18岁的学生信息,可以使用以下SELECT语句:```SELECT * FROM Students WHERE 年龄 >= 18;```三、ORDERBY子句ORDERBY子句用于按照指定的列进行排序,可以按照升序或降序排列。

下面是ORDERBY子句的基本语法:```SELECT列名1,列名2,...FROM表名ORDERBY列名[ASC,DESC];```例如,我们要按照学生的年龄从小到大排序,可以使用以下SELECT语句:```SELECT * FROM Students ORDER BY 年龄 ASC;```四、GROUPBY子句GROUPBY子句用于将查询结果按照一个或多个列进行分组,并对每个组进行聚合操作。

下面是GROUPBY子句的基本语法:```SELECT列名1,列名2,...FROM表名GROUPBY列名1,列名2,...;```例如,我们要统计每个性别的学生人数```SELECT 性别, COUNT(*) FROM Students GROUP BY 性别;```五、HAVING子句HAVING子句用于在GROUPBY子句中添加过滤条件,只返回满足条件的分组。

实验2、SQL的数据查询

实验2、SQL的数据查询

实验2、SQL的数据查询实验2、SQL的数据查询2.1 实验目的熟悉SQL语句的数据查询语言,能够SQL语句对数据库进行单表查询、连接查询、嵌套查询、集合查询和统计查询。

2.2 实验内容实验内容主要是对数据库进行查询操作,包括如下四类查询方式:〔1〕单表查询? 查询的目标表达式为所有列、指定的列或指定的列的运算三种不同。

? 使用DISTINCT保存字消除重复行。

? 对查询结果排序和分组。

? 集合分组使用集函数进行各项统计。

〔2〕连接查询? 笛卡儿连接和等值连接。

? 自连接。

? 外连接? 复合条件连接。

? 多表连接。

〔3〕嵌套查询? 通过实验验证对子查询的两个限制条件。

? 体会相关子查询和不相关子查询的不同。

? 考察四类谓词的用法,包括:第一类,IN、NOT IN;第二类,带有比拟运算符的子查询;第三类,SOME、ANY或ALL谓词的子查询,查询最大值和最小值;第四类,带有EXISTS谓词的子查询,实现“所有〞等情况〔如王宏的“所有〞课程,“所有〞女生选修的课程〕〔4〕集合运算? 使用保存字UNION进行集合或运算。

? 采用逻辑运算符AND或OR来实现集合交和减运算。

2.3 实验步骤以University_Mis数据库为例,该数据库中有四张如实验1,其中Score是每门课的考试成绩,Scredit是学生所有考试合格课程所获得的积分总数,Ccredit每门课程的学分数。

在数据库中,存在这样的联系:学生可以选择课程,一个课程对应一个教师。

在表Reports中保存学生的选课记录和考试成绩。

请先输入如下符合条件的元组后,再对数据库进行有关的查询操作:图1.1、Students表图1.2、Teachers表图1.3、Courses表图1.4、Reports表〔1〕查询性别为“男〞的所有学生的名称并按学号升序排列。

〔2〕查询学生的选课成绩合格的课程成绩,并把成绩换算为积分。

积分的计算公式为:[1+(考试成绩-60)*0.1]*Ccredit。

SQL实验二:数据库查询实验报告

SQL实验二:数据库查询实验报告

实验二数据库的查询实验实验目的和要求(1)掌握SQL Server查询分析器的使用方法,加深对SQL和Transact-SQL语言的查询语句的理解。

(2)熟练掌握简单表的数据查询、数据排序和数据连接查询的操作方法。

(3)熟练掌握数据查询中的分组、统计、计算和组合的操作方法。

实验内容和原理在实验一定义的“学生成绩数据库”中,使用T-SQL 语句完成以下查询:(1 )求计算机系学生的学号和姓名。

(2)求选修了数学的学生学号、姓名和成绩。

(3)求选修01 课程的学生学号和成绩,并要求对查询结果按成绩降序排列,如果成绩相同则按学号升序排列。

(4)查找选修课程的平均成绩位于前三名的学生的学号。

(5)查询计算机系的姓刘且单名的学生的信息。

(6)查询至少选修两门课程的学生学号。

(7)查询学生的学号、课程号以及对应成绩与所有学生所有课程的最高成绩的百分比。

(8)查询选修“数据库”课程,且成绩在80 分以上的学生的学号和成绩。

(9)查询所有姓“王”的同学没有选修的课程名。

(请分别用exists和in完成该查询) (10)查询选修了全部课程的学生的姓名。

(请至少写出两种查询语句)(11)求选修了学生“ 95001”所选修的全部课程的学生学号和姓名。

(12)查询每一门课的间接先修课。

(13)列出所有学生所有可能的选课情况。

(14)列出每个学生的学号及选修课程号,没有选修的学生的学号也一并列出。

(15)输出与“张三”同性别并位于同一个系的所有同学的姓名。

(请至少写出两种查询语句)(16)查询至少被两名男生选修的课程名。

(17)对被两名以上学生所选修的课程统计每门课的选课人数。

要求输出课程号和选修人数,查询结果按人数降序排列;若人数相同,按课程号升序排列。

(18)列出选修课程超过 3 门的学生姓名及选修门数。

(19)检索至少选修课程号为01 和03 的学生姓名。

(20)检索至少选修课程“数学”和“操作系统”的学生学号。

(21 )查询‘操作系统'课程的最高分的学生的姓名、性别、所在系(22)查询数据结构的成绩低于操作系统的成绩的学生姓名及该生的这两门课的成绩(23)所有成绩都在70 分以上的学生姓名及所在系。

实验二 写出VFP数据库中相关SQL查询语句

实验二 写出VFP数据库中相关SQL查询语句

实验一Access 数据库操作班级:学号:姓名:【实验目的】:1. 掌握Visual FoxPro数据库中的SQL查询语句书写规则;2. 用select数据查询、create定义表、视图及用alter修改数据。

【实验环境】:硬件:计算机软件:windows XP操作系统和Visual FoxPro 6.0数据库管理系统。

【实验要求】:1、根据题目要求完成相关命令操作;2、在“操作依据”处写出SQL查询的命令结构和功能;3、将完整的SQL命令写到“SQL操作命令”中的相应位置。

4、本实验完成后,请发送到邮箱:wenqinhui@中作为本学期的第二次作业。

【操作依据】:1、单表查询Select <查询内容> from <表> where <查询条件> order by <排序字段> Asc|desc group by <分组字段> having <分组条件>2、连接查询(多表)(1) Select <查询内容> from <表1,表2……> where <连接条件> and <查询条件> order by <排序字段> Asc|desc group by <分组字段> having <分组条件>(2) Select <查询内容> from <表1 join 表2 join 表3……>;on 表1.XX=表2.XX;on 表2.YY=表3.YY;where <查询条件> order by <排序字段> Asc|desc group by <分组字段>;having <分组条件>3、插入记录(1)向指定表中插入记录的命令格式:Insert into <表>(字段名1,字段名2,……) values(字段值1,字段值2,……)(2)从指定数据组中插入记录值的命令格式:Insert into <表> from array <数据组名>4、更新数据Update <表> set <字段>=修改后的字段值 where <更新条件>5、用命令创建数据库和表建立数据库:Create database <数据库名>建立表:Create table|dbf <表名>(字段及类型)Check <有效性规则> [Error <提示信息>]Default <默认值>Primary key <主索引>Foreign key <普通索引> TAG <外表主索引字段> references <外部表名> 【SQL语句命令】:1、用SQL命令向“客户”表中插入一条记录。

数据库实训课程学习总结实践SQL查询与数据库管理

数据库实训课程学习总结实践SQL查询与数据库管理

数据库实训课程学习总结实践SQL查询与数据库管理在数据库实训课程的学习过程中,我深入了解了SQL查询与数据库管理的基本原理和操作技巧。

通过实践操作,我逐渐掌握了SQL语言的基本语法和常用命令,熟悉了数据库的创建、备份与恢复、索引优化等管理技术。

本文将对我在数据库实训课程中的学习经历与心得进行总结,提供给同学们参考与交流。

1. 实践SQL查询在数据库实训课程中,我首先学习了SQL语言的基本语法和常用命令,了解了如何使用SELECT、INSERT、UPDATE和DELETE等命令进行数据的查询、插入、更新和删除。

在实践过程中,我发现了一些查询优化的技巧。

首先,合理选择WHERE子句中的条件和逻辑运算符。

我通过分析查询需求,尽量减少WHERE子句中的条件数量,避免不必要的逻辑运算符。

此外,我还学会了使用索引来加速查询操作,提高查询性能。

其次,合理使用JOIN操作连接多个数据表。

在实践过程中,我遇到了需要连接两个或多个数据表的情况。

通过学习JOIN操作,我可以根据不同的连接关系选择适合的JOIN类型,并且编写出高效的JOIN查询语句。

最后,学会使用子查询进行复杂查询。

子查询是SQL语言的一个重要特性,通过嵌套查询语句,我可以从多个数据表中获取需要的数据,并且可以进行更复杂的条件筛选和排序。

通过实践操作,我逐渐掌握了子查询的使用技巧,提升了查询的灵活性。

2. 数据库管理操作除了SQL查询,数据库实训课程还涉及到了数据库的管理操作。

在实践过程中,我学习了如何创建数据库、备份和恢复数据库、以及优化数据库的性能。

首先,我学会了使用CREATE DATABASE语句创建数据库。

通过指定数据库的名称、字符集和校对规则等参数,我可以在数据库管理系统中创建一个新的数据库。

其次,我了解了数据库备份和恢复的操作。

通过学习备份和恢复的基本原理和方法,我可以对数据库进行定期备份,以防止数据丢失。

同时,当数据库发生故障时,我也可以通过恢复操作将数据库恢复到正常状态。

SQL数据库实验报告实验二

SQL数据库实验报告实验二

SQL数据库实验报告实验二第一篇:SQL数据库实验报告实验二实验2SQL Server数据库的管理1.实验目的(1)了解SQL Server 数据库的逻辑结构和物理结构的特点。

(2)掌握使用SQL Server管理平台对数据库进行管理的方法。

(3)掌握使用Transact-SQL语句对数据库进行管理的方法。

2.实验内容及步骤(1)在SQL Server管理平台中创建数据库。

① 运行SQL Server管理平台,在管理平台的对象资源管理器中展开服务器。

② 右击“数据库”项,在快捷菜单中选择“新建数据库”菜单项。

在新建数据库对话框的数据库名称文本框中输入学生管理数据库名studentsdb,单击“确定”按钮。

(2)选择studentsdb数据库,在其快捷菜单中选择“属性”菜单项,查看“常规”、“文件”、“文件组”、“选项”、“权限”和“扩展属性”等页面。

(3)打开studentsdb数据库的“属性”对话框,在“文件”选项卡中的数据库文件列表中修改studentsdb数据文件的“分配的空间”大小为2MB。

指定“最大文件大小”为5MB。

修改studentsdb数据库的日志文件的大小在每次填满时自动递增5%。

(4)单击“新建查询”打开查询设计器窗口,在查询设计器窗口中使用Transact-SQL语句CREATE DATABASE创建studb数据库。

然后通过系统存储过程sp_helpdb查看系统中的数据库信息。

(5)在查询设计器中使用Transact-SQL语句ALTER DATABASE 修改studb数据库的设置,指定数据文件大小为5MB,最大文件大小为20MB,自动递增大小为1MB。

(6)在查询设计器中为studb数据库增加一个日志文件,命名为studb_Log2,大小为5MB,最大文件大小为10MB。

(7)使用SQL Server管理平台将studb数据库的名称更改为student_db。

(8)使用Transact-SQL语句DROP DATABASE删除student_db数据库。

数据库实验报告-使用SQL语句操作数据

数据库实验报告-使用SQL语句操作数据数据库原理实验报告实验名称:实验二使用SQL语句操作数据实验时间:2013.4.16学生姓名:班级:软件学号:一、实验目的1、熟悉SQL Server 2005的基本环境2、使用对象资源管理器管理数据库、基本表、视图、索引等对象3、锻炼学生对SQL Server 2005基本操作能力二、实验内容1、使用对象资源管理器创建SPJ数据库(1)更改主数据库文件的增长模式,改为按5MB自动增长;(2)更改事务日志文件的增长模式,改为按1MB自动增长。

2、在数据库中创建S, P, J, SPJ四个关系模式:S ( SNO, SNAME, STATUS, CITY )P(PNO, PNAME, COLOR, WEIGHT)J(JNO, JNAME, CITY)SPJ(SNO, PNO, JNO, QTY)【说明:供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成;零件表P由零件代码(SNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成;工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)组成;供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成。

】3、建立数据库关系图。

将建好的数据库和表转化为SQL语句,以sql脚本方式保存。

4、使用对象资源管理器向表中插入下列数据。

SP表5、使用SQL语言完成如下操作:1)求供应工程J1零件的供应商号码SNO。

2)求供应工程J1零件P1的供应商号码SNO。

3)求供应工程J1零件为红色的供应商号码SNO。

4)求没有使用天津供应商生产的红色零件的工程号JNO。

5)求至少用了供应商S1所供应的全部零件的工程号JNO。

6)找出所有供应商的姓名和所在城市。

7)找出所有零件的名称、颜色、重量。

数据库实验报告-SQL语句查询

《数据库原理》实验报告(实验名称:SQL查询语句)一、实验目的数据查询语句是SQL语句的重要组成部分,是编程人员与数据库管理人员必不可少的工具,通过实验达到以下目的:(1)掌握SELECT 语句的基本语法,加深学生对查询语句基本概念的理解。

(2)掌握简单的单表查询。

(3)掌握连接查询。

二、实验内容:实验数据:实验二所建的数据库及表,实验三录入表中的数据。

1、简单查询(1)若干列或行的选择(2)*、distinc、between…and… 、 in、 like等运算符的使用(3)计算列、常量或空值的查询(4)查询结果排序和分组2、连接查询(1)内连接和自身连接(2)外连接(3)复合条件连接(4)多表连接(5)对表和列使用别名三、实验环境SQL server 2000,pc机一台四、程序源码与运行结果1.查询所有学生的全部信息2. 查询全体学生的学号与姓名3 查询年龄在20岁以下的学生姓名及其出生年份,并为出生年份加上标题4 查询选修了课程的学生学号,并消除重复行5 查询年龄在20~23岁的学生信息(用between… and…表示查询条件)6 查询全体学生情况,查询结果按班级编号升序排列,同一班的学生按年龄降序排列7 查询所有姓赵学生的姓名、学号和性别8 查询名字中第2个字为“小”字的学生姓名9 查询电气信息工程学院(dx) 和计算机学院(jsj)的学生(要求:使用IN关键字表示查询条件10 查询没有考试成绩的学生学号和课程号11 查询有2门以上课程是90分以上的学生的学号及(90分以上的)课程数(先用group by 分组,再用Having限定分组条件)12 查询学生总人数13 查询学号为‘’学生的平均成绩和总成绩,并为总成绩和平均成绩取别名。

14 查询c01号课程的最高分数和最低分15 查询没有考试成绩的学生学号和课程号16 查询全体学生的姓名、选修的课程名及成绩17 查询每个学生及其选修课程情况的所有信息(用*表示字段18 查询某门课程考试成绩相同的学生学号和课程名,并为各个表取别名19 查询与“张三”在一个系学习的学生(IN)20 查询选修了“数据结构”的学生学号和姓名五、实验总结列名写错:修改列名:心得体会:通过实验,了解了一些基本的查询操作,会一些的基本操作。

SQL查询实验报告

SQL查询实验报告实验题目:sql查询——简单查询【实验目的与要求】一、实验目的1. 熟练掌握单表查询的select语法结构;2. 通过观察查询结果, 体会select语句的实际应用。

二、实验要求1.实验前做好上机实验的准备,针对实验内容,认真复习与本次实验有关的知识,完成实验内容的预习准备工作。

2.能认真独立完成实验内容。

3.实验后做好实验总结,根据实验情况完成实验报告。

【实验环境】pc机、windows xp系统+sql server 2005 【实验内容】基于实验一建立的educ 数据库,用transact-sql 语句实现如下查询:1.选修了课程的学生学号;2.计算机系的学生;3.计算机系学生的学号和姓名;4.计算机系和信息系的男生信息;(提示:逻辑运算符的优先级顺序)5.选修上课编号为1且成绩在80-90 之间的学生学号和成绩,并将成绩乘以系数0.75输出;(提示:新输出项要命名列标题)6.没有成绩的学生的学号和上课编号;7.选修上课编号为1或4的学生的学号和成绩,并要求对查询结果按成绩的降序排列,如果成绩相同则按学号的升序排列;(提示:查询输出哪几项)8.1995年1月1日(含)以后出生的学生信息,并按姓氏拼音字母顺序从前往后排列(注:默认排序规则通常是chinese_prc_ci_as,汉字按照汉语拼音的字典顺序来排序:首先按拼音,拼音相同按声调,声调相同按笔画数。

)9.姓李和刘的学生的信息;10.不姓张王李刘的学生的学号、姓名和性别;11.选修课程的学生人数;12.选修上课编号为1的学生的最高分;13.每位学生所修课程的平均分;14.选修两门以上课程的学生;15.总成绩大于200 分的学生的学号和总成绩。

(提示:group by分组统计)【实验方法和步骤】1.新建查询,在查询编辑器中依次按照如上实验内容编写select 语句完成查询。

2.每执行一条查询语句,在查询结果网格中查看执行结果是否正确。

数据库查询操作实训报告

一、实训目的本次实训旨在通过实际操作,加深对数据库查询语言(SQL)的理解和应用,掌握基本的查询技巧,包括单表查询和多表查询,并能灵活运用各种查询条件、聚合函数、连接操作等,以提高数据检索和处理的能力。

二、实训内容1. 实训环境- 数据库管理系统:MySQL 5.7- 实训数据:使用自建或提供的数据库实例,包含多个表,如用户表、订单表、商品表等。

2. 实训步骤(1)单表查询- 查询所有字段:`SELECT FROM 表名;`- 查询指定字段:`SELECT 字段1, 字段2 FROM 表名;`- 查询指定记录:`SELECT FROM 表名 WHERE 条件;`- 带IN关键字的查询:`SELECT FROM 表名 WHERE 字段 IN (值1, 值2, ...);`- 带BETWEEN AND的范围查询:`SELECT FROM 表名 WHERE 字段 BETWEEN 值1 AND 值2;`- 带LIKE的字符匹配查询:`SELECT FROM 表名 WHERE 字段 LIKE '模式';`- 查询空值:`SELECT FROM 表名 WHERE 字段 IS NULL;`- 带AND的多条件查询:`SELECT FROM 表名 WHERE 条件1 AND 条件2;`- 带OR的多条件查询:`SELECT FROM 表名 WHERE 条件1 OR 条件2;`- 关键字DISTINCT(查询结果不重复):`SELECT DISTINCT 字段 FROM表名;`- 对查询结果排序:`SELECT FROM 表名 ORDER BY 字段 [ASC|DESC];`- 分组查询(GROUP BY):`SELECT 字段1, 字段2, ... FROM 表名GROUP BY 字段1, 字段2, ...;`- 使用LIMIT限制查询结果的数量:`SELECT FROM 表名 LIMIT 起始位置, 数量;`- 集合函数查询:`SELECT COUNT(), SUM(), AVG(), MAX(), MIN() FROM 表名;`(2)多表查询- 为表取别名:`SELECT 表1.字段1, 表2.字段2 FROM 表1 AS t1, 表2 AS t2 WHERE t1.字段1 = t2.字段2;`- 普通双表连接查询:`SELECT FROM 表1, 表2 WHERE 表1.字段1 = 表2.字段1;`- 内连接查询:`SELECT FROM 表1 INNER JOIN 表2 ON 表1.字段1 =表2.字段1;`- 左外连接查询:`SELECT FROM 表1 LEFT JOIN 表2 ON 表1.字段1 = 表2.字段1;`- 右外连接查询:`SELECT FROM 表1 RIGHT JOIN 表2 ON 表1.字段1 = 表2.字段1;`- 复合条件连接查询:`SELECT FROM 表1 INNER JOIN 表2 ON 表1.字段1 = 表2.字段1 AND 表1.字段2 = 表2.字段2;`- 子查询:`SELECT FROM 表1 WHERE 字段1 IN (SELECT 字段2 FROM表2 WHERE 条件);`(3)高级查询- 查询涉及多级联表:`SELECT FROM 表1 AS t1 INNER JOIN 表2 AS t2 ON t1.字段1 = t2.字段1 INNER JOIN 表3 AS t3 ON t2.字段2 = t3.字段1;`- 查询涉及多条件、多表的复杂条件:`SELECT FROM 表1 AS t1 INNER JOIN 表2 AS t2 ON t1.字段1 = t2.字段1 WHERE t1.字段2 = '条件1' OR t2.字段3 = '条件2';`- 查询涉及聚合函数和分组:`SELECT COUNT(), AVG(字段), MAX(字段), MIN(字段) FROM 表1 AS t1 INNER JOIN 表2 AS t2 ON t1.字段1 = t2.字段1 GROUP BY t1.字段1;`3. 实训要求- 熟练掌握单表查询和多表查询的各种技巧。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

昆明理工大学信息工程与自动化学院学生实验报告(2012 —2013学年第一学期)课程名称:数据库系统教程开课实验室:信自楼445 2011年 11 月 21日年级、专业、班计科学号姓名成绩实验项目名称SQL查询语句实践指导教师丁教师评语教师签名:年月日注:报告内容按实验须知中七点要求进行。

一、实验目的(1)创建数据库、基本表的创建、修改、和撤销(2)SQL的数据更新(数据的插入、删除、修改)(3)创建视图、修改、删除视图、通过视图修改数据(4)对基本表建立主键、外键约束二、所用仪器、材料(设备名称、型号、规格等)PC:win7兼容性计算机一台软件:Microsoft SQL Server 2008三、实验方法、步骤(1)创建数据库、基本表的创建、修改、和撤销(2)SQL的数据更新(数据的插入、删除、修改)(3)创建视图、修改、删除视图、通过视图修改数据(4)对基本表建立主键、外键约束(5)修改表中相关数据验证数据完整性四、实验过程原始记录(数据、图表、计算等)(1)创建数据库、基本表的创建、修改、和撤销①创建数据库、基本表的创建CREATE DATABASE WANGJIUSE WANGJICREATE TABLE S(S#char(15)not null,SNAME char(10)not null,AGE int,SEX char(2),SDEPT char(4),PRIMARY KEY(S#))CREATE TABLE C(C#varchar(50)not null,CNAME varchar(50)not null,TEACHER varchar(50),Ccredit int not null,PRIMARY KEY(C#))CREATE TABLE SC(S#char(15)not null,C#varchar(50)not null,GRADE int,PRIMARY KEY(S#,C#),FOREIGN KEY(S#)REFERENCES S(S#),FOREIGN KEY(C#)REFERENCES S(C#))②基本表的修改、和撤销1.在S表中增加一个地址(ADDRESS)列,可用如下语句:ALTER TABLE S ADD ADDRESS VARCHAR(50)2.在S表中删除一个地址(ADDRESS)列,可用如下语句:ALTER TABLE S DROP ADDRESS CASCADE3.如果是多列,还要为每一列取一个名字:SELECT人数,平均分,最低分FROM(SELECT S.S#,COUNT(*)人数,AVG(GRADE)平均分,MIN(GRADE)最低分FROM SC,SWHERE S.S#=SC.S#AND SEX='男'GROUP BY S.S#HAVING COUNT(*)>='5'AND MIN(GRADE)>='65'AND AVG(GRADE)>='70')M4.把表中姓张的查出来(有两种写法):SELECT*FROM S--WHERE SNAME LIKE '张%'WHERE LEFT(SNAME,1)='张'5.求每个同学的平均分,学号,姓名,结果按平均分降序:SELECT S.S#,SNAME,AVG(GRADE)FROM SC,SWHERE S.S#=SC.S#GROUP BY S.S#,SNAMEORDER BY AVG(GRADE)DESC6.查询选修了2号和4号课程的学生学号和姓名:SELECT S.S#,SNAMEFROM S,SC X,SC YWHERE S.S#=X.S#AND X.S#=Y.S#AND X.C#='2'AND Y.C#='4'7.查询学习全部程的学生学号,姓名:SELECT S#,SNAMEFROM SWHERE NOT EXISTS(SELECT*FROM C WHERE NOT EXISTS(SELECT*FROM SC WHERE SC.S#=S.S#AND SC.C#=C.C#))8.查询选修了3门以上且每门成绩都在70分以上的学生的学号、姓名和总分:SELECT S.S#,SNAME,SUM(GRADE)总分FROM S,SCWHERE S.S#=SC.S#--AND GRADE>=70GROUP BY S.S#,SNAMEHAVING COUNT(*)>=3 AND MIN(GRADE)>=70ORDER BY SUM(GRADE)DESC9.查询学生选课情(没选课的也要显示):SELECT S.*,SC.*FROM S LEFT OUTER JOIN SC ON (S.S#=SC.S#)(2)SQL的数据更新(数据的插入、删除、修改)1.向SC中插入两个数据:INSERT INTO SC(S#,C#,GRADE)VALUES('201010405300','DB','75'),('201000000000','MATH','80')2.册除SC中学号为201010405300的学生的信息:DELETE FROM SCWHERE S#='201010405300'AND C#='DB'3.修改SC中学号为201000000000成绩为75分:UPDATE SCSET GRADE=75WHERE S#='201000000000'(3)创建视图、修改、删除视图、通过视图修改数据1. 创建一个STUDENT_GRADE(S#,SNAME,CNAME,GRADE) 视图:CREATE VIEW STUDENT_GRADE(S#,SNAME,CNAME,GRADE)ASSELECT S.S#,SNAME,CNAME,GRADE FROM S,SC,CWHERE S.S#=SC.S#AND SC.C#=C.C#SELECT*FROM STUDENT_GRADE2.修改STUDENT_GRADE视图:ALTER VIEW STUDENT_GRADE(S#,SNAME,CNAME)ASSELECT S.S#,SNAME,CNAME FROM S,SC,CWHERE S.S#=SC.S#AND SC.C#=C.C#SELECT*FROM STUDENT_GRADE3.删除STUDENT_GRADE视图:DROP VIEW STUDENT_GRADE3、通过视图修改数据CREATE VIEW S_MALE ASSELECT S#,SNAME,AGE FROM SWHERE SEX='男'SELECT*FROM S_MALEINSERT INTO S_MALEVALUES('102','朱启凯',20)4、对基本表建立主键、外键约束ALTER TABLE SC ADD CONSTRAINT PK_SC PRIMARY KEYCLUSTERED (S#,C#)ALTER TABLE SC ADD CONSTRAINT FK_SC_C FOREIGN KEY(C#)REFERENCES C(C#)5、修改表中相关数据验证数据完整性(1)、实体完整性规则ALTER TABLE SC ADD CONSTRAINT PK_SC PRIMARY KEYCLUSTERED (S#,C#)INSERT INTO SCVALUES(NULL,NULL,89)(2)、参照完整性规则如果属性集k是关系模式r1的主键,k也是关心模式r2中的外键,那么在r2的关系中,k的取值只有两种可能,或者为空,或者等于r1中的某个主键值。

这条规则的实质是不允许引用不存在的实体五、实验结果、分析和结论(误差分析与数据处理、成果总结等。

其中,绘制曲线图时必须用计算纸)通过本次试验我学会了创建视图、修改、删除视图、通过视图修改数据、对基本表建立主键、外键约束等。

也遇到了很多问题,比如其他同学的数据库能备份,能导入,而我也是同样的方法却不能。

后来问了很多同学也都说不知道,问了老师我才知道是数据库的拥有者不同,这也是我深刻的记忆。

还有各式各样的上机题,让我明白写出来的查询语句对不对,只有在电脑上自己实践才知道,而且记忆更加牢固、长久。

也让我知道再对数据库进行任何操作之前,都要对数据库进行备份,因为这是一个良好的习惯,也是对自己的一个保证。

学习数据库这一门课程,我感觉非常有用,在javaee课程编程中就得到了运用,而且学习这一门课很有趣,感觉能学到很多知识。

在今后的学习中,我会更加努力学习数据库,对今后的工作和学习做应该的准备,希望自己学有所成。

六、教学参考书:1、施伯乐、丁宝康、汪卫.数据库系统教程(第3版).高等教育出版社,2008年7月2、王珊、萨师煊.数据库系统概论(第四版).高等教育出版社,2006年7月3、胡孔法编著. 数据库原理及应用. 北京:机械工业出版社,20084、崔巍编著数据库系统及应用(第二版),高等教育出版社,2003.6教师必须按照上述各项内容严格要求,认真批改和评定学生成绩。

相关文档
最新文档