实验2SQL数据查询与修改

合集下载

《数据库》实验二SQL查询代码

《数据库》实验二SQL查询代码
)
)
)
);
Q23. List the names of managers who have at least one dependent.
查询至少有一个家属的部门经理姓名。
SELECT FNAME,LNAME FROM EMPLOYEE
WHERE SSN IN (
ORDER BY FNAME ASC;
Q2. 查询不重复的员工工资值。
SELECT DISTINCT SALARY FROM EMPLOYEE
Q3. 查询没有直接上司的员工姓名。
SELECT FNAME,LNAME FROM EMPLOYEE
WHERE SUPERSSN IS NULL;
查询至少参与了所有John Smith参与项目的员工姓名。
SELECT FNAME,LNAME FROM EMPLOYEE
WHERE SSN IN (
SELECT ESSN FROM WORKS_ON
WHERE PNO=ANY (
SELECT PNUMBER FROM PROJECT
Q16. Select all combinations of EMPLOYEE SSN and DEPARTMENT DNAME in the Company database.
查询Company数据库中所有员工SSN与DNAME(部门名称)的组合。
SELECT E.SSN,D.DNAME
WHERE SALARY>=30000 GROUP BY D.DNAME
HAVING COUNT(SALARY)>=2;
Q18. Retrieve the names of all employees who do not work on any project controlled by department number 5.

实验2SQL数据查询与修改

实验2SQL数据查询与修改

实验2SQL数据查询与修改实验二数据查询与修改一、实验目的1、掌握使用简单查询、连接查询以及嵌套查询完成数据查询的方法2、掌握应用SQL进行数据更新的方法;3、掌握视图的创建与更新方法。

二、实验内容第一部分:使用附加方式恢复数据库LibraryLib,完成如下各题:1、《数据库原理及应用实验指导》P45 1.数据查询练习(1)-(6)(1)查询各个超期罚款用户及其罚款总数,结果按罚款总数降序排列。

(2)查询已经超期一个月以上的还未归还图书的用户借书证编号。

(3)查询已经超期一个月以上的还未归还图书的用户名称、联系方式以及超期图书名。

(4)查询在同一天借阅了不同图书的用户借书证号。

(5)查询借书从来没有被超期罚款的用户信息。

(6)检索有图书所购册数大于或等于图书价格超过“50”的图书任一所购册数的图书的价格。

分析:先找出图书价格超过“50”的图书的所购册书假设a要查的是所购册数>= any a 的图书的价格第一部分:实验2.2 数据修改1.使用SQL语句向“用户信息表Users”中插入元组(用户标识:LiS;用户权限:1;密码:2;用户名称:李生;性别:男(0);部门:计算系;已借图书:0)。

问:本题可以省略into子句中的属性名吗?如果要省略,需要注意什么?2.向Publish(出版社信息) 表插入一条新的记录,在该记录中,出版社名为:国防工业出版社,地址为:北京市海淀大街籍海楼,出版社email为:gfgypublish@16/doc/3413645570.html,。

3.对每个出版社,求出所购图书总数和图书总价格,并把结果存入新建表“图书统计Temp_CNTBK”表中。

4.读者“ZouY”于今天通过管理员“LuoHH”借阅了一本“Visual FoxPro 及其应用系统开发”图书,使用T-SQL语句向Borrow表中插入该记录,并更改Book表中库存册书信息。

说明:本题有一定难度,请先思考如果插入这么一条记录,需要哪些信息,又如何获取到,关键是获取后将其存入一些变量中即可5.使用SQL语句将所有读者借书应归还日期向后延长一天。

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

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)检索⾄少选修课程“数学”和“操作系统”的学⽣学号。

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

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

SQL数据库实验报告数据查询南京信息工程大学实验(实习)报告实验(实习)名称数据查询实验(实习)日期11.25 得分指导教师系计算机系专业网络工程年级班次姓名学号一.实验目的1. 观察查询结果, 体会S ELECT 语句实际应用;2. 要求学生能够在查询分析器中使用S ELECT 语句进行简单查询。

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

二.实验内容1. 简单查询操作2. 连接查询操作三.实验步骤原始数据图学生表:课程表:选课表① 求计算机系的学生学号和姓名;② 求选修了课程的学生学号;③ 求选修C1 课程的学生学号和成绩,并要求对查询结果按成绩的降序排列,如果成绩相同则按学号的升序排列④ 求选修课程C1 且成绩在80-90 之间的学生学号和成绩,并将成绩乘以系数0.75 输出;⑤求计算机系和数学系的姓张的学生的信息;⑥求缺少了成绩的学生的学号和课程号。

查询每个学生的情况以及他(她)所选修的课程;求生的学号、姓名、选修的课程名及成绩选修C1 课程且成绩在90 分以上的学生学号、姓名及成绩;查询每一门课的间接先行课。

内容二一.实验目的1.掌握子查询的表示。

2.进一步掌握S QL Server 查询分析器的使用方法,加深对S QL 语言的嵌套查询语句的理解二.实验内容1)求选修了高等数学的学生学号和姓名;2)求C1 课程的成绩高于张三的学生学号和成绩3)求其他系中比计算机系某一学生年龄小的学生信息(即求其它系中年龄小于计算机系年龄最大者的学生))求其他系中比计算机系学生年龄都小的学生信5)求选修了C2 课程的学生姓名;6)求没有选修C2 课程的学生姓名;7)查询选修了全部课程的学生的姓名)求至少选修了学号为“S2”的学生所选修的全部课程的学生学号和姓名。

