数据库SQL查询语句实验报告
sql数据库实验报告
sql数据库实验报告目录1. 实验概述 (2)1.1 实验目的 (2)1.2 实验背景 (3)1.3 实验内容 (4)1.4 实验环境 (5)2. 数据库设计 (5)2.1 数据库概念 (6)2.2 表结构设计 (8)2.2.1 表1名称及字段定义 (9)2.2.2 表2名称及字段定义 (10)2.3 关系约束 (11)3. SQL语句操作 (12)3.1 数据插入 (13)3.2 数据查询 (14)3.2.1 根据条件查询 (15)3.2.2 聚合函数查询 (16)3.2.3 连接查询 (17)3.3 数据更新 (18)3.4 数据删除 (20)4. 实验结果展示 (21)4.1 SQL语句执行结果 (22)4.2 数据分析及解释 (22)4.2.1 查询结果的意义 (24)4.2.2 数据之间的关系性分析 (24)5. 实验总结与展望 (25)5.1 实验总结 (26)5.2 总结得到的经验与教训 (27)5.3 进一步研究建议 (29)1. 实验概述本实验旨在通过实践操作,实验内容涵盖了常见数据库操作,包括表创建、数据插入、查询、修改和删除。
通过完成实验,我们将学习如何使用SQL语句来管理和处理数据库数据,掌握常用的 SELECT、INSERT、UPDATE、DELETE 语句以及 JOIN 操作等,并熟悉数据库的操作流程和概念。
本实验旨在提升 SQL 数据库操作技能,并为后续更深入的数据库学习和应用打下基础。
您可以根据实际实验内容对以上段落进行修改和完善,具体修改点包括:明确实验的主题和目标,例如:实验主题可能是某个特定数据库管理系统(如MySQL、PostgreSQL等)的应用,目标可能是学习该数据库特定的功能特性。
1.1 实验目的本次实验旨在通过实际操作,验证和巩固SQL语言在关系型数据库管理中的应用能力,并加深对数据库设计、数据操作以及数据查询与分析的理解。
具体实验目的包括:学习SQL基础:掌握SQL语言的基本语法和常用命令,包括数据类型定义、表格创建、插入、更新和删除操作。
实验3报告SQL查询.
实验三报告:SQL查询姓名:xxx学号:班级:课程名:数据库与系统概论一、实验目的使学生掌握SQL Server查询分析器的使用方法,加深对Transact-SQL语言的建表、查询语句的理解。
熟练掌握简单表的的建立、数据查询、数据排序的操作方法。
二、实验内容表的sql查询语句和更新语句1.新建表(1)使用建立student、course和SC三个表,其结构为:Sql语句为:--创建数据库CREATE DATABASE test03;USE test03;--学生表CREATE TABLE Student(Sno VARCHAR(20)PRIMARY KEY NOT NULL,Sname VARCHAR(50)NOT NULL,Age INT,Sex CHAR(2),Dept VARCHAR(50));--课程表CREATE TABLE Course(cno VARCHAR(20)PRIMARY KEY NOT NULL,cname VARCHAR(50)NOT NULL,credit FLOAT,pcno VARCHAR(20),descr VARCHAR(100));--选课表CREATE TABLE SC(sno VARCHAR(20)NOT NULL,cno VARCHAR(20)NOT NULL,grade FLOAT);ALTER TABLE SC ADD CONSTRAINT sno_SC_Student FOREIGN KEY(sno)REFERENCES Student(Sno); ALTER TABLE SC ADD CONSTRAINT sno_SC_Course FOREIGN KEY(cno)REFERENCES Course(cno);在SQL Server2005的数据库中,文件夹是按数据库对象的类型建立的,文件夹名是该数据库对象名。
当在企业管理器中选择服务器和数据库文件夹,并打开己定义好的学生选课数据库后。
数据库sql 实验报告
数据库sql 实验报告数据库SQL实验报告1. 引言数据库是现代信息系统中不可或缺的组成部分,它提供了有效地存储和管理数据的能力。
结构化查询语言(SQL)是一种用于管理和操作关系型数据库的标准化语言。
本实验报告旨在通过实际操作和实验结果的分析,探讨SQL在数据库中的应用和效果。
2. 实验目的本次实验的主要目的是熟悉和掌握SQL语言的基本操作,包括数据的查询、插入、更新和删除等。
通过实验,我们可以进一步了解SQL语言的特点和使用方法,加深对数据库管理系统的理解。
3. 实验环境本次实验使用的数据库管理系统为MySQL,它是一种开源的关系型数据库管理系统。
MySQL提供了强大的功能和灵活的配置选项,被广泛应用于各种规模的应用程序中。
4. 实验步骤4.1 数据库连接在实验开始之前,我们首先需要建立与数据库的连接。
通过使用MySQL提供的连接函数,我们可以指定数据库的主机地址、用户名和密码等信息,以便进行后续的操作。
4.2 数据库创建在连接成功后,我们可以使用SQL语句创建一个新的数据库。
通过指定数据库的名称和字符集等属性,我们可以灵活地创建适合自己需求的数据库。
4.3 数据表创建数据库中的数据以表的形式进行组织和存储。
在本次实验中,我们将创建一个名为"students"的数据表,用于存储学生的基本信息。
通过指定表的字段和属性,我们可以定义每个字段的数据类型和约束条件。
4.4 数据插入在数据表创建完成后,我们可以使用SQL语句向表中插入数据。
通过指定插入的字段和对应的值,我们可以将具体的数据添加到表中。
在插入数据时,我们还可以使用事务来确保数据的完整性和一致性。
4.5 数据查询数据查询是SQL语言的核心功能之一。
通过使用SELECT语句,我们可以从表中检索所需的数据。
SELECT语句可以使用不同的条件和运算符进行过滤和排序,以满足不同的查询需求。
4.6 数据更新和删除除了查询,SQL语言还提供了更新和删除数据的功能。
实验三SQL(二)SQL语言进行简单查询实验报告范文
实验三SQL(二)SQL语言进行简单查询实验报告范文实验目的:1.掌握SQL查询语句的一般格式2.掌握简单数据查询操作。
3.熟练掌握各种查询条件的表示。
4.掌握排序和分组操作在SQL语句中的实现。
5.掌握集函数的使用。
实验内容;1.创建学生表tudent、课程表coure和选课表SC,并输入数据(注意数据的完整性。
);(可以使用实验一中已经建立的表和数据)2.对各表中的数据进行不同条件的查询;1)查询全体学生的学号和姓名2)3)4)5)6)7)8)9)查询全体学生的详细记录查询所有选修过课程的学生学号查询考试有不及格的学生学号查询不是信息系(IS)、计算机系(CS)的学生性别、年龄、系别查询选修了4号课的学生学号和成绩,结果按成绩降序排列查询每个课程号和相应的选课人数查询计算机系(CS)的学生姓名、年龄、系别查询年龄18-20岁的学生学号、姓名、系别、年龄;10)查询姓刘的学生情况11)查询既选修1号课程,又选修2号课程的学生学号12)查询学生的姓名和出生年份(今年2003年)13)查询没有成绩的学生学号和课程号14)查询总成绩大于200分的学生学号15)查询每门课程不及格学生人数16)查询不及格课程超过3门的学生学号17)查询年龄在10到19岁之间的学生信息18)查询全体学生情况,按所在系升序排列,同一个系的学生按年龄降序排列19)查询选了1号课程的学生平均成绩20)查询选了3号课程的学生的最高分21)查询每个同学的总成绩实验步骤与过程:1.创建学生表tudent、课程表coure和选课表SC,使用实验一中已经建立的表和数据。
2.并输入数据,设置主键。
3.建立索引及三表之间关系。
4.按照SQL语句格式及题目要求输入语句进行以下查询:1、查询全体学生的学号和姓名;2、查询全体学生的详细记录;3、查询所有选修过课程的学生学号;4、查询考试有不及格的学生学号;5、查询不是信息系(IS)、计算机系(CS)的学生性别、年龄、系别;6、查询选修了4号课的学生学号和成绩,结果按成绩降序排列;7、查询每个课程号和相应的选课人数;8、查询计算机系(CS)的学生姓名、年龄、系别;9、查询年龄18-20岁的学生学号、姓名、系别、年龄;10、查询姓刘的学生情况;11、查询既选修1号课程,又选修2号课程的学生学号;12、查询学生的姓名和出生年份(今年2003年);13、查询没有成绩的学生学号和课程号;14、查询总成绩大于200分的学生学号;15、查询每门课程不及格学生人数;16、查询不及格课程超过3门的学生学号;17、查询年龄在10到19岁之间的学生信息;18、查询全体学生情况,按所在系升序排列,同一个系的学生按年龄降序排列;19、查询选了1号课程的学生平均成绩;20、查询选了3号课程的学生的最高分;21、查询每个同学的总成绩实验结果:利用实验一中所建立的表设置主键,建立索引及三表之间关系。
SQL数据的查询和更新实验报告报告
SQL数据的查询和更新实验报告报告实验三、SQL的数据查询1、实验目的熟悉SQL语句的数据查询语言,能够SQL语句对数据库进行单表查询、连接查询、嵌套查询、集合查询和统计查询。
2、实验内容实验内容主要是对数据库进行查询操作,包括如下四类查询方式:单表查询查询的目标表达式为所有列、指定的列或指定的列的运算三种不同。
使用DISTINCT保留字消除重复行。
对查询结果排序和分组。
集合分组使用集函数进行各项统计。
连接查询笛卡儿连接和等值连接。
自连接。
外连接复合条件连接。
多表连接。
嵌套查询通过实验验证对子查询的两个限制条件。
体会相关子查询和不相关子查询的不同。
考察四类谓词的用法,包括:第一类,IN、NOT IN;第二类,带有比较运算符的子查询;第三类,SOME、ANY或ALL谓词的子查询,查询最大值和最小值;第四类,带有EXISTS谓词的子查询,实现“所有”等情况集合运算使用保留字UNION进行集合或运算。
采用逻辑运算符AND或OR来实现集合交和减运算。
3、实验步骤以University_Mis数据库为例,该数据库中有四张如实验一,其中Score是每门课的考试成绩,Scredit是学生所有考试合格课程所获得的积分总数,Ccredit每门课程的学分数。
在数据库中,存在这样的联系:学生可以选择课程,一个课程对应一个教师。
在表Reports中保存学生的选课记录和考试成绩。
1请先输入如下元组,再对数据库进行有关的查询操作:图、Students表图、Teachers表图、Courses表图、Reports表2查询性别为“男”的所有学生的名称并按学号升序排列。
查询学生的选课成绩合格的课程成绩,并把成绩换算为积分。
积分的计算公式为:[1+(考试成绩-60)*]*Ccredit。
考试成绩>=60。
查询学分是3或4的课程的名称。
查询所有课程名称中含有“算法”的课程编号。
查询所有选课记录的课程号。
统计所有老师的平均工资。
数据库实验报告-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查询实验报告
sql查询实验报告SQL查询实验报告一、引言SQL(Structured Query Language)是一种用于管理和操作关系型数据库的语言。
在数据库管理系统中,SQL查询是一项重要的操作,通过使用SQL查询语句可以从数据库中检索所需的数据。
本实验旨在通过实际操作,掌握SQL查询的基本语法和常用技巧。
二、实验目的1. 熟悉SQL查询语句的基本结构和语法;2. 掌握SQL查询中的条件筛选、排序和聚合等操作;3. 学会使用SQL查询语句从数据库中检索所需的数据。
三、实验环境本次实验使用MySQL数据库管理系统,通过MySQL Workbench进行操作。
四、实验步骤1. 连接数据库:打开MySQL Workbench,点击“新建连接”,输入数据库连接信息,成功连接到目标数据库。
2. 创建测试表:创建一个名为“students”的表,包含字段“id”(学生编号)、“name”(学生姓名)、“gender”(学生性别)、“age”(学生年龄)和“score”(学生成绩)。
3. 插入测试数据:向“students”表中插入若干测试数据,包括学生的编号、姓名、性别、年龄和成绩。
4. 执行SQL查询语句:使用SQL查询语句从“students”表中检索所需的数据。
五、实验结果与分析1. 查询所有学生的信息:SELECT * FROM students;通过执行以上查询语句,可以获取到“students”表中所有学生的信息,包括学生的编号、姓名、性别、年龄和成绩。
2. 查询成绩大于80分的学生信息:SELECT * FROM students WHERE score > 80;以上查询语句中的WHERE子句用于筛选成绩大于80分的学生信息,通过执行该语句,可以获取到符合条件的学生的信息。
3. 查询男生的平均成绩:SELECT AVG(score) FROM students WHERE gender = '男';以上查询语句中的AVG函数用于计算符合条件的学生的平均成绩,通过执行该语句,可以获取到男生的平均成绩。
数据查询实验报告总结
数据查询实验报告总结一、引言数据查询是信息技术领域中一项重要的技术,通过查询可以快速获取所需的数据,帮助人们做出准确的决策。
为了加深对数据查询的理解,我们进行了一系列的实验研究。
本报告旨在总结实验过程、结果和收获,并提出一些建议和展望。
二、实验内容本次实验我们采用了关系数据库查询语言SQL(Structured Query Language)来进行数据查询的实践。
具体实验内容如下:1. 数据库建立与数据录入:我们首先设计并建立了一个关系数据库,并录入了1000条实验数据,包括姓名、年龄、性别、身高、体重等信息。
2. SQL基本查询:我们通过使用SQL语句实现了一些基本的数据查询操作,如SELECT、FROM、WHERE、ORDER BY等关键词的使用,掌握了基本的查询语法和操作。
3. 条件查询:我们进一步学习了SQL的条件查询,通过使用WHERE子句结合比较运算符、逻辑运算符和通配符,能够根据特定条件查询出需要的数据。
4. 聚合查询:我们学习了SQL的聚合函数,如SUM、AVG、COUNT等,从而能够进行数据的统计和计算。
5. 多表查询:我们探索了SQL的多表查询,通过JOIN操作和关联条件,实现了多个表之间的数据连接和查询。
三、实验结果通过上述实验,我们获得了以下结果:1. 数据库建立与数据录入:我们成功建立了一个包含1000条记录的数据库,并录入了实验所需的数据。
2. SQL基本查询:我们能够使用基本的SQL语句实现数据查询,如SELECT语句用于选取需要的列,FROM语句用于指定表,WHERE 语句用于设定条件,ORDER BY语句用于排序等。
3. 条件查询:通过使用WHERE子句和运算符,我们可以根据不同的条件查询出满足要求的数据,提高了查询的精确性和效率。
4. 聚合查询:我们可以使用聚合函数对数据进行统计和计算,比如求和、平均值、总数等,实现了对数据的快速分析和汇总。
5. 多表查询:通过使用JOIN操作,我们可以将多个表连接起来进行联合查询,从而获得更丰富的信息和更全面的分析结果。
数据库系统原理实验报告-SQL查询语句
数据库系统原理实验报告姓名:xxx学号:xxxxxxxx专业:xxxxx日期:xxxxxLab2 一、实验目的进一步熟悉关系数据库标准语言SQL。
二、实验环境1)Windows 102)SQL Server 2017三、实验内容给定如学生表、课程表和学生作业表所示的信息。
表1 学生表表2 课程表表3 学生作业表写出如下SQL语句:1.查询数据库中有哪些专业班级。
(5分)Sql语句:SELECT专业班级FROM学生表;查询结果截图:2.查询在1986年出生的学生的学号、姓名和出生日期。
(5分)Sql语句:SELECT学号,姓名,出生日期FROM学生表WHERE出生日期LIKE'1986%';查询结果截图:3.查询05级的男生信息。
(5分)Sql语句:SELECT*FROM学生表WHERE学号LIKE'05%'AND性别='男';查询结果截图:4.查询没有作业成绩的学号和课程号。
(5分)Sql语句:SELECT学号,课程号FROM学生作业表WHERE作业1成绩IS NULL OR作业2成绩IS NULL OR作业3成绩IS NULL;查询结果截图:5.查询选修了K001课程的学生人数。
(5分)Sql语句:SELECT COUNT(DISTINCT学号)FROM学生作业表WHERE课程号='K001';查询结果截图:6.查询数据库中共有多少个班级。
(5分)Sql语句:SELECT COUNT(DISTINCT专业班级)FROM学生表;查询结果截图:7.查询选修三门以上(含三门)课程的学生的学号和作业1平均分、作业2平均分和作业3平均分。
(5分)Sql语句:SELECT学生作业表.学号,AVG(作业1成绩),AVG(作业2成绩),AVG(作业3成绩)FROM学生表,学生作业表WHERE学生表.学号=学生作业表.学号GROUP BY学生作业表.学号HAVING COUNT(*)>2;查询结果截图:8.查询于兰兰的选课信息,列出学号、姓名、课程名。
数据库查询SQL 实验报告
实验报告课程名称:数据库系统概论学院:工程学院专业:年级:班级:姓名:学号:指导教师:年月日教务处制注意:SELECT SNO, SNAME FROM 这些的大小写随意,但是"S-C"."STUDENT"必须是指定大小写,要是改变大小写则可以用"S-C".student加分号,引号会自动变红色. 在SQL语句中用/* 注释内容 */注释。
例3.17 查询全体学生的姓名、学号、所在系SELECT SNAME,SNO,SDEPT FROM"S-C"."STUDENT"例3.18 查询全体学生的详细记录SELECT* FROM"S-C"."STUDENT"例3.19 查询全体学生的姓名及其出生年份SELECT SNAME, 2014-Sage FROM"S-C"."STUDENT"注意:因为2014-Sage在生成表格的时候出现了“?”无法显示,改错方法就是在2014-Sage后面直接加“空格键和别名”如在下题给它取别名WSELECT SNAME, 2014-Sage W FROM"S-C"."STUDENT"例3.20 查询全体学生的姓名、出生年份和所在院系,要求用小写字母表示系名SELECT SNAME,'YEAR OF BIRTH:' ,2014-SAGE ,LOWER(SDEPT)FROM"S-C"."STUDENT"指定别名:SELECT SNAME name,'YEAR OF BIRTH:' birth,2014-SAGE birthday,LOWER(SDEPT) department FROM"S-C"."STUDENT"例3.21 查询选修了课程的学生学号SELECT SNO FROM"S-C"."SC";注意:查询结果中有许多重复行,若想去掉重复,则指定DISTINCT。
SQL实验报告范文
SQL实验报告范文一、实验目的本实验旨在通过使用结构化查询语言(SQL)来实现对关系型数据库的操作,熟悉SQL语言的语法和基本操作,在实际应用中能够灵活运用SQL语句进行数据的查询、插入、更新和删除。
二、实验内容1.创建数据库和数据表2.插入数据3.查询数据4.更新数据5.删除数据三、实验过程1.创建数据库和数据表首先,通过以下命令创建一个名为"employee"的数据库:CREATE DATABASE employee;然后,使用以下命令切换到该数据库:USE employee;接下来,创建一个名为"employees"的数据表,并定义其中的字段和数据类型:CREATE TABLE employeesid INT PRIMARY KEY,name VARCHAR(50),age INT,salary FLOAT2.插入数据使用以下命令向数据表中插入数据:INSERT INTO employees (id, name, age, salary) VALUES (1,'John', 25, 5000);INSERT INTO employees (id, name, age, salary) VALUES (2,'Alice', 30, 6000);INSERT INTO employees (id, name, age, salary) VALUES (3,'Tom', 28, 5500);3.查询数据可以使用SELECT语句来查询数据。
例如,要查询所有员工的信息,可以使用以下命令:SELECT * FROM employees;这将返回表中所有的记录。
还可以使用WHERE子句来进行更精确的查询。
例如,要查询年龄大于25岁的员工信息,可以使用以下命令:SELECT * FROM employees WHERE age > 25;这将返回年龄大于25岁的员工记录。
数据库SQL语句实验报告
《数据库原理及应用》实验报告SQL语句部分总成绩:实验一熟悉SQL SERVER,数据定义实验实验一成绩:一、实验目的1、利用查询分析器创建数据库2、利用查询分析器用SQL语言定义基本表、索引并进行相关操作二、实验步骤及内容在以下实验中,使用学生-课程数据库,它描述了学生的基本信息、课程的基本信息及学生选修课程的信息。
1.创建学生课程数据库5.将以上创建表S、C、SC的SQL命令以.SQL文件的形式保存在磁盘上。
6、在表S上增加“出生日期”属性列。
7、删除表S的“年龄”属性列。
8、删除S姓名列的唯一值约束。
9、修改SC表成绩属性列为精确数字型。
10、在表S上,按“Sno”属性列的唯一值方式建立索引。
11、删除表SC,利用磁盘上保存的.SQL文件重新创建表SC。
12、创建教材P74页习题5中SPJ数据库中的四个关系:S、P、J、SPJ。
三、实验结果:1.创建学生课程数据库create database Studend;create table S(Sno CHAR(9)PRIMARY KEY,Sname CHAR(20)UNIQUE,Ssex CHAR(2),Sage smallint,Sdept char(20),);3.创建课程关系表C :课程号课程名先行课学分Cno Cname Cpno ccreditcreate table C(Cno char(4)primary key,Cname CHAR(40),Cpno char(4),Ccredit SMALLINT,);学号课程号成绩Sno Cno grade create table SC(Sno char(9),Cno char(4),Grade smallint,);5.将以上创建表S、C、SC的SQL命令以.SQL文件的形式保存在磁盘上。
6、在表S上增加“出生日期”属性列。
alter table S add Sbirthday datetime;7、删除表S的“年龄”属性列。
SQL实验三简单查询实验报告
实验报告课程名称数据库原理与应用实验三简单查询实验名称专业年级学号姓名指导教师实验日期表1-4 订单信息(OrderInfo)OrderId UserId CommodityId Amount PayMoney PayWay OrderTime ConfirmSendGoods1yoyo128598邮局汇款2014-03-26012feiyang210500邮局汇款2014-02-06113daxia332397银行转帐2014-01-0811(3)设计数据关系图如下:(4)导入数据--导入数据注意事项,--与插入数据的顺序相同,有主外键关系的,先导主表中的数据,再导子表中的数据--1先导UserInfo或CommoditySort--2再导CommodityInfo 最后导OrderInfo(回答为什么)(5)用SQL语言查询,并对查询结果截图。
--[1]查询UserInfo中全部的行和列。
--[2]查询付款方式为“网上银行”的UserId,PayWay,PayMoney信息。
--查询一下付款的方式不是“网上银行”的订单信息--[3]使用AS关键字来改变结果集中的别名--[4]查询Email为NULL值,UserInfo中的所有信息。
--[5]查询返回限制的行数,使用TOP关键字。
返回性别为1的,前5个用户名及地址。
--[6]在查询的结果中排序,关键字是ORDER BY 升序为ASC,降序为DESC--按购买数量降序,按付款金额升序,(共21条记录)--[7]使用LIKE进行模糊查询--查询用户表中所有用户地址中为四川的用户信息--查询用户表中姓李的用户姓名,地址,电话--[8]BETWEEN ..AND 查询在两个已知值的之间的未知的值--查询订单表中购买数量为2到10之间的数据--查询下单日期不在‘2012-1-1’到‘2013-1-1’之间的订单信息--[9]使用IN在列举值范围内进行查询--查询使用‘网上银行’‘邮局汇款’方式下单的信息--【10】SUM用于对表达式中的列进行求和(只能用于数值型,空值将忽略)--查询商品编号为6的销售总量--按付款方式分别查询商品编号为6的销售总量--【11】AVG求平均值,(只能与数值型一起使用,空值将忽略)(2)use E_marketSelect userid,payway,paymoney From orderinfoWhere payway=‘网上银行’User E_marketSelect *From orderinfoWhere payway!=’网上银行’(3)user E_marketSelect userid as 用户名,paymoney as 付款方式,payway as 付款金额From orderinfo(4)user E_market Select *From userinfo Where email is null(5)use E_marketSelect top 5 userid as 用户名,useraddress as 地址From userinfoWhere gender=1(6)use E_marketSelect userid,payway,amount,paymoney From orderinfoOrder dy amount desc,paymoney asc(7)use E_marketSelect *From userinfoWhere useraddress like ‘四川%’Use E_marketSelect username,useraddress,phone From userinfoWhere username like ‘李%’(8)use E_marketSelect *From orderinfoWhere amount between ‘2’ and ‘10’Use E_marketSelect *From orderinfoWhere ordetime between ‘2012-1-1’ and ‘2013-1-1’(9)use E_marketSelect *From orderinfoWhere payway in (’网上银行’,‘邮局汇款’)(10)use E_marketSelect sum(amount) as 总数,payway From orderinfoWhere commodityid=’6’ group by payway(11)use E_marketSelect avg(sortid)as 类型编号From commoditysortWhere sortname=’图书音像’Use E_marketSelect avg(inprice)as 平均进货价,sortid From commodityinfoWhere sortid=’2’ group by sortid(12) use E_marketSelect max(inprice)as 最高进货价,min(inprice)as 最低进货价From commodityinfoWhere sortid=’1’(13)Use E_market Select count(userid) 人数From userinfo实验总结(包括过程总结、心得体会及实验改进意见等):在查询过程中,稍有不慎就会造成语法错误,需要多熟悉SQL数据库的查询语言,还有注意中文标点的输入也会造成查询的失败,还有空语句的查询也有一些不同之处需要注意,在备份数据库的同时记得要删除原始保存地址,不然会造成数据库二次打开失败和数据迁移不完善的后果。
数据库系统原理实验报告-SQL查询语句
数据库系统原理实验报告:xxx学号:xxxxxxxx专业:xxxxx日期:xxxxxLab2 一、实验目的进一步熟悉关系数据库标准语言SQL。
二、实验环境1)Windows 102)SQL Server 2017三、实验容给定如学生表、课程表和学生作业表所示的信息。
表1 学生表表2 课程表表3 学生作业表K001 0433 60 75 75 K001 0529 70 70 60 K001 0531 70 80 80 K001 0591 80 90 90 K002 0496 80 80 90 K002 0529 70 70 85 K002 0531 80 80 80 K002 0538 65 75 85 K002 0592 75 85 85 K006 0531 80 80 90 K006 0591 80 80 80 M001 0496 70 70 80 M001 0591 65 75 75 S001 0531 80 80 80 S001 0538 60 80写出如下SQL语句:1.查询数据库中有哪些专业班级。
(5分)Sql语句:SELECT专业班级FROM学生表;查询结果截图:2.查询在1986年出生的学生的学号、和出生日期。
(5分)Sql语句:SELECT学号,,出生日期FROM学生表WHERE出生日期LIKE'1986%';查询结果截图:3.查询05级的男生信息。
(5分)Sql语句:SELECT*FROM学生表WHERE学号LIKE'05%'AND性别='男';查询结果截图:4.查询没有作业成绩的学号和课程号。
(5分)Sql语句:SELECT学号,课程号FROM学生作业表WHERE作业1成绩IS NULL OR作业2成绩IS NULL OR作业3成绩IS NULL;查询结果截图:5.查询选修了K001课程的学生人数。
(5分)Sql语句:SELECT COUNT(DISTINCT学号)FROM学生作业表WHERE课程号='K001';查询结果截图:6.查询数据库中共有多少个班级。
数据库SQL查询语句实验报告
实验一简单查询在订单数据库中完成如下的查询(1) 查询所有业务部门的员工姓名、职称、薪水命令:select employeeName ,headShip ,salaryfrom Employeewhere department ='业务科'结果:(2) 查询名字中含有“有限”的客户姓名和所在地。
命令:select CustomerName ,addressfrom Customerwhere CustomerName like '%有限%'结果:(3) 查询出姓“王”并且姓名的最后一个字为“成”的员工。
命令:select *from Employeewhere employeeName like '王%成'结果:(4) 查询住址中含有上海或南昌的女员工,并显示其姓名、所属部门、职称、住址,其中性别用“男”和“女”显示。
命令:select employeeName ,department ,headShip ,address ,case sexwhen 'M' then '男'when 'F' then '女'end as 性别from Employeewhere address like '%上海%' or address like '%南昌%' and sex ='F' 结果:(5) 在表sales中挑出销售金额大于等于10000元的订单。
命令:SELECT orderNo ,sum(quantity *price ) as totalFROM OrderDetailGROUP BY orderNoHA VING sum(quantity *price )>10000结果:(6) 选取订单金额最高的前10%的订单数据。
命令:select TOP 10 PERCENT orderNo , sum(quantity *price ) as totalfrom OrderDetailgroup by orderNoORDER BY total desc结果:(7) 查询出职务为“职员”或职务为“科长”的女员工的信息。
数据库实验报告 简单SQL查询及数据库多表查询
[ ORDER BY order_expression [ ASC | DESC ] ]
添加语句:
INSERT [INTO] table_or_view [(column_list)] data_values
删除语句:
DELETE [ FROM ] table_name WHERE search_condition
1、首先检查表结构:
图2-1输入检查表结构的语句
注意:
(1)表名称不能以数字开头
(2)sp_help语句只能一次执行一句,不能批量执行
2、单条语句插入样例:
插入后
插入后
插入后
插入后
插入后
请同学们自行练习使用单条SQL语句给自己的各个表进行插入
图2-2 各表插入语句样例
2.6.2操作二:UPDATE(更新)
11、请查询输出:班级编号,班级名称,男生,女生。
图2-15 SELECT语句中CASE语句的用法1
12、请查询输出:班级编号,班级名称,男生,女生,合计。
图2-16 SELECT语句中CASE语句的用法2
13、执行以下查询,解释该查询的含义
解释:第一个
图2-17解释SELECT语句
2.7思考题
1.如何使用UNION子句,它必须符合哪两条基本准则?
图2-8 SELECT语句中函数以及复杂子句的用法
5、查询没有成绩记录的学生,查询输出:学号,姓名、的在班级简称。
图2-9 SELECT语句中not in的用法
6、查询某学生的各课成绩(注意确保该学生有课程成绩),结果格式如下:
查询07号学生成绩如下
图2-10用SELECT语句查询自己的成绩
SQL实训报告
SQL实训报告SQL实训报告(通用5篇)随着个人的素质不断提高,报告不再是罕见的东西,不同种类的报告具有不同的用途。
我敢肯定,大部分人都对写报告很是头疼的,以下是小编整理的SQL实训报告,希望能够帮助到大家。
SQL实训报告篇1一、实验目的SQL(Structured Query Language)语言是关系数据库的标准语言。
是一种介于关系代数与关系演算之间的结构化查询语言,其功能并不仅仅是查询,SQL语言是一个通用的、功能极强的关系数据库语言。
本次实验了解SQL语言中DDL语言的CREATE、DROP、ALTER 对表、索引、视图的操作,掌握在Navicat for MySQL中用DDL语言进行对表、索引、视图的增加、删除和改动。
掌握使用SQL语句增加或删除约束,加深对完整性概念的理解,达到灵活应用的目的。
掌握使用SQL语句定义和删除同义词。
二、实验要求1、实验前:预习实验内容,学习相关知识。
2、实验中:按照实验内容要求进行实验,实验时注意每种SQL语句的基本命令及各个关键字的含义,做好实验记录。
3、实验后:分析实验结果,总结实验知识,得出结论,按格式写出实验报告。
4、在整个实验过程中,要独立思考、独立按时完成实验任务,不懂的要虚心向教师或同学请教。
5、要求按指定格式书写实验报告,且报告中应反映出本对次实验的总结,下次实验前交实验报告。
三、实验的重点与难点1、重点:(1)用SQL语句定义表结构(创建、修改和删除)。
(2)用SQL语句定义索引(创建、删除)。
(3)用SQL语句定义视图(创建、删除)。
(4)用SQL语句定义同义词(创建、删除)。
2、难点:完整性约束的定义、增加及删除。
同义词的定义与删除。
四、仪器设备及用具硬件:投影仪、每位同学分配已连接校园网PC机一台。
软件:本机已安装MySQL 5.5数据库平台。
五、教学过程(一)实验预习(1)熟悉SQL中的CREATE、DROP、ALTER语句的格式及所用的关键字含义及用法。
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)求选修了学生“*****”所选修的全部课程的学生学号和姓名。
(12)查询每一门课的间接先修课。
(13)列出所有学生所有可能的选课情况。
(14)列出每个学生的学号及选修课程号,没有选修的学生的学号也一并列出。
(15)输出与“张三”同性别并位于同一个系的所有同学的姓名。
(请至少写出两种查询语句)(16)查询至少被两名男生选修的课程名。
(17)对被两名以上学生所选修的课程统计每门课的选课人数。
要求输出课程号和选修人数,查询结果按人数降序排列;若人数相同,按课程号升序排列。
(18)列出选修课程超过3门的学生姓名及选修门数。
(19)检索至少选修课程号为01和03的学生姓名。
(20)检索至少选修课程“数学”和“操作系统”的学生学号。
数据库原理实验报告-数据的查询及更新
实验题目二、数据的查询及更新一、实验目的熟悉SQL语句的使用方法,学习使用SQL语句来实现数据查询。
掌握基本的SELECT 查询及其相关子句的使用;掌握复杂的SELECT查询,如多表查询、子查询、连接查询和嵌套查询等。
二、实验内容和要求学习使用SQL查询分析器查询数据,练习查询语句的使用:1.掌握SELECT 语句的完整结构,包括简单查询、嵌套查询、连接查询等基本实现方法;2.掌握存储查询结果的方法;体会各种查询的异同及相互之间的转换;3.分析各种查询的执行过程,为综合应用打下良好的基础。
三、实验主要仪器设备和材料1.计算机及操作系统:PC机,Windows 2000/XP或更高版本;2.数据库管理系统:SQL Server 2005或更高版本;四、实验方法、步骤及结果测试在实验一的基础上,完成以下实验内容。
1.删除以下各表中已有数据,将下列数据插入到相应的基本表中。
2. 简单查询使用SQL语言完成以下查询。
(4)查询“计算机科学与技术”专业并且班级编码为‘macr1601’的学生的学号、姓名学习在SQL Server 中安装“Northwind”数据库,并完相应查询操作。
(1)安装“Northwind”数据库。
A.运行安装文件(如SQL2000SampleDb.msi)。
B.右击数据库,点击“附加”,添加对应的数据库文件(.mdf)。
C.执行操作。
(2)对NothWind. Products表进行简单查询。
ProductName;五、思考题请举例说明:对于带“EXISTS”谓词的、内外层相关的多层嵌套查询,如何构造此类查询的SQL语句?。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
group byCustomerNo2612
having sum(quantity2612*price2612)>8000
结果:
(9)选取编号界于“C20050001”和“C20050004”的客户编号、客户名称、客户地址。
命令:
SELECT CustomerNo2612,CustomerName2612,address2612
where exists
(select * from Employee2612 as b
where a.hireDate2612=b.hireDate2612 and a.employeeNo2612!=b.employeeNo2612)
group by hireDate2612,employeeName2612
命令:
select b.ProductName2612,a.ProductNo2612,a.total,a.price2612
from (
select sum(quantity2612) as total,ProductNo2612,price2612
from OrderDetail2612
group byProductNo2612,price2612
FROM Customer2612
WHERE CustomerNo2612 BETWEEN 'C20050001' AND 'C20050004'
结果:
(11)找出同一天进入公司服务的员工。
命令:
select hireDate2612,employeeName2612
from Employee2612 as a
group by a.ProductNo2612,quantity2612,price2612,ProductName2612
having price2612>400
select a.ProductNo2612,ProductName2612,quantity2612,price2612
from Product2612 a RIGHTOUTER JOIN OrderDetail2612 b ON a.ProductNo2612=b.ProductNo2612
from OrderDetail2612
group by ProductNo2612,price2612) as a , Product2612 as b
where a.ProductNo2612=b.ProductNo2612
结果:
(16)查询单价高于400元的商品编号、商品名称、订货数量和订货单价。
having price2612>400) as a , Product2612 as b
where a.ProductNo2612=b.ProductNo2612
结果:
(17)分别使用左外连接、右外连接、完整外部连接查询单价高于400元的商品编号、商品名称、订货数量和订货单价,并分析比较检索的结果。
结果:
(4)查询住址中含有上海或南昌的女员工,并显示其姓名、所属部门、职称、住址,其中性别用“男”和“女”显示。
命令:
select employeeName2612,department2612,headShip2612,address2612,
case sex2612
when 'M' then '男'
(SELECT sum(quantity2612*price2612)
FROM OrderDetail2612 a,OrderMaster2612 b
WHERE a.orderNo2612=b.orderNo2612 and salerNo2612='E2005002' and orderDate2612='2008-01-09 00:00:00.000'
GROUP BY a.orderNo2612 )
结果:
(13)查询既订购了“52倍速光驱”商品,又订购了“17寸显示器”商品的客户编号、订单编号和订单金额。
命令:
select b.CustomerNo2612,a.orderNo2612,sum(quantity2612*price2612) as total
where a.department2612=b.department2612
结果:
(15)查询每种商品的商品编号、商品名称、订货数量和订货单价。
命令:
select b.ProductName2612,a.ProductNo2612,a.total,a.price2612
from (
select sum(quantity2612) as total,ProductNo2612,price2612
SELECT orderNo2612,sum(quantity2612*price2612) as total
FROM OrderDetail2612
GROUP BY orderNo2612
HAVING sum(quantity2612*price2612)>10000
结果:
(6)选取订单金额最高的前10%的订单数据。
when 'F' then '女'
end as性别
from Employee2612
where address2612 like '%上海%' or address2612 like '%南昌%' and sex2612='F'
结果:
(5)在表sales中挑出销售金额大于等于10000元的订单。
命令:
命令:
select a.employeeName2612,a.sex2612,a.department2612,a.headShip2612
from Employee2612 as a,(select * from Employee2612 where employeeName2612='陈诗杰') as b
from OrderDetail2612 as a,OrderMaster2612 as b,Product2612 as c,
(select d.orderNo2612 from OrderDetail2612 as d,Product2612 as e where ProductName2612='17寸显示器'and d.ProductNo2612=e.ProductNo2612) as f
实验一
在订单数据库中完成如下的查询
(1)查询所有业务部门的员工姓名、职称、薪水
命令:
select employeeName2612,headShip2612,salary2612
from Employee2612
where department2612='业务科'
结果:
(2)查询名字中含有“有限”的客户姓名和所在地。
where c.ProductName2612='52倍速光驱' and a.orderNo2612=b.orderNo2612 and a.orderNo2612=f.orderNo2612
group byb.CustomerNo2612,a.orderNo2612
结果:
(14)查找与“陈诗杰”在同一个单位工作的员工姓名、性别、部门和职务。
FROM Employee2612 a,OrderMaster2612 b,OrderDetail2612 c,Product2612 d
WHERE employeeNo2612=salerNo2612 and b.orderNo2612=c.orderNo2612 and c.ProductNo2612=d.ProductNo2612
命令:
SELECT employeeNo2612,employeeName2612,
case sex2612 when 'F' then '女'
when 'M' then '男'
end as性别, ProductName2612,quantity2612,price2612,quantity2612*price2612 orderSum,ISNULL(convert(char(10),orderDate2612,120),'')日期
WHERE a.CustomerNo2612=b.CustomerNo2612 and b.orderNo2612=c.orderNo2612
and year(orderDate2612)=2008 and month(orderDate2612)=3
group by a.ProductNo2612,quantity2612,price2612,ProductName2612
having price2612>400
结果:
(18)查找每个员工的销售记录,要求显示销售员的编号、姓名、性别、商品名称、数量、单价、金额和销售日期,其中性别使用“男”和“女”表示,日期使用“yyyy-mm-dd”格式显示。
group by a.ProductNo2612,quantity2612,price2612,ProductName2612
having price2612>400
select a.ProductNo2612,ProductName2612,quantity2612,price2612
from Product2612 a FULL OUTER JOIN OrderDetail2612 b ON a.ProductNo2612=b.ProductNo2612