数据库SQL实验题目(14-15-1)解析
数据库SQL实验题目(14-15-1)
实验一数据定义操作●实验目的1.掌握数据库和表的基础知识2.掌握使用创建数据库和表的方法3.掌握数据库和表的修改、查看、删除等基本操作方法●实验内容和要求一、数据库的创建在开始菜单中,启动SQl Server 程序中的“SQL Server Management Studio”,在对象资源管理器窗口中,右键单击“数据库”,选择“新建数据库”,创建成绩管理数据库Grademanager,要求如下表所示:Grademanager数据库参数表二、表的创建、查看、修改和删除1.表的创建在Grademanager数据库中,右键单击“表”,选择“新建表”命令,创建如下表所示的表:(1)Student表的表结构特别注意:为属性Ssex设置约束,需选中属性Ssex行,然后单击菜单中的“表设计器”,选择“CHECK 约束”命令,然后按照图1进行设置。
图1 设置性别的约束(2)Course表(课程名称表)的表结构(3)SC表(成绩表)的表结构特别注意:①为属性Degree 约束,可参照属性Ssex进行设置,“CHECK约束对话框”中的表达式为Degree>=1 And Degree<=100②为SC表设置外键Sno和Cno的方法:右键单击表SC,选择“设计”命令,然后选择菜单“表设计器”中的“关系”命令,打开“外键关系”窗口,选择“添加”按钮,然后单击“表和列规范”后的按钮,按照图2进行设置,即可将SC表中的Cno属性设置为外键。
按照相同的方法,将属性Sno也设置为外键。
图2为SC表设置外键Cno2.向上述表中输入如下数据记录学生关系表Student (右键单击表Student ,选择“编辑前200行”)课程关系表Course 成绩表SC3.修改表结构(找到操作的方法即可,不需要真正地修改表中的属性) (1)向student 表中增加“入学时间”列,其数据类型为日期型 (2)将student表中的sdept 字段长度改为20 (3)将student 表中的Speciality 字段删除思考题1. SQL Server 的数据库文件有几种?扩展名分别是什么? 2. 如何实现数据库的备份和还原?2.在定义基本表语句时,NOT NULL 参数的作用是什么? 3.主码可以建立在“值可以为NULL ”的列上吗?实验二 简单查询● 实验目的1. 掌握SELECT 语句的基本用法2. 使用WHERE 子句进行有条件的查询3. 掌握使用IN 和NOT IN ,BETWEEN …AND 和NOT BETWEEN …AND 来缩小查询范围的方法4. 掌握聚集函数的使用方法5. 利用LIKE 子句实现字符串匹配查询6. 利用ORDER BY 子句对查询结果排序7. 利用GROUP BY 子句对查询结果分组● 实验内容和要求一、表结构修改1.在实验一的所建立的数据库中增加Teacher 表,结构如下:2.在实验一的所建立的数据库中增加Teaching 表,表结构如下: Teaching 表(授课表)的表结构3.向上述两表中输入如下数据记录教师表Teacher 授课表Teaching二、完成下面查询 1.查询所有男生信息2.查询年龄大于24岁的女生学号和姓名3.查询所有教师的Tname、Tdept4.查询“电子商务”专业的学生姓名、性别和出生日期5.查询成绩低于90分的学生学号及课号,并按成绩降序排列6.查询Student表中所有的系名7.查询“C01”课程的开课学期8.查询成绩在80分至90之间的学生学号及课号9.统计有学生选修的课程门数10.查询成绩为77,88或99的记录11.计算“C02”课程的平均成绩12.输出有成绩的学生学号13.查询所有姓“刘”的学生信息14.统计输出各系学生的人数15.查询选修了“C03”课程和学生的学号及其成绩,查询结果按分数的降序排列16.查询各个课程号及相应的选课人数,并为选课人数取别名为“人数”17.统计每门课程的选课人数和最高分,并为选课人数和最高分分别取别名为“人数”、“最高分”18.统计每个学生的选课门数和考试总成绩,并为选课门数和总成绩分别取别名为“门数”、“总成绩”,并按选课门数降序排列。
数据库SQL实验题目
实验一数据库和表的建立●实验目的1.掌握数据库和表的基础知识2.掌握使用创建数据库和表的方法3.掌握数据库和表的修改、查看、删除等基本操作方法●实验内容和要求一、数据库的创建在开始菜单中,启动SQl Server 程序中的“SQL Server Management Studio”,在对象资源管理器窗口中,右键单击“数据库”,选择“新建数据库”,创建成绩管理数据库Grademanager,要求如下表所示:Grademanager数据库参数表二、表的创建、查看、修改和删除1.表的创建在Grademanager数据库中,右键单击“表”,选择“新建表”命令,创建如下表所示的表:(1)Student表的表结构特别注意:为属性Ssex设置约束,需选中属性Ssex行,然后单击菜单中的“表设计器”,选择“CHECK 约束”命令,然后按照图1进行设置。
图1 设置性别的约束(2)Course表(课程名称表)的表结构(3)SC表(成绩表)的表结构特别注意:①为属性Degree 约束,可参照属性Ssex进行设置,“CHECK约束对话框”中的表达式为Degree>=1 And Degree<=100②为SC表设置外键Sno和Cno的方法:右键单击表SC,选择“设计”命令,然后选择菜单“表设计器”中的“关系”命令,打开“外键关系”窗口,选择“添加”按钮,然后单击“表和列规范”后的按钮,按照图2进行设置,即可将SC表中的Cno属性设置为外键。
按照相同的方法,将属性Sno也设置为外键。
图2为SC表设置外键Cno2.向上述表中输入如下数据记录学生关系表Student (右键单击表Student ,选择“编辑前200行”)课程关系表Course 成绩表SC3.修改表结构(找到操作的方法即可,不需要真正地修改表中的属性) (1)向student 表中增加“入学时间”列,其数据类型为日期型 (2)将student表中的sdept 字段长度改为20 (3)将student 表中的Speciality 字段删除思考题1. SQL Server 的数据库文件有几种?扩展名分别是什么? 2. 如何实现数据库的备份和还原?2.在定义基本表语句时,NOT NULL 参数的作用是什么? 3.主码可以建立在“值可以为NULL ”的列上吗?实验二 单表查询● 实验目的1. 掌握SELECT 语句的基本用法2. 使用WHERE 子句进行有条件的查询3. 掌握使用IN 和NOT IN ,BETWEEN …AND 和NOT BETWEEN …AND 来缩小查询范围的方法4. 掌握聚集函数的使用方法5. 利用LIKE 子句实现字符串匹配查询6. 利用ORDER BY 子句对查询结果排序7. 利用GROUP BY 子句对查询结果分组● 实验内容和要求一、表结构修改1.在实验一的所建立的数据库中增加Teacher 表,结构如下:2.在实验一的所建立的数据库中增加Teaching 表,表结构如下: Teaching 表(授课表)的表结构3.向上述两表中输入如下数据记录教师表Student 授课表Teaching二、完成下面查询 1.查询所有男生信息2.查询年龄大于24岁的女生学号和姓名3.查询所有教师的Tname、Tdept4.查询“电子商务”专业的学生姓名、性别和出生日期5.查询成绩低于90分的学生学号及课号,并按成绩降序排列6.查询Student表中所有的系名7.查询“C01”课程的开课学期8.查询成绩在80分至90之间的学生学号及课号9.统计有学生选修的课程门数10.查询成绩为77,88或99的记录11.计算“C02”课程的平均成绩12.输出有成绩的学生学号13.查询所有姓“刘”的学生信息14.统计输出各系学生的人数15.查询选修了“C03”课程和学生的学号及其成绩,查询结果按分数的降序排列16.查询各个课程号及相应的选课人数,并为选课人数取别名为“人数”17.统计每门课程的选课人数和最高分,并为选课人数和最高分分别取别名为“人数”、“最高分”18.统计每个学生的选课门数和考试总成绩,并为选课门数和总成绩分别取别名为“门数”、“总成绩”,并按选课门数降序排列。
数据库管理系统的操作(实验一、二)
《会计信息系统》实验一、二实验题目:数据库管理系统的操作(SQL Server2000)
实验目的:
1、掌握如何生成数据库;
2、掌握如何设计表;
3、掌握如何输入表中数据;
4、掌握如何建立表间关联;
5、掌握SELECT查询的基本用法;
6、掌握SQL Server2000与EXCEL、TXT间的数据转换;
7、了解SQL Server2000数据库管理系统的基本工作原理。
实验资料:
customers表
1
customers表
produsts表
orders表
2
Ordersdetail表
实验步骤及要求:
(一)启动SQL SERVER 2000;
(二)启动企业管理器
1.生成数据库:名称:sales(学号后三位);数据文件的初始大小为10MB,文件按10%自动增长,
最大文件大小限制为15MB,事务日志文件初始大小为2MB,文件按10%自动增长,最大文件大
小限制为3MB;
2.设计表格
3.输入表中数据
4.设置主关键字
5.建立表间关联
(三)启动查询分析器
1.基础查询
1)从单个表取数:降序取出产品表中产品编号小于10的所有产品
2)从多个表取数:列出订单明细表中所有内容及销售客户
3)将上查询结果存入EXCEL表中
2.操作查询
1)插入查询:任意插入二个客户并赋予相应信息,客户ID分别为14,15
2)更新查询:将巧克力库存数减少30盒
3)删除查询:客户ID为14的客户
3.将查询结果存入EXCEL表中的数据,导入到数据库中
3。
SQL数据库实验报告2
南京理工大学紫金学院实验报告书课程名称:《数据库系统》实验题目:实验2用SQL语句创建数据库和表班级: 0906012 学号: 090601257姓名:朱书宏指导教师:叶庆生一、实验目的1.更熟悉SQL语句对数据库的查询命令2. 对数据库的实际运用有一定的认识3.熟悉SQL的操作界面二、实验内容1.根据下列数据库模式Product(marker, model, type)PC(model, speed, ram, hd, rd, price)Laptop(model, speed, ram ,hd, screen, price)Printer(model, color, type, price)用SQL语句写出后面的查询,并使用习题1提供的资料写出查询结果。
* a) 找出所有价格在$1200以下的PC机的型号、速度和硬盘大小。
* b) 要求同(a),但是重命名列speed为megahertz以及列hd为gigabytes。
c) 找出所有打印机制造厂商。
d) 找出价格在$2000以上的手提电脑的型号、内存大小和屏幕尺寸。
* e) 找出关系Printer中所有彩色打印机元组,注意属性color是一个布尔类型。
f) 找出价格少于$2000并拥有12X或16X DVD的PC机的型号、速度和硬盘尺寸。
把rd属性看作一个字符串属性。
* g) 查询硬盘容量至少在30G的手提电脑制造商及电脑的速度。
* h) 查询制造商B制造的任意类型的所有产品的型号和价格。
i) 查询只卖手提电脑不卖PC的厂商。
! j) 查询出现在两种或两种以上PC中的硬盘的尺寸。
! k) 查询每对具有相同速度和RAM的PC机,每一对只出现一次。
例如,如果(i,j)符合,则(j,i)就不能出现在结果中出现。
!!l) 查询生产至少两种速度大于等于1000的计算机(PC或手提)的厂商。
2.根据下列数据库模式Classes ( class , type , country , numCuns , bore , displacement )Ships( name , class , launched )Battles( name , date )Outcomes ( ship , battle , result )用SQL语句写出后面的查询,并使用习题2给出的数据库模式和资料写出查询结果。
数据库实验报告sql语言
数据库原理及应用实验报告实验12 SQL Server安全管理实验目的:掌握创建登录账号的方法;掌握创建数据库用户的方法;掌握语句级许可权限管理;掌握对象级许可权限管理实验内容:12.1实验题目:创建登陆账号实验过程:1)创建使用Windows身份验证的登录账号WinUser2)创建使用SQL Server身份验证的登录账号SQLUser,设置可访问数据库jxsk实验结果:12.2实验题目:创建数据库用户实验过程:1)为登陆账号WinUser创建访问MXM实例中数据库jxsk的用户账号2)为登陆账号SQLUser创建访问MXM实例中所有数据库的用户账号实验结果:12.3实验题目:语句级许可权限管理实验过程:1)展开实例MXM中数据库节点,右击jxsk,选属性项2)授予用户WinUser只可以在数据库jxsk中创建视图和表3)授予用户SQLUser权限:不允许用户SQSUser在数据库jxsk 中创建视图和表,但允许其他操作。
实验结果:12.4实验题目:对象级许可权限管理实验过程:1)授予用户WinUser对数据库jxsk表S的INSERT,UPDATE权限2)授予用户SQLUser对数据库jxsk表S的INSERT权限;废除对表S的UPDATE权限3)授予用户WinUser对数据库jxsk表S的列SNO的SELECT,UPDATE权限,对SN的SELECT权限实验结果:实验13 SQL Server事务设计实验目的:1,理解和掌握事务的概念、特性以及事务的设计思想。
2,学习和掌握事务创建、执行的方法。
实验13.1 设计并执行事务实验目的:掌握事务的设计思想和方法。
实验内容:基于数据库jiaoxuedb进行下面设计:(1)设计并执行事务1:将学生陈东辉的计算机基础课程成绩改为77分。
(2)设计并执行事务2:将课程数据结构的课号与微机原理的课号互换。
(3)设计并执行事务3教师许永军退休,由他讲授的2门课程中,课程微机原理转给教师张朋讲授,数据库转给李英讲授。
SQL实验的题目和答案全解
数据库实验总汇二、使用SQL Server 工具在管理数据库系统和运行SQL查询的两个主要工具是企业管理器和查询分析器三、实验目的1.熟悉数据库的交互式SQL工具。
2.熟悉通过SQL对数据库进行操作。
3.完成上机练习。
四、实验内容(打※为选做题)Part A1.使用CREATE语句创建数据库2. 使用CREATE语句创建基本表3.更改基本表的定义,增加列,修改列的数据类型。
4.创建表的索引,取消表的索引1、数据库的建立使用SQL 语句建立关系数据库schooldemo2、基本表的建立在数据库schooldemo下,使用SQL 语句建立关系数据库表:人员表PERSON(Pno,Pname, Page),房间表ROOM(Rno,Rname,Rarea),表PR(Pno,Rno,Date).其中,表PERSON :Pno(CHAR(8),主码,非空,唯一),Pname(CHAR(20),非空),Page(INT);表ROOM:Rno(CHAR(8),主码,非空,唯一),Rname(CHAR(20)),Rarea(FLOAT (10));表PR:Pno(CHAR(8),非空,唯一),Rno(CHAR(8),非空,唯一),Date (DATETIME);(三个表之间有联系)3、更改基本表的定义,增加列,删除列,修改列的数据类型。
更改表PERSON,增加属性Ptype(类型是CHAR ,长度为10),把表ROOM中的属性Rname的数据类型改为长度为40。
4、创建表的索引,取消表的索引为ROOM表创建按Rno降序排列的索引创建PERSON表按Pname升序排列的唯一性索引取消PERSON表Pname升序索引5、删除表ROOM实验过程(1.a)1、数据库的建立使用SQL 语句建立关系数据库schooldemocreate database schooldemoon(name=schooldemo,filename='e:\123\school_data.mdf',size=5mb,maxsize=15mb,filegrowth=10%)log on(name=schooldemo_log,filename='e:\123\schooldemo.ldf',size=5mb,maxsize=15mb,filegrowth=4mb)2、基本表的建立在数据库schooldemo下,使用SQL 语句建立关系数据库表:人员表PERSON(Pno,Pname, Page),房间表ROOM(Rno,Rname,Rarea), 表PR(Pno,Rno,Date).其中,表PERSON :Pno(CHAR(8),主码,非空,唯一),Pname(CHAR(20),非空),Page(INT);表ROOM:Rno(CHAR(8),主码,非空,唯一),Rname(CHAR(20)),Rarea(FLOAT(10));表PR:Pno(CHAR(8),非空,唯一),Rno(CHAR(8),非空,唯一),Date(DATETIME);(三个表之间有联系)create table person(pno char (8)primary key,pname char (20),page int);create table room(rno char (8) primary key,rname char(20),rarea float(10));create table pr(pno char (8),rno char (8),date datetime,primary key(pno,rno),foreign key(pno) references person(pno),foreign key(rno) references room(rno));3、更改基本表的定义,增加列,删除列,修改列的数据类型。
sql数据库习题与答案
sql数据库习题与答案SQL数据库习题与答案SQL(Structured Query Language)是一种用于管理关系型数据库的标准化语言。
在数据库管理系统中,SQL可以用于执行各种操作,如插入、更新、删除和查询数据。
对于学习SQL的人来说,练习SQL数据库习题是非常重要的。
下面将为大家提供一些常见的SQL数据库习题以及相应的答案。
1. 查询所有学生的信息答案:SELECT * FROM students;2. 查询所有学生的姓名和年龄答案:SELECT name, age FROM students;3. 查询所有学生的姓名,并按照年龄从小到大进行排序答案:SELECT name FROM students ORDER BY age;4. 查询学生表中年龄大于18岁的学生信息答案:SELECT * FROM students WHERE age > 18;5. 查询学生表中姓“张”的学生信息答案:SELECT * FROM students WHERE name LIKE '张%';6. 查询学生表中的姓名和对应的课程名称答案:SELECT , FROM students INNER JOIN course ON students.course_id = course.id;7. 查询学生表中每个班级的学生人数答案:SELECT class, COUNT(*) FROM students GROUP BY class;通过以上SQL数据库习题与答案的练习,可以帮助大家更好地理解和掌握SQL语言的基本操作和常用查询。
同时,也可以帮助大家提升解决实际问题的能力,为今后的数据库管理工作打下坚实的基础。
希望大家能够认真对待SQL数据库习题,不断提升自己的技能水平。
sql测试题和答案
sql测试题和答案在进行SQL数据库开发时,进行一些测试是非常重要的。
通过测试,我们可以验证数据库的正确性,保证数据的一致性,并且提前发现和解决潜在的问题。
本文将提供一些常见的SQL测试题目,并且给出相应的答案,帮助读者更好地理解SQL语言的使用和测试方法。
一、题目1:查询订单表中购买数量最多的商品名称和购买数量。
答案:```sqlSELECT product_name, MAX(quantity) AS max_quantityFROM ordersGROUP BY product_name;```二、题目2:查询每个部门的平均工资和人数,结果按平均工资降序排列。
答案:```sqlSELECT department, AVG(salary) AS avg_salary, COUNT(*) AS num_employeesFROM employeesGROUP BY departmentORDER BY avg_salary DESC;```三、题目3:查询没有订单的客户名称和联系方式。
答案:```sqlSELECT customer_name, contact_numberFROM customersWHERE customer_id NOT IN (SELECT DISTINCT customer_idFROM orders);```四、题目4:查询每个国家的订单数和总销售额,并按总销售额降序排列。
答案:```sqlSELECT country, COUNT(*) AS num_orders, SUM(total_amount) AS total_salesFROM ordersGROUP BY countryORDER BY total_sales DESC;```五、题目5:查询购买了所有商品的客户名称和联系方式。
答案:```sqlSELECT customer_name, contact_numberFROM customersWHERE customer_id IN (SELECT customer_idFROM ordersGROUP BY customer_idHAVING COUNT(DISTINCT product_name) = (SELECT COUNT(DISTINCT product_name)FROM products));```六、题目6:查询每个部门的最高工资和最低工资。
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.每执行一条查询语句,在查询结果网格中查看执行结果是否正确。
【实验结果】select distinct sno from student_course select * from student where dno = 计算机select sno,sname from student where dno = 计算机select * from studentwhere sex =男 and dno in(计算机,信息) select sno,0.75*score as 成绩from student_course where tcid =1 and score between80 and 90select sno,score from student where (tcid=1 or tcid=4) order by score desc,sno select *from student where birthday>=1995-1-1order by sname asc select *from student where sname like[李刘]% select sno,sname,sex from student where sname like[^张王李刘]% select count(distinct sno)as 选课人数from student_course select max(score) as 最高分from student_course where tcid=1 select sno,avg(score)as 平均分from student_course group by sno select sno,count(distinct tcid)as 选课门数from student_course group by snohaving count(tcid)>2 select sno,sum(score)as 总成绩from student_course group by sno havingsum(score)>=200 order by 总成绩desc 【实验体会】利用select语句可以实现对已有表中数据的查询的。
SQL数据库题库及答案 (1)
实训131.使用T-SQL语句创建“Windows身份验证”登录名(对应的Windows用户为testwin)。
create login [stu1001\testwin]from windowsexec sp_addlogin 'aa' , '123' /*用存储过程创建sql登录名*/2.使用T-SQL语句查看所创建的登录名“testwin”的属性。
select loginname,sid from master.sys.syslogins3.使用T-SQL删除登录名“testwin”。
drop login [stu1001\testwin]4.使用SSMS创建与登录名“testsql”对应的数据库用户“sqluser”(对应于数据库WebShop),并查看其属性5.使用SSMS删除数据库用户“sqluser”。
6.使用T-SQL语句创建与登录名“testwin”对应的数据库用户“winuser”。
use webshopcreate user [winuser] for login [stu1001\testwin]7.将数据库用户“winuser”修改为“win”。
use webshopalter user [winuser]with name=win/*Alter User的语法结构:ALTER USER userNameWITH <set_item> [ ,...n ]<set_item> ::=NAME = newUserName| DEFAULT_SCHEMA = { schemaName | NULL }| LOGIN = loginName| PASSWORD = 'password' [ OLD_PASSWORD ='oldpassword' ]| DEFAULT_LANGUAGE = { NONE | <lcid> | <language name> | <language alias> }*/1.使用SSMS或T-SQL语句查看WebShop数据库中数据库用户的信息。
SQL实验及部分答案
SQL实验及部分答案实验⼀使⽤SQL语句创建和删除数据库⼀. 实验⽬的:1、了解SQL Server 2005数据库的逻辑结构和物理结构。
2、掌握使⽤SQL 语句创建和删除数据库。
⼆. 实验准备1.明确能够创建数据库的⽤户必须是系统管理员,或是被授权使⽤CREATE DATABASE语句的⽤户。
2.了解⽤SQL语句创建和删除数据库的基本语法。
三. 实验要求3、熟练使⽤查询分析器进⾏数据库的创建和删除操作4、完成⽤sql语句建⽴和删除数据库的实验报告四. 实验内容1.以下是创建数据库userdb1的SQL语句,以下是创建数据库userdb1的SQL语句,CREATE DATABASE userdb1 --创建名为userdb1的数据库on( NAME='userdb2',--数据⽂件的逻辑名称为userdb2FILENAME= 'd:\test\userdb1.mdf', ----物理路径为d:\testSIZE=5mb,----数据初始长度为5MMAXSIZE=10mb, --最⼤长度为10MFILEGROWTH=1mb --数据⽂件每次增长1M)运⾏上诉语句建⽴数据库userdb1.2.⽤SQL语句删除步骤⼀建⽴的数据库userdb1。
drop database userdb1 --删除数据库userdb1实验⼆分别⽤向导和SQL语句创建和删除表⼀.⽤SQL语句创建表在SQL Server 2005 的查询分析器中,⽤sql语句创建student表。
表2.1 student表(学⽣信息表)CREATE TABLE student(sno char(8)not null primary key,--学号(主键)sname char(8)not null,--姓名sex char(2)null,--性别native char(20)null,--籍贯birthday datetime null,--出⽣⽇期dno char(6)null,--所在院系spno char(8)null,--专业代码classno char(4)null,--班级号entime datetime null,--⼊校时间home varchar(40)null,--家庭住址tel varchar(40)null,--联系电话)表2.2 course表(课程信息表)CREATE TABLE course(cno char(10)not null primary key, spno char(8)null,cname char(20)not null,ctno tinyint null,experiment tinyint null,lecture tinyint null,semester tinyint null,credit tinyint null)实验三修改数据库基本表的定义⼀.实验⽬的1.了解表的结构特点。
sql实验习题答案
sql实验习题答案SQL实验习题答案在学习SQL(Structured Query Language)时,习题是一种非常有效的学习方式。
通过实践操作,我们可以更好地理解SQL语言的各种概念和用法。
下面是一些常见的SQL实验习题及其答案,希望对大家的学习有所帮助。
1. 查询某个表的所有数据答案:SELECT * FROM 表名;2. 查询某个表的前n行数据答案:SELECT * FROM 表名 LIMIT n;3. 查询某个表中满足某个条件的数据答案:SELECT * FROM 表名 WHERE 条件;4. 查询某个表中某个字段的最大值答案:SELECT MAX(字段名) FROM 表名;5. 查询某个表中某个字段的最小值答案:SELECT MIN(字段名) FROM 表名;6. 查询某个表中某个字段的总和答案:SELECT SUM(字段名) FROM 表名;7. 查询某个表中某个字段的平均值答案:SELECT AVG(字段名) FROM 表名;8. 查询某个表中某个字段的记录数答案:SELECT COUNT(字段名) FROM 表名;9. 查询某个表中某个字段的记录数,并按照字段值进行分组答案:SELECT 字段名, COUNT(字段名) FROM 表名 GROUP BY 字段名;10. 查询某个表中满足多个条件的数据答案:SELECT * FROM 表名 WHERE 条件1 AND 条件2;11. 查询某个表中满足多个条件中的任意一个条件的数据答案:SELECT * FROM 表名 WHERE 条件1 OR 条件2;12. 查询某个表中满足某个条件,并按照某个字段进行排序的数据答案:SELECT * FROM 表名 WHERE 条件 ORDER BY 字段名;13. 查询某个表中满足某个条件,并限制结果的行数答案:SELECT * FROM 表名 WHERE 条件 LIMIT n;14. 查询某个表中满足某个条件,并跳过前n行的数据答案:SELECT * FROM 表名 WHERE 条件 OFFSET n;15. 查询某个表中满足某个条件,并按照某个字段进行分页显示答案:SELECT * FROM 表名 WHERE 条件 ORDER BY 字段名 LIMIT n OFFSET m;这些习题涵盖了SQL语言的基本操作和常用函数。
数据库实验报告 SQL语言
数据库原理及实验报告实验6 视图实验目的:1)掌握交互式创建、删除视图的方法2)掌握使用SQL创建、删除视图的方法3)掌握交互式更新视图的方法4)掌握使用SQL更新视图的方法实验内容6.1实验题目:创建视图实验过程:1)交互式创建视图VIEW_S2)交互式创建成绩视图VIEW_SCORETABLE3)使用SQL创建课程表视图VIEW_CTABLE 实验结果:6.2实验题目:修改视图实验过程:1)使用交互式方法把视图VIEW_S 中的字段SNO 删掉2)使用SQL 为视图VIEW_CTABLE 增加一个课时字段CT tiny int 实验结果:6.3实验题目:通过视图修改数据库数据实验过程:1)交互式通过修改视图VIEW_S中的数据来实现对其基本表S中数据的修改2)对视图VIEW_S执行INSERT语句,查看此视图的基本表S中数据的变化3)修改视图VIEW_S的定义,使其包含表S中的主键,再执行插入操作4)用SQL语句对视图VIEW_S执行DELETE操作,查看此视图的基本表S中数据的变化实验结果:6.4实验题目:删除视图实验过程:1)交互式删除视图VIEW_S2)使用SQL删除视图VIEW_CTABLE实验结果:实验7 数据查询实验目的:1,掌握从简单到复杂的各种数据查询。
包括,单表查询、多表连接查询、嵌套查询、集合查询。
2,掌握用条件表达式表示检索结果。
3,掌握用聚合函数计算统计检索结果。
实验7.1 单表查询实验目的:1,掌握指定列或全部列查询。
2,掌握按条件查询。
3,掌握对查询结果排序。
4,掌握使用聚集函数的查询。
5,掌握分组统计查询。
实验内容:1,指定或全部列查询。
2,按条件查询及模糊查询。
3,对查询结果排序。
4,使用聚集函数的查询。
5,分组统计查询。
实验7.2 连接查询实验目的:掌握设计一个以上数据表的查询方法。
多表之间的连接包括等值连接、自然连接、非等值连接、自身连接、自身连接、外连接和复合连接。
sql测试题和答案
sql测试题和答案以下是一些常见的SQL测试题及其答案。
这些题目旨在考察SQL 基本知识和查询能力。
希望对你的SQL学习和提升有所帮助。
1. 给定一个名为"Students"的表格,包含学生的姓名、年龄和分数三个字段。
写一个SQL查询,按照分数从高到低排列,显示学生姓名和分数。
答案:SELECT Name, ScoreFROM StudentsORDER BY Score DESC;2. 给定一个名为"Customers"的表格,包含顾客的姓名、所在城市和消费金额三个字段。
写一个SQL查询,显示每个城市的总消费金额,结果按照金额从高到低排序。
答案:SELECT City, SUM(Expense) as TotalExpenseFROM CustomersGROUP BY CityORDER BY TotalExpense DESC;3. 给定一个名为"Orders"的表格,包含订单号、顾客姓名和订单日期三个字段。
写一个SQL查询,显示每个顾客最近一次的订单日期。
答案:SELECT CustomerName, MAX(OrderDate) as LastOrderDateFROM OrdersGROUP BY CustomerName;4. 给定一个名为"Employees"的表格,包含员工的姓名、职位和入职日期三个字段。
写一个SQL查询,显示每个职位的最早入职员工姓名。
答案:SELECT Position, MIN(StartDate) as EarliestEmployeeFROM EmployeesGROUP BY Position;5. 给定一个名为"Products"的表格,包含产品名称、价格和所属分类三个字段。
写一个SQL查询,显示每个分类中价格最高的产品。
答案:SELECT Category, MAX(Price) as HighestPriceFROM ProductsGROUP BY Category;这些题目涵盖了SQL中的基本查询、排序、分组和聚合等操作。
数据库sql课后练习题及答案解析
数据库sql课后练习题及答案解析第一篇:数据库sql课后练习题及答案解析先创建下面三个表:(book表)(borrow表)(reader表)1)找出姓李的读者姓名(NAME)和所在单位(COMPANY)。
2)列出图书库中所有藏书的书名(BOOK_NAME)及出版单位(OUTPUT)。
3)查找“高等教育出版社”的所有图书名称(BOOK_NAME)及单价(PRICE),结果按单价降序排序。
4)查找价格介于10元和20元之间的图书种类(SORT),结果按出版单位(OUTPUT)和单价(PRICE)升序排序。
5)查找书名以”计算机”开头的所有图书和作者(WRITER)。
6)检索同时借阅了总编号(BOOK_ID)为112266和449901两本书的借书证号(READER_ID)。
##7)* 查找所有借了书的读者的姓名(NAME)及所在单位(COMPANY)。
8)* 找出李某所借所有图书的书名及借书日期(BORROW_DATE)。
9)* 无重复地查询2006年10月以后借书的读者借书证号(READER_ID)、姓名和单位。
##10)* 找出借阅了一书的借书证号。
11)找出与”赵正义”在同一天借书的读者姓名、所在单位及借书日期。
12)查询2006年7月以后没有借书的读者借书证号、姓名及单位。
#13)求”科学出版社”图书的最高单价、最低单价、平均单价。
##14)* 求”信息系”当前借阅图书的读者人次数。
#15)求出各个出版社图书的最高价格、最低价格和总册数。
#16)分别找出各单位当前借阅图书的读者人数及所在单位。
17)* 找出当前至少借阅了2本图书(大于等于2本)的读者姓名及其所在单位。
18)分别找出借书人次数多于1人次的单位及人次数。
19)找出藏书中各个出版单位的名称、每个出版社的书籍的总册数(每种可能有多册)、书的价值总额。
20)查询经济系是否还清所有图书。
如果已经还清,显示该系所有读者的姓名、所在单位和职称。
SQL试题精选及答案
SQL试题精选及答案1. 请写出SQL中创建新表的语句。
答案:CREATE TABLE 表名 (列1 类型, 列2 类型, ...);2. 如何在SQL中查询特定列的数据?答案:SELECT 列名 FROM 表名 WHERE 条件;3. 请解释SQL中的JOIN操作。
答案:JOIN操作用于将两个或多个表中的行组合起来,基于一个共同的列。
4. 写出SQL中更新表中数据的语句。
答案:UPDATE 表名 SET 列名1 = 值1, 列名2 = 值2 WHERE 条件;5. 如何在SQL中删除表中的数据?答案:DELETE FROM 表名 WHERE 条件;6. 请描述SQL中的GROUP BY子句的作用。
答案:GROUP BY子句用于将取回的记录分组,可以与聚合函数一起使用,如COUNT、SUM等。
7. SQL中如何使用子查询?答案:子查询是嵌套在另一个查询中的查询,可以出现在SELECT、INSERT、UPDATE或DELETE语句中。
8. 请写出SQL中创建索引的语句。
答案:CREATE INDEX 索引名 ON 表名 (列名);9. 如何在SQL中使用事务?答案:可以使用BEGIN TRANSACTION开始事务,然后执行一系列操作,最后使用COMMIT提交事务或ROLLBACK回滚事务。
10. 请解释SQL中的主键和外键。
答案:主键是表中用来唯一标识每行数据的列或列组合,而外键是一个表中的列或列组合,它在另一个表中作为主键。
11. SQL中如何进行数据排序?答案:使用ORDER BY子句,如SELECT * FROM 表名 ORDER BY 列名ASC 或 DESC。
12. 如何在SQL中使用聚合函数?答案:聚合函数如SUM、COUNT、AVG等,可以与GROUP BY子句一起使用,对数据进行汇总。
13. 请写出SQL中插入数据的语句。
答案:INSERT INTO 表名 (列1, 列2, ...) VALUES (值1, 值2, ...);14. 请解释SQL中的视图。
国开MySQL数据库应用形考任务14
实验训练1 在MySQL中创建数据库与表请到电脑端查瞧实验目的熟悉MySQL环境的使用,掌握在MySQL中创建数据库与表的方法,理解MySQL支持的数据类型、数据完整性在MySQL下的表现形式,练习MySQL数据库服务器的使用,练习CREATE TABLE,SHOW TABLES,DESCRIBE TABLE,ALTER TABLE,DROP TABLE语句的操作方法。
实验内容:【实验1-1】MySQL的安装与配置。
参见4、1节内容,完成MySQL数据库的安装与配置。
【实验1-2】创建“汽车用品网上商城系统”数据库。
用CREATE DATABASE语句创建Shopping数据库,或者通过MySQL Workbench图形化工具创建Shopping数据库。
【实验1-3】在Shopping数据库下,参见3、5节,创建表3-4~表3-11的八个表。
可以使用CREATE TABLE语句,也可以用MySQL Workbench创建表。
【实验1-4】使用SHOW、DESCRIBE语句查瞧表。
【实验1-5】使用ALTER TABLE、RENAME TABLE语句管理表。
【实验1-6】使用DROP TABLE语句删除表,也可以使用MySQL Workbench删除表。
(注意:删除前最好对已经创建的表进行复制。
)【实验1-7】连接、断开MySQL服务器,启动、停止MySQL服务器。
【实验1-8】使用SHOW DATABASE、USE DATABASE、DROP DATABASE语句管理“网上商城系统”Shopping数据库。
实验要求:1. 配合第1章第3章的理论讲解,理解数据库系统。
2. 掌握MySQL工具的使用,通过MySQL Workbench图形化工具完成。
3. 每执行一种创建、删除或修改语句后,均要求通过MySQL Workbench查瞧执行结果。
4. 将操作过程以屏幕抓图的方式复制,形成实验文档。
实验训练2:数据查询操作请到电脑端查瞧实验目的:基于实验1创建的汽车用品网上商城数据库Shopping,理解MySQL运算符、函数、谓词,练习Select语句的操作方法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一数据定义操作●实验目的1.掌握数据库和表的基础知识2.掌握使用创建数据库和表的方法3.掌握数据库和表的修改、查看、删除等基本操作方法●实验内容和要求一、数据库的创建在开始菜单中,启动SQl Server 程序中的“SQL Server Management Studio”,在对象资源管理器窗口中,右键单击“数据库”,选择“新建数据库”,创建成绩管理数据库Grademanager,要求如下表所示:Grademanager数据库参数表二、表的创建、查看、修改和删除1.表的创建在Grademanager数据库中,右键单击“表”,选择“新建表”命令,创建如下表所示的表:(1)Student表的表结构特别注意:为属性Ssex设置约束,需选中属性Ssex行,然后单击菜单中的“表设计器”,选择“CHECK 约束”命令,然后按照图1进行设置。
图1 设置性别的约束(2)Course表(课程名称表)的表结构(3)SC表(成绩表)的表结构特别注意:①为属性Degree 约束,可参照属性Ssex进行设置,“CHECK约束对话框”中的表达式为Degree>=1 And Degree<=100②为SC表设置外键Sno和Cno的方法:右键单击表SC,选择“设计”命令,然后选择菜单“表设计器”中的“关系”命令,打开“外键关系”窗口,选择“添加”按钮,然后单击“表和列规范”后的按钮,按照图2进行设置,即可将SC表中的Cno属性设置为外键。
按照相同的方法,将属性Sno也设置为外键。
图2为SC表设置外键Cno2.向上述表中输入如下数据记录学生关系表Student (右键单击表Student ,选择“编辑前200行”)课程关系表Course 成绩表SC3.修改表结构(找到操作的方法即可,不需要真正地修改表中的属性) (1)向student 表中增加“入学时间”列,其数据类型为日期型 (2)将student表中的sdept 字段长度改为20 (3)将student 表中的Speciality 字段删除思考题1. SQL Server 的数据库文件有几种?扩展名分别是什么? 2. 如何实现数据库的备份和还原?2.在定义基本表语句时,NOT NULL 参数的作用是什么? 3.主码可以建立在“值可以为NULL ”的列上吗?实验二 简单查询● 实验目的1. 掌握SELECT 语句的基本用法2. 使用WHERE 子句进行有条件的查询3. 掌握使用IN 和NOT IN ,BETWEEN …AND 和NOT BETWEEN …AND 来缩小查询范围的方法4. 掌握聚集函数的使用方法5. 利用LIKE 子句实现字符串匹配查询6. 利用ORDER BY 子句对查询结果排序7. 利用GROUP BY 子句对查询结果分组● 实验内容和要求一、表结构修改1.在实验一的所建立的数据库中增加Teacher 表,结构如下:2.在实验一的所建立的数据库中增加Teaching 表,表结构如下: Teaching 表(授课表)的表结构3.向上述两表中输入如下数据记录教师表Teacher 授课表Teaching二、完成下面查询 1.查询所有男生信息2.查询年龄大于24岁的女生学号和姓名3.查询所有教师的Tname、Tdept4.查询“电子商务”专业的学生姓名、性别和出生日期5.查询成绩低于90分的学生学号及课号,并按成绩降序排列6.查询Student表中所有的系名7.查询“C01”课程的开课学期8.查询成绩在80分至90之间的学生学号及课号9.统计有学生选修的课程门数10.查询成绩为77,88或99的记录11.计算“C02”课程的平均成绩12.输出有成绩的学生学号13.查询所有姓“刘”的学生信息14.统计输出各系学生的人数15.查询选修了“C03”课程和学生的学号及其成绩,查询结果按分数的降序排列16.查询各个课程号及相应的选课人数,并为选课人数取别名为“人数”17.统计每门课程的选课人数和最高分,并为选课人数和最高分分别取别名为“人数”、“最高分”18.统计每个学生的选课门数和考试总成绩,并为选课门数和总成绩分别取别名为“门数”、“总成绩”,并按选课门数降序排列。
思考题1.聚集函数能否直接使用在:SELECT子句、HAVING子句、WHERE子句、GROUP BY子句中?2.关键字ALL和DISTINCT有什么不同的含义?3.SELECT语句中用于表示模糊查询的通配符有几种?含义分别是什么?4.利用BETWEEN…AND表示的数据范围能否用其他方法表示?怎样表示?如:score between 80 and 90 还可以怎么表示?实验三复杂查询●实验目的1.掌握连接查询和嵌套查询操作2.能灵活应用SELECT语句解决复杂的查询问题●实验内容和要求一、连接查询1.查询女学生的学生学号及总成绩2.查询李勇同学所选的课程号及成绩3.查询李新老师所授课程的课程名称4.查询女教师所授课程的课程号及课程名称5.查询姓“王”的学生所学的课程名称6.查询选修“数据库”课程且成绩在80到90之间的学生学号及成绩7.查询选修“C02”课程的学生的平均年龄8.查询学习课程名为“数学”的学生学号和姓名9.查询“钱军”教师任课的课程号,选修其课程的学生的学号和成绩10.查询在第3学期所开课程的课程名称,选修其课程的学生学号和成绩二、嵌套查询1.查询至少选修两门课程的男学生姓名2.查询与李勇同一个系的其他同学姓名3.查询学号比刘晨同学大,而年龄比他小的学生姓名4.查询年龄大于所有女同学的男同学的姓名及系别5.查询成绩比该课程平均成绩高的学生的学号、课程号及成绩6.查询不讲授“C01”课的教师姓名7.查询没有选修“C02”课程的学生学号及姓名8.查询选修了“数据库”课程的学生学号、姓名及系别9.查询选修了全部课程的学生姓名10.分别用子查询和连接查询,求“C02”号课程在80分以上的学生信息●思考题1.使用存在量词NOT EXISTS的嵌套查询时,何时外层查询的WHERE条件为真,何时为假?2.DROP命令和DELETE命令的本质区别是什么?实验四数据更新、索引及视图操作●实验目的1.掌握利用INSERT命令实现对表数据的插入操作2.掌握利用UPDATE命令实现对表数据的修改操作3.掌握利用DELETE命令实现对表数据的删除操作4.掌握索引的创建和使用5.掌握视图的创建和删除●实验内容和要求一、数据更新1.向Student表中插入记录('20050203','张静','女','1981-3-21','CS' ,'电子商务')2.插入学号为20050302,姓名为李四学生信息3.把男学生记录保存到表TS中(提示:利用select into 命令可备份数据库中的表格式:select * into 新表名from 原表名where 子句;)4.将学号为20050202的学生姓名改为张华,系别改为“CS”,专业改为“多媒体技术”5.将20050201学生选修“C03”号课程的成绩改为该课的平均成绩6.把女同学的成绩提高5%7.把选修了“数据库”课程学生的成绩全改为空值(NULL)8.删除学号为20050302的学生记录9.把“刘晨”同学的选课记录全部删除10.删除电子商务专业所有学生的选课记录二、索引的创建与使用1.用索引管理器创建SC表的索引IX_XS_KC。
(1)选择要创建索引的数据库文件夹,并在右边的对象窗口中选择并打开其中的“表”对象。
(2)选择所要创建索引的SC表,右键单击该表,在弹出的快捷菜单中选择“设计”命令,然后在工具栏中单击“管理索引和键”按钮,打开“索引和键”窗口。
(3)单击其中的“添加”按钮,创建新的索引,并为其设置相应的属性。
为SC表创建一个基于“课程号”列和“成绩”列的索引IX_XS_KC,其中课程号列按升序排列,成绩列按降序排列。
设置完成后,如图3所示。
图3 创建索引IX_XS_KC2.强制使用刚才创建的索引查询数据。
在查询命令窗口中输入以下SQL查询命令并执行:SELECT SNO,CNO,DEGREEFROM SCWITH (INDEX (IX_XS_KC))WHERE DEGREE>=60观察一下显示出来的数据是否有序。
3.利用SQL命令实现下列操作:(1)为Student表创建一个名为S_dept的索引,以系别排序(2)为Teacher表创建一个名为T_name的聚集索引,以Tname降序排序。
命令格式:create clustered index on 表名(列名1 顺序,列名2 顺序) (3)删除S_dept索引。
命令格式:drop index 表名.索引名或drop index 索引名on 表名三、视图的创建与使用1.创建一个简单视图view1,查询“计算机系”学生的信息2.创建一个简单视图view2,统计每门课程的选课人数和最高分3.创建一个复杂视图view3,查询与“张立”同学同一系别的学生信息4.删除视图View3思考题1.利用INSERT、UPDATE和DELETE命令可以同时对多个表操作吗?2. 使用索引为什么能提高查询速度?3.索引经常被建立在哪些字段上?4.聚集索引与其他索引有什么不同?实验五存储过程、函数、触发器及游标操作●实验目的1.掌握compute by的使用2.掌握变量的定义和使用方法3.掌握存储过程的定义和执行方法4.掌握触发器的定义方法5.掌握函数的定义和调用方法6.掌握游标的定义和使用方法(提示:以下操作全部基于实验一创建的Grademanager数据库)●实验内容和要求一、使用compute by完成下列操作1.显示所有学生的成绩,并汇总每个学生的总分。
2.显示所有学生的信息,并汇总男女学生的人数。
二、存储过程1.创建一个名为Query_student的存储过程,该存储过程的功能是根据学号查询学生表中某一学生的学号、姓名、性别及出生日期。
执行存储过程Query_student,查询学号为“20050301”的学生的学号、姓名、性别及出生日期。
写出完成此功能的SQL命令。
2.创建存储过程sm_score,用于求指定学号(输入参数)的学生的总成绩(输出参数)。
执行该存储过程,指定学号为“20050101 ”。
3.创建并执行存储过程count_sno,用于求所有学生人数,通过参数返回学生人数。
4.删除存储过程count_sno。
5.创建一个向课程表中插入一门新课程的存储过程Insert_course,该存储过程需要两个参数,分别用来传递课程号、课程名;执行存储过程Insert_course,向课程表Course中插入一门新课程(’0807011’,’Flash动画设计’)。