2.提高操作实验1) 求供应项目j4 红色零件的供应商号及名称2) 求没有上海供应商生成的零件的项目号3)至少使用了供应商S5 所供应全部零件的项目号内容三:一.实验目的1. 熟练掌握数据查询中的分组、统计、计算和组合的操作方法。

实验报告增删改查

实验报告增删改查

一、实验目的1. 掌握数据库的基本操作,包括增加、删除、修改和查询数据。

2. 熟悉SQL语言,提高数据库操作能力。

3. 培养良好的数据库管理习惯,提高数据库使用效率。

二、实验环境1. 操作系统:Windows 102. 数据库:MySQL 5.73. 编程语言:Python 3.7三、实验内容1. 创建数据库和数据表2. 增加数据3. 删除数据4. 修改数据5. 查询数据四、实验步骤1. 创建数据库和数据表(1)打开MySQL命令行工具。

(2)输入以下SQL语句创建数据库:```sqlCREATE DATABASE IF NOT EXISTS experiment;```(3)选择实验数据库:```sqlUSE experiment;```(4)创建数据表:```sqlCREATE TABLE student (id INT PRIMARY KEY,name VARCHAR(20),age INT,gender VARCHAR(10));```2. 增加数据(1)向数据表中插入数据:```sqlINSERT INTO student (id, name, age, gender) VALUES (1, '张三', 20, '男'); INSERT INTO student (id, name, age, gender) VALUES (2, '李四', 21, '男'); INSERT INTO student (id, name, age, gender) VALUES (3, '王五', 22, '女'); ```3. 删除数据(1)删除指定数据:```sqlDELETE FROM student WHERE id = 2;```(2)删除所有数据:```sqlDELETE FROM student;```4. 修改数据(1)修改指定数据:```sqlUPDATE student SET name = '赵六' WHERE id = 3;```5. 查询数据(1)查询所有数据:```sqlSELECT FROM student;```(2)查询指定字段数据:```sqlSELECT name, age FROM student WHERE gender = '男'; ```五、实验结果与分析1. 成功创建数据库和数据表,并插入数据。

数据库实验答案实验二Sql

数据库实验答案实验二Sql

(1) 查找有销售记录的客户编号、名称和订单总额。

命令:SELECT a.CustomerNo,CustomerName, sum(quantity*price) orderSumFROM OrderMaster a,OrderDetail b,Customer cWHERE b.orderNo=a.orderNo AND c.CustomerNo=a.CustomerNoGROUP BY a.CustomerNo,CustomerNameORDER BY a.CustomerNo,orderSum DESC(2) 在订单明细表中查询订单金额最高的订单。

命令:SELECT top 1 orderNo,sum(quantity*price)订单金额FROM OrderDetailGROUP BY orderNoORDER BY 订单金额DESC(3) 查询没有订购商品的客户编号和客户名称。

命令:SELECT CustomerNo,CustomerNameFROM CustomerWHERE CustomerNo NOT IN (SELECT CustomerNo FROM OrderMaster)(4) 找出至少被订购3次的商品编号、订单编号、订货数量和订货金额,并按订货数量的降序排序输出。

命令:SELECT a.productNo,orderNo,quantity,(quantity*price) moneyFROM OrderDetail a,(SELECT productNoFROM OrderDetailGROUP BY productNoHA VING COUNT(*)>=3) bWHERE a.productNo =b.productNoORDER BY a.productNo,quantity DESC被订购三件以上的……SELECT b.ProductNo,orderNo,quantity,orderSum=quantity*priceFROM OrderDetail b,(SELECT ProductNo FROM(SELECT ProductNo,sum(quantity)SQfrom OrderDetail GROUP BY ProductNo)aWHERE a.SQ>3)cWHERE b.ProductNo=c.ProductNoORDER BY b.quantity DESC(5) 使用子查询查找32M DRAM的销售情况,要求显示相应的销售员的姓名、性别,销售日期、销售数量和金额,其中性别用“男”、“女”表示。

SQL实验报告2

SQL实验报告2

数据库实验报告实验名称: SQL的数据操纵DML 任课教师:学号:姓名:完成日期: 2011-10-25 一、实验目的:1.建立基本表并进行DML操作。

2.数据查询:单表查询、连接查询、嵌套查询、集合查询和统计等功能。

3.数据更新:增加、删除、查询和修改功能二、实验内容:1.进入ORACLE的SQL*PLUS环境。

2.用Create、Insert语句建立基本表S、P、J和SPJ3.用select语句对上述四个基本表进行如下查询(1)求供应工程J1零件的供应商号码SNO(2)求供应工程J1零件P1的供应商号码SNO(3)求供应工程J1零件为红色的供应商号码SNO(4)求没有使用天津供应商生产的红色零件的工程号JNO。

(5)求至少用了供应商S1所供应的全部零件的工程号(6)找出所有供应商的姓名和所在城市(7)找出所有零件的名称、颜色、重量(8)找出使用供应商S1所供应零件的名称及其数量(9)找出工程项目J2使用的各种零件的名称及其数量(10)找出上海厂商供应的所有零件号码(11)找出使用上海产的零件的工程名称(12)找出没有使用天津产的零件的工程号码(13)列出包含sno,sname,pno,pname,jno,jname,qty属性的清单(14)统计各工程项目所用不同零件的数量(15)统计各供应商供应的各种零件数量4、用Insert、Delete和Update语句实现如下数据更新(1)把全部红色零件的颜色改成蓝色(2)由S5供给J4的零件P6改为由S3供应(3)从供应商关系中删除S2的记录,并从供应情况关系中删除相应的记录(4)请将(S2,J6,P4,200)插入供应情况关系补充实验:(1)select age count(S#)from Sgroup by age,sexhaving (count(*)>50 and sex='M')比较其中去掉sex和不去掉的结果是否一致?(2)select S.S#, SNAMEfrom S,SCWhere S.S#=SC.S# and SC.C#='001'将等于001变为不等于001,比较结果。

实验2SQL语言—SELECT查询操作

实验2SQL语言—SELECT查询操作

实验2SQL 语⾔—SELECT 查询操作实验2 SQL 语⾔—SELECT 查询操作实验⽬的要求掌握SQL 程序设计基本规范,熟练运⽤SQL 语⾔实现数据基本查询,包括单表查询、分组统计查询和连接查询。

掌握SQL 嵌套查询和集合查询等各种⾼级查询的设计⽅法等。

要求学⽣掌握SQL Server 查询分析器和T -SQL 语⾔的使⽤⽅法,熟练掌握和使⽤简单表的数据查询﹑数据排序和数据连接查询﹑嵌套查询等操作⽅法。

实验仪器设备学⽣每个⼀台PC 机已安装SQL Server 环境实验主要内容针对SQL Server 数据库设计各种单表查询语句、分组统计查询语句;设计单个表针对⾃⾝的连接查询,设计多个表的连接查询。

理解和掌握SQL 查询语句各个⼦句的特点和作⽤,按照SQL 程序设计规范写出具体的SQL 查询语句,并调试通过。

针对SQL Server 数据库,正确分析⽤户查询要求,设计各种嵌套查询和集合查询。

本次实验基于图书发⾏数据库系统,进⾏实验实验原理# 单表查询单表查询是指仅涉及⼀个表的查询SELECT ⼦句后⾯不仅可以是表中的属性列,还可以是表达式、字符串常量、函数:取消取值重复的⾏|保留取值重复的⾏将DISTINCT 换成ALL ,不加则默认ALL 换码、通配符 和对⼀个或多个属性列进⾏排序,⼦句| |ASC 升序,DESC 降序聚集函数(放在SELECT 后⾯)GROUP BY ⼦句:将查询结果按某⼀列或多列的值进⾏分组,值相等的为⼀组:作⽤于组,从中选择满⾜条件的组# 连接查询⼀个查询同时涉及两个及以上表的称为连接查询,属性列名前⾯加上表名,即SC.Sno 等值连接查询连接运算符为=时称为等值连接⾮等值连接查询连接运算符不是=时称为⾮等值连接⾃然连接若在等值连接中把⽬标列中重复的属性列去掉则为⾃然连接单个表的⾃⾝连接查询多表连接# 嵌套查询将⼀个查询块嵌套在另⼀个查询块的WHERE ⼦句或者HAVING 短语的条件中的查询称为嵌套查询⼦查询带有IN 谓词的⼦查询带有⽐较运算符的⼦查询带有ANY(SOME)或ALL 谓词的⼦查询带有EXIST 谓词的⼦查询# 集合查询集合操作主要包括并操作UNION 、交操作INTERSECT 和差操作EXCEPT实验记录# 检索L1从书店S1购买的图书的书号及其册数;DISTINCT SELECT DISTINCT LNO %_ESCAPEORDER BY ORDER BY [属性列名] ASC|DESC COUNT(*) --统计元组个数COUNT([DISTINCT|ALL]<列名>) --统计⼀列中值的个数SUM(DISTINCT|ALL]<列名>) --统计⼀列值的总和(必须是数值型)AVG([DISTINCT|ALL]<列名>) --统计⼀列值的平均值(必须是数值型)MAX([DISTINCT|ALL]<列名>) --统计⼀列值的最⼤值MIN([DISTINCT|ALL]<列名>) --统计⼀列值的最⼩值GROUP BY HAVING 查询选修了三门以上课程的学⽣的学号SELECT SNO FROM SC GROUP BY SNO HAVING COUNT(*)>3查询每⼀门课的间接选修课SELECT o,SECOND.Cpno FROM Course FIRST,Course SECOND WHERE FIRST.Cpno=o;查询每个学⽣的学号、姓名、选秀的课程名及成绩(涉及三个表的查询)、SELECT Student.Sno,Sname,Cname,Grade FROM Student,SC,CourseWHERE Student.Sno=SC.Sno AND o=o SELECT BNO,QTY FROM 图书发⾏# 检索馆址在“上海”的图书馆及其电话号码;SELECT LNAME,TELFROM 图书馆WHERE CITY='上海';# 检索L4收藏图书的书名;SELECT 图书.BNAMEFROM 图书,图书发⾏WHERE 图书发⾏.LNO='L4'AND 图书发⾏.BNO=图书.BNO;# 检索S3发⾏的图书书名及数量;SELECT 图书.BNAME,图书发⾏.QTYFROM 图书,图书发⾏WHERE 图书发⾏.SNO='S3'AND 图书发⾏.BNO=图书.BNO;# 检索收藏图书“数据库设计”的馆名;SELECT 图书馆.LNAMEFROM 图书馆,图书发⾏,图书WHERE 图书.BNAME='数据库设计'AND 图书.BNO=图书发⾏.BNOAND 图书馆.LNO=图书发⾏.LNO;# 检索没有购买上海新华书店出售的图书的图书馆号LNO;SELECT LNO,LNAMEFROM 图书馆WHERE LNO NOT IN (SELECT 图书发⾏.LNOFROM 图书发⾏,书店WHERE 图书发⾏.SNO=书店.SNO AND书店.SNAME='上海新华书店');思考题如何提⾼数据查询和连接速度。

SQL语句汇总——数据修改、数据查询

SQL语句汇总——数据修改、数据查询

SQL语句汇总——数据修改、数据查询⾸先创建⼀张表如下,创建表的⽅法在上篇介绍过了,这⾥就不再赘述。

添加新数据:INSERT INTO <表名> (<列名列表>) VALUES (<值列表>)如:INSERT INTO t_student (student_id,student_name,student_age,student_sex) VALUES (1,'⼤⽑',18,'男');其中列名可以省略,省略之后要求插⼊的值必须与列⼀⼀对应:INSERT INTO t_student VALUES (2,'王⼆',20,'男');多⾏数据添加:INSERT INTO t_student VALUES (3,'张三',22,'男'),(4,'李四',17,'⼥'),(5,'王五',23,'男');更改数据:UPDATE 表名 SET 列1=新值1,列2=新值2 WHERE 过滤条件假如要修改李四的年龄为21岁UPDATE t_student SET student_age=21 WHERE student_name='李四';注:修改多个列的值时⽤逗号隔开。

要想设置某⼀列的值为空,只需让<列名>=NULL 即可。

WHERE表⽰过滤条件。

删除数据(⾏):DELETE FROM 表名 WHERE 过滤条件现要删除20到22岁的学⽣信息:DELETE FROM t_student WHERE student_age BETWEEN 20 AND 22;WHERE的判断条件之后会更详细的介绍。

删除除了DELETE还有⼀种⽅法TRUNCATE,写法:TRUNCATE TABLE 表名⼆者区别在于:DELETE会记录⽇志,意味着删除后的数据还可以恢复,但是效率低。

数据库管理使用SQL进行数据查询和更新

数据库管理使用SQL进行数据查询和更新

数据库管理使用SQL进行数据查询和更新数据库管理是计算机科学领域中重要的一项技术,它涉及对大量数据的存储、管理和查询。

SQL(Structured Query Language,结构化查询语言)作为数据库管理系统中的标准查询语言,被广泛应用于各类关系型数据库。

本文将介绍使用SQL进行数据查询和更新的相关技术。

一、数据查询数据查询是数据库管理中最常见的操作之一。

SQL提供了丰富的语句和函数来满足不同查询需求。

1. SELECT语句SELECT语句是SQL中用于查询数据的基本语句,它可以根据指定的条件从数据库中检索数据。

示例:```SELECT * FROM 表名;```该语句将返回表中的所有数据,`*`表示选择所有字段。

我们也可以使用具体的字段名来筛选返回的数据,如:```SELECT 字段1, 字段2 FROM 表名;```2. WHERE子句WHERE子句用于在SELECT语句中添加筛选条件,从而限定查询结果。

示例:```SELECT * FROM 表名 WHERE 条件;```其中条件可以是等于、大于、小于、大于等于、小于等于等比较操作符,也可以是逻辑运算符(AND、OR)的组合。

3. ORDER BY子句ORDER BY子句用于指定查询结果的排序方式。

示例:```SELECT * FROM 表名 ORDER BY 字段 ASC/DESC;```其中ASC表示升序排列,DESC表示降序排列。

4. GROUP BY子句和聚合函数GROUP BY子句用于将查询结果按照指定字段进行分组,结合聚合函数(如SUM、AVG、COUNT)可以对分组后的数据进行统计。

示例:```SELECT 字段, 聚合函数 FROM 表名 GROUP BY 字段;```二、数据更新除了查询,SQL也支持对数据库中的数据进行更新操作。

1. INSERT INTO语句INSERT INTO语句用于往数据库表中插入新的数据。

示例:```INSERT INTO 表名 (字段1, 字段2) VALUES (值1, 值2);```其中,字段1和字段2表示要插入的字段名,值1和值2表示对应字段的值。

sql实验二报告资料

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、Qidd_Students表图1.2、Qidd_Teachers表图1.3、Qidd_Courses表图1.4、Qidd_Reports表(1)查询性别为“男”的所有学生的名字并按学号升序排列。

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

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

实验二 数据查询

实验二 数据查询

实验二一、实验目的了解SQL Server 查询分析器中执行T-SQL语句的方法;使用T-SQL语句创建数据表;掌握数据库查询语句SELECT语句的基本语法及使用方法;二、实验内容1.利用企业管理器中提供的“生成SQL脚本”命令生成实验一中创建的数据库中数据表对象的创建的脚本文件,作为实验结果文件保存在实验文件夹下。

2.在查询分析器中完成数据库的创建。

(可另外取名创建数据库文件)3.使用SELECT语句建立以下查询1)显示bookinfo表中所有字段的值;2)查询teacher表中所有记录的teachercode、teachername、enterdate、title字段信息;3)查询男教师的姓名(teachername),显示时将字段名改为“姓名”;4)查询2007年以后出版的教材名称(bookname)、出版日期(publishdate)和库存量(stocknum),显示时字段名称分别为教材名称、出版日期、库存量;显示结果如图1所示。

图15)查询所有教材的出版社代码(publishcode),不包括重复的记录;显示结果如图2所示。

图2 图36)查询学生订书量(stubooknum)最大的3个记录,显示教材代号(bookcode)和学生订书量(stubooknum);显示结果如图3所示。

7)查询学生订书量(stubooknum)在150~250之间的教材信息;显示结果如图4所示。

图48)查询每一种教材的学生订书总量;显示结果如图5所示。

图5 图69)查询书名为“VB程序设计”的教材的学生总订量、教师总订量及总订量;显示结果如图6所示。

10)显示教材的最高价、最低价、平均价、最高价与最低价之间的差值;显示结果如图7所示。

图711)查询出版社代号(publishcode)为10、02、31的出版社所出版的教材信息。

要求显示教材名称(bookname)、作者(author)、价格(price)、库存和出版社名称(publisher);显示结果如图8所示。

实验2:SQL实验报告

实验2:SQL实验报告

实验2:SQL实验报告数据库原理与应用实验报告请提交纸质版实验报告!!!姓名:班级:学号: [实验名称]:SQL [实验日期]:[实验目的]:(1)掌握使用SQL语句创建表、修改表、删除表以及对表中数据进行增加、删除、修改、查询的方法。

(2)掌握使用SQL进行创建视图、查询视图以及创建索引等方法。

[实验要求]:请根据以下题目写出相应SQL语句。

[实验步骤描述]:表1 Users表(用户信息表)列名 username realname age balance 列名 goodsno goodsname price storage 列名 buyno username goodsno quantity buydate 含义用户名真实名称年龄账户余额含义商品编号商品名称价格库存数量含义交易记录编号用户名商品编号购买数量购买日期数据类型 VARCHAR(20) VARCHAR(16) TINYINT DECIMAL(7,2) 表2 Goods表(商品信息表)约束 PRIMARY KEY NOT NULL 大于0小于150 默认值为0 约束 PRIMARY KEY NOT NULL 大于0 大于0 约束 PRIMARY KEY FOREIGN KEY, NOT NULL FOREIGN KEY, NOT NULL 大于0 数据类型 CHAR(5) VARCHAR(20) DECIMAL(7.2) INT 表3 Buy表(购物记录表)数据类型 INT VARCHAR(20) CHAR(5) INT DATETIME数据库原理与应用实验报告1.按照表1、2、3中的要求创建表Users、Goods和Buy。

2.修改表Users,添加列address,变长字符串,最长30位。

3.修改表Goods,添加列weight,整型,列unit,定长字符串,最大长度4位。

4.删除表Users中的列address。

5.查询所有商品的goodsno和goodsname。

实验二 表数据插入、修改和删除

实验二 表数据插入、修改和删除

实验二表数据插入、修改和删除1、目的和要求(1)学会在对象资源管理器中对数据库表进行插入、修改和删除数据操作。

(2)学会使用T-SQL语句对数据库表进行插入、修改和删除数据操作。

(3)了解数据更新操作时要注意数据完整性。

2、实验内容(1)实验题目分别使用对象资源管理器和T-SQL语句,向实验二中建立的数据库YGGL的3个表Employees、Departments和Salary中插入多行数据记录,然后修改和删除一些记录。

使用T-SQL语句进行有限制的修改和删除。

(2)实验准备首先,了解对表数据的插入、删除、修改都属于表数据的更新操作。

对表数据的操作可以在对象资源管理器中进行,也可以由T-SQL语句实现。

其次,要掌握T-SQL中用于对表数据进行插入、修改和删除的命令分别是INSERT、UPDATE和DELETE。

3、实验步骤(1)在对象资源管理器中初始化数据库YGGL中所有表数据。

①在对象资源管理器中展开“数据库YGGL”结点,选择要进行操作的表“Employees”,右击鼠标,在弹出的快捷菜单上选择“编辑前200行”菜单项,进入“表数据窗口”。

②用同样的方法向Departments表和Salary表中分别插入数据记录。

Employees表数据样本Departments表数据样本Salary表数据样本A、插入数据要符合列的类型。

试着在tinyint型的列中插入字符型数据(如字母),查看发生的情况。

B、bit类型的列在用界面方式插入数据时只能够插入True和False。

True表示1,False表示0.C、不能插入两行有相同主键的数据。

例如,如果编号为000001的员工信息已经存在Employees表中,则不能够在向表Employees中插入标号为000001的数据行。

(2)在对象资源管理器中修改数据库YGGL中表数据。

①在对象资源管理器中删除表Employees的第1列和Salary表的第1行。

注意进行删除操作时作为两表主键的EmployeeID的值,以保持数据完整性。

实验二-数据的查询、更新

实验二-数据的查询、更新

实验二数据的查询、更新一、实验目的1、掌握用户自定义数据类型的方法2、掌握用T-SQL语句进行数据的插入、修改、删除的方法3、熟练掌握SELECT语句,能够运用该语句完成各种查询二、实验要求1、实验前做好上机实验的准备,针对实验内容,认真复习与本次实验有关的知识,完成实验内容的预习准备工作;2、能认真独立完成实训内容;3、实验后做好实验总结,根据实验情况完成总结报告。

三、实验内容1、用T-SQL语句,创建一用户自定义数据类型:名称为“char20”,数据类型为varchar,长度为20,允许为空。

sp_addtype char20,'varchar(20)',null提示:sp_addtype [@typename=]用户自定义类型的名字[, @phystype=]系统类型名[, [@nulltype=] ' not null | null '] [, [@owner=] '拥有该类型的用户名'] 例:自定义一个名为address的类型,其所属系统类型为varchar,长度为80,不能为空。

sp_addtype address,' varchar(80)', ' not null '2、用T-SQL语句,建立一个“学生课程数据库”,在此基础上建立该数据库包含的学生表,课程表,学生选修表,并向各表插入如下相应的数据。

create database学生课程数据库学生表:Student(Sno,Sname,Ssex,Sage,Sdept) 其中Sno 为主键、Ssex取值为男或女、SageSno Sname Ssex Sage Sdept95001 李敏勇男20 CS95002 刘晨女19 IS95003 王敏女18 MA95004 张立男18 IScreate table student(sno int primary key,sname char(10),ssex char(2)constraint ssex_ch check(ssex in('男','女')),sage int constraint sage_ch check(sage>=15 andsage<=30),sdept char(10))insert into studentvalues(95001,'李敏勇','男',20,'CS')insert into studentvalues(95002,'刘晨','女',19,'IS')insert into studentvalues(95003,'王敏','女',18,'MA')insert into studentvalues(95004,'张立','男',18,'IS')课程表:Course(Cno,Cname,Cpno,Credeit,remarks) 其中Cno为主键、Teacher的类型为Cno Cname Cpno Credit Teacher1 数据库 5 4 王芳2 数学NULL 2 刘新3 信息系统 14 刘新4 操作系统 6 3 高升5 数据结构7 4 宋明6 数据处理NULL 2 张彬7 Pascal语言 6 4 李磊create table course(cno int primary key,cname char(15),cpno int null,credit int,teacher char20)insert into coursevalues(1,'数据库',5,4,'王芳')insert into coursevalues(2,'数学',NULL,2,'刘新')insert into coursevalues(3,'信息系统',1,4,'刘新')insert into coursevalues(4,'操作系统',6,3,'高升')insert into coursevalues(5,'数据结构',7,4,'宋明')insert into coursevalues(6,'数据处理',NULL,2,'张彬')insert into coursevalues(7,'PASCAL语言',6,4,'李磊')学生选修表:SC(Sno,Cno,Grade) 其中Sno,Cno为主键同时又为外键、Grade值在0到100;Sno Cno Grade95001 1 9295001 2 8595001 3 8895002 2 9095003 2 5595004 2 70create table sc(sno int,cno int,grade int constraint grade_ch check(grade between 0 and100),primary key(sno,cno),constraint fk_sno foreign key (sno)references student(sno),constraint fk_cno foreign key (cno)references course(cno),)insert into scvalues(95001,1,92)insert into scvalues(95001,2,85)insert into scvalues(95001,3,88)insert into scvalues(95002,2,90)insert into scvalues(95003,2,55)insert into scvalues(95004,2,70)3、用T-SQL语句,修改上面所建学生课程数据库中数据:1) 向学生表:Student中加入一条记录:(95030,谢非,男,22,CS)并保存insert into studentvalues(95030,'谢非','男',22,'CS')2) 将李敏勇的数据库的成绩改为98分update scset grade=98where o=(select ofrom coursewhere ame='数据库'and sno=(select snofrom studentwhere sname='李敏勇'))3) 删除学生表Student中谢非的记录并保存deletefrom studentwhere sname='谢非'4) 能不能从Student表中删除李敏勇学生的记录,为什么?能不能删除王敏, 张立两个学生的记录?不能, sc表中列sno是外码,参照student表的sno列。

数据库实验二,sql查询语句

数据库实验二,sql查询语句

实验二:数据查询语言实验内容SQL数据查询语句:例5-1:(选择表中的若干列) 求全体学生的学号、姓名、性别和年龄。

select sno,sname,sex,sage from student;例5-2:(不选择重复行) 求选修了课程的学生学号。

select distinct cno from sc where cno is not null;例5-3:(选择表中的所有列) 求全体学生的详细信息。

select * from student;例5-4:(使用表达式) 求全体学生的学号、姓名和出生年份。

select sno,sname,birthday from student;例5-5:(使用列的别名) 求学生的学号和出生年份,显示时使用别名“学号”和“出生年份”。

select sno as"学号",birthday as"出生年份" from student;例5-6:(比较大小条件) 求年龄大于19岁的学生的姓名和年龄。

select sname,age from studentwhere age>19;例5-7:(比较大小条件) 求计算机系或经济管理系年龄大于18岁的学生的姓名、系和年龄。

select sname,depname ,agefrom student,departmentwhere student.depno=department.depnoand age>18;例5-8:(确定范围条件) 求年龄在19岁与22岁(含20岁和22岁)之间的学生的学号和年龄。

select sno,age from studentwhere age in(19,22);例5-9:(确定范围条件) 求年龄不在19岁与22岁之间的学生的学号和年龄。

select sno,age from studentwhere age not in(19,22);例5-10:(确定集合条件) 求在下列各系的学生信息:数学系、计算机系。

实验训练2:数据查询操作

实验训练2:数据查询操作

实验二MySQL数据库操作实验实验目的:基于实验1创建的汽车用品网上商城数据库Shopping,理解MySQL 运算符、函数、谓词,练习Select语句的操作方法。

实验内容:1.单表查询【实验2.1】字段查询(1)查询商品名称为“挡风玻璃”的商品信息。

分析:商品信息存在于商品表,而且商品表中包含商品名称此被查询信息,因此这是只需要涉及一个表就可以完成简单单表查询。

(2)查询ID为1的订单。

分析:所有的订单信息存在于订单表中,而且订单用户ID也存在于此表中,因此这是只需要查询订单表就可以完成的查询。

【实验2.2】多条件查询查询所有促销的价格小于1000的商品信息。

分析:此查询过程包含两个条件,第一个是是否促销,第二个是价格,在商品表中均有此信息,因此这是一个多重条件的查询。

【实验2.3】DISTINCT(1)查询所有对商品ID为1的商品发表过评论的用户ID。

分析:条件和查询对象存在于评论表中,对此商品发表过评论的用户不止一个,而且一个用户可以对此商品发表多个评论,因此,结果需要进行去重,这里使用DISTINCT实现。

(2)查询此汽车用品网上商城会员的创建时间段,1年为一段。

分析:通过用户表可以完成查询,每年可能包含多个会员,如果把此表中的创建年份都列出来会有重复,因此使用DISTINCT去重。

【实验2.4】ORDER BY(1)查询类别ID为1的所有商品,结果按照商品ID降序排列。

分析:从商品表中可以查询出所有类别ID为1的商品信息,结果按照商品ID的降序排列,因此使用ORDER BY语句,降序使用DESC关键字。

(2)查询今年新增的所有会员,结果按照用户名字排序。

分析:在用户表中可以完成查询,创建日期条件设置为今年,此处使用语句ORDER BY。

【实验2.5】GROUP BY(1)查询每个用户的消费总金额(所有订单)。

分析:订单表中包含每个订单的订单总价和用户ID。

现在需要将每个用户的所有订单提取出来分为一类,通过SUM()函数取得总金额。

sql数据库实训总结

sql数据库实训总结

千里之行,始于足下。

sql数据库实训总结
SQL数据库实训总结
在SQL数据库实训中,我学到了很多关于数据库的基本知识和操作技巧。

以下是我在实训中的总结:
1. 数据库的设计和创建:首先,了解数据库的基本结构和概念,学会使用SQL语句创建数据库和表格。

在设计数据库时,需要考虑实际需求和数据关系,合理设置字段和约束。

2. 数据的增删改查:学会使用SQL语句对数据库中的数据进行增加、删除、修改和查询。

这是数据库管理的基本操作,可以通过各种条件和限制来实现复
杂的数据操作。

3. 数据库的连接和关联:学会使用SQL语句进行多个表的连接和关联查询。

这是解决多表查询和复杂数据关系的关键技巧,可以通过连接和关联查询获取
更准确的数据结果。

4. 数据库的优化和性能调整:在实际应用中,数据库的性能和效率非常重要。

学会使用索引、分区等技术来优化数据库的查询效率,减少数据访问时间
和资源消耗。

5. 数据库的备份和恢复:学会使用数据库备份工具对数据库进行定期备份,以保证数据的安全性和可靠性。

在需要恢复数据时,可以使用备份文件进行数
据恢复操作。

第1页/共2页
锲而不舍,金石可镂。

通过这次实训,我不仅掌握了SQL数据库的基本操作,还深入了解了数据库的原理和优化技巧。

这对于以后的工作和学习都具有重要的意义。

我会继续深入学习数据库的相关知识,提升自己的数据库技能。

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

实验二数据查询与修改
一、实验目的
1、掌握使用简单查询、连接查询以及嵌套查询完成数据查询的方法
2、掌握应用SQL进行数据更新的方法;
3、掌握视图的创建与更新方法。

二、实验内容
第一部分:使用附加方式恢复数据库LibraryLib,完成如下各题:
1、《数据库原理及应用实验指导》P45 1.数据查询练习(1)-(6)
(1)查询各个超期罚款用户及其罚款总数,结果按罚款总数降序排列。

(2)查询已经超期一个月以上的还未归还图书的用户借书证编号。

(3)查询已经超期一个月以上的还未归还图书的用户名称、联系方式以及超期图书名。

(4)查询在同一天借阅了不同图书的用户借书证号。

(5)查询借书从来没有被超期罚款的用户信息。

(6)检索有图书所购册数大于或等于图书价格超过“50”的图书任一所购册数的图书的价格。

分析:先找出图书价格超过“50”的图书的所购册书假设a
要查的是所购册数>= any a 的图书的价格
第一部分:实验2.2 数据修改
1.使用SQL语句向“用户信息表Users”中插入元组(用户标识:LiS;用户权限:1;密码:2;用户名称:李生;性别:男(0);部门:计算系;已借图书:0)。

问:本题可以省略into子句中的属性名吗?如果要省略,需要注意什么?
2.向Publish(出版社信息) 表插入一条新的记录,在该记录中,出版社名为:国防工业出版社,地址为:北京市海淀大街籍海楼,出版社email为:gfgypublish@16。

3.对每个出版社,求出所购图书总数和图书总价格,并把结果存入新建表“图书统计Temp_CNTBK”表中。

4.读者“ZouY”于今天通过管理员“LuoHH”借阅了一本“Visual FoxPro 及其应用系统开发”图书,使用T-SQL语句向Borrow表中插入该记录,并更改Book表中库存册书信息。

说明:本题有一定难度,请先思考如果插入这么一条记录,需要哪些信息,又如何获取到,关键是获取后将其存入一些变量中即可
5.使用SQL语句将所有读者借书应归还日期向后延长一天。

6.将“清华大学出版社”的图书所购册书和库存册书增加10本。

7.删除所有实际归还日期为“2009-04-17”以前且所借图书的名称中含有“数据库”字样的超期罚款记录。

8.删除“出版社信息表Publish”中出版社名称为“机械工业出版社”的元组,讨论该删除操作所受到的约束。

第二部分:实验2.3 视图
1.使用企业管理器创建一个行列子集视图View_Book,给出清华大学出版社的图书的的图书名称、书号、价格、书的页数和购买册书。

2.创建分组视图,将出版社标识及每个出版社的图书的最高价格和最低价格定义为一个视图。

3.创建一个基于题目1所建立视图的视图,定义一个视图,包括清华大学出版社的图书名称,以及购买该图书的总价格。

4.创建一个基于多个基表的视图,该视图由用户帐户、姓名、他在借书的名称组成。

5.查询用户“ZhangQF”所借图书的名称。

6.删除视图View_Publish。

第四部分:为选做题
使用附加方式恢复数据库student-course,然后完成下述各题
1. 查询计算机系(CS)、年龄在21岁以上的学生的姓名、年龄、出生年份;
可能会用到函数getdate()以及Year()
2. 查询信息系(IS)和计算机(CS)系学生年龄不在21-23岁之间的学生的姓名、系别和年龄;
3. 查询所有名字里面第二个字为“敏”的学生的姓名、学号和性别;
4. 查询选修了4号课程的学生的学号和成绩,查询结果按学号的升序和分数的降序排序;
5. 查询出超过2个人选修且平均成绩大于82分的课程号和平均分。

6. 数据结构成绩高于平均分(数据结构)的学生名字、系别。

本题若改为:查询数据结构成绩高于它自己所选修课程的平均分的学生名字、系别,该怎么写查询语句。

7. 查询出所有课程平均成绩高于张立平均成绩的同学姓名。

相关文档
最新文档