实验4 查询与sql操作
- 格式:doc
- 大小:59.50 KB
- 文档页数:3
实验一数据定义操作●实验目的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数据库实验报告大一SQL数据库实验报告一、引言SQL(Structured Query Language)是一种用于管理和操作关系型数据库的语言。
在大一的数据库课程中,我们学习了SQL语言的基本语法和常用操作,通过实验来巩固和应用所学知识。
本篇实验报告将对我在大一SQL数据库实验中的学习和实践进行总结和归纳。
二、实验内容本次实验主要涉及以下内容:1. 创建数据库和表:使用CREATE语句创建数据库和表,定义表的结构和字段。
2. 插入数据:使用INSERT语句向表中插入数据,测试数据的正确性和完整性。
3. 查询数据:使用SELECT语句查询数据库中的数据,包括条件查询、排序和限制查询结果数量等。
4. 更新数据:使用UPDATE语句更新表中的数据,修改指定字段的值。
5. 删除数据:使用DELETE语句从表中删除数据,删除指定条件的记录。
6. 数据库连接:使用JOIN语句实现多表连接查询,关联不同表中的数据。
7. 数据库事务:使用BEGIN TRANSACTION、COMMIT和ROLLBACK语句实现事务的管理和控制。
三、实验过程和结果1. 创建数据库和表我使用CREATE DATABASE语句创建了一个名为“学生管理”的数据库。
然后,我在该数据库中创建了两个表,分别是“学生信息表”和“课程信息表”。
学生信息表包括学生ID、姓名、年龄和性别等字段,课程信息表包括课程ID、课程名称和学分等字段。
2. 插入数据接下来,我使用INSERT INTO语句向学生信息表和课程信息表中插入了一些测试数据,包括学生的基本信息和课程的相关信息。
插入数据后,我使用SELECT语句确认数据的插入是否成功,并验证了数据的完整性和准确性。
3. 查询数据我使用SELECT语句进行了多种查询操作,包括条件查询、排序和限制查询结果数量等。
例如,我使用WHERE子句实现了根据学生姓名和课程名称进行查询的功能;使用ORDER BY子句对查询结果按照指定字段进行排序;使用LIMIT子句限制查询结果的数量。
实验四数据库操作语言SQL一.实验目的⚫了解使用SQL中DDL语句创建数据库和表的方法⚫熟练掌握使用SQL中DML语句对数据库进行查询、插入、修改和删除等操作的方法⚫掌握可编程对象视图和存储过程的创建与使用方法,了解触发器的创建方法二.实验环境及素材⚫MySQL和Navicat for MySQL⚫bookstore数据库的脚本文件bookstore.sql三.实验内容首先创建一个bookstore数据库,执行bookstore.sql脚本文件实现表的创建及数据记录的添加。
然后在bookstore数据库中完成以下题目(bookstore数据库设计说明参见10.1节)。
①在Navicat for MySQL中,创建数据库bookstore。
②右击数据库bookstore,选择“运行SQL文件…”,在对话框中浏览选择“bookstore.sql”文件,点击“开始”即可完成数据表定义及添加数据记录。
③在左栏连接窗口展开数据库“bookstore”/表,右击“表”选“刷新”菜单,即可看到恢复的各数据表。
9.创建和使用存储过程。
解析:存储过程是经过编译的SQL语句的集合。
用户首先创建存储过程,然后在程序中调用该存储过程执行。
创建存储过程可以在Navicat for MySQL中使用向导建立,也可以使用SQL的CREATE PROCDURE语句。
存储过程可以接受参数、也可将查询信息通过输出参数返回调用者。
常用存储过程的语法格式:CREATE PROCDURE 存储过程名( [形式参数列表])SQL语句段“形式参数列表”中多个参数之间用逗号分隔,如果没有参数,则()中为空。
每个参数由输入输出类型、参数名和参数类型三部分组成,定义规则如下:[IN|OUT|INOUT 参数名类型输入输出类型中:IN是输入参数,即把数据传递给存储过程;OUT是输出参数,即从存储过程返回值;INOUT表示输入输出,即传入也能返回值。
数据库运维形考实验4实验训练4:数据库系统维护作业实验目的:本实验旨在通过创建和维护数据库,掌握Mysql数据库的创建和维护的不同方法和途径,并理解实际数据库所包含的各要素。
实验内容:1.数据库创建与维护1)创建学生选课数据库中所包含的数据库表,包括学生、课程和选修表,要求为各数据库表属性选择合适的数据类型,并确定列名、数据类型、是否允许空值等。
2)查看和修改表结构,选择一个数据库表,练对其表结构进行相应的修改。
3)练用交互式的SQL语句分别完成以上操作。
4)对学生数据库中的三张表分别插入数据。
5)对表中的数据进行修改。
6)对表中的数据进行删除操作。
2.建立视图1)建立学生选修课程信息视图,包括学生学号、姓名、所在系、选修的课程编号、课程名称、成绩。
2)修改以上视图,增加学生所在班级信息。
3)对以上视图进行删除。
实验要求:1.利用SQL Server相关机制,根据具体应用领域创建并维护数据库系统,为后续各个实验提供前期准备。
2.独立完成以上实验内容,并在安装和数据库运行后熟悉SQL SERVER的各种运行管理。
3.完成实验报告。
实验环境:Windows 8 PC机、Mysql配置的环境、Mysql命令行工具、Workbench可视化工具。
实验步骤及结果分析:1.创建student数据库,通过命令行工具输入密码,使用相应数据库,使用create table语句创建数据库表,解决中文乱码问题。
2.进行属性查询操作,通过select语句查询数据库表的属性信息,包括列名、数据类型、约束等。
查询表结构,即查看各个属性和属性的完整性约束等。
使用desc student语句可以展示我们创建的数据的所有信息,包括属性名、类型、默认初始情况和约束等。
在默认数据库中,发现最后一个属性classno的属性为varchar(3),而实际数据中classno是4位数,导致存储时与原数据不匹配。
因此,需要修改该属性为4位长度。
实验4:数据库的高级查询操作实验四:数据库的各类数据查询操作一、实验目的掌握SQL程序设计基本规范,熟练运用SQL语言实现数据的各种查询和设计,包括连接查询、嵌套查询、集合查询等。
二、实验内容和要求针对KingbaseES数据库设计单个表针对自身的连接查询,设计多个表的连接查询;设计各种嵌套查询和集合查询。
了解和掌握SQL查询语句各个子句的特点和作用,按照SQL程序设计规范写出具体的SQL查询语句,并调试通过。
三、实验步骤连接查询1. 查询每个学生及其选修课程的情况:select student.*, sc.* from student, sc where student.sno=sc.sno比较: 笛卡尔集: select student.*, sc.* from student, sc自然连接: select student.sno, sname, ssex, sdept, cno, grade from student, sc where student.sno=sc.sno2. 查询每一门课程的间接先行课(只求两层即先行课的先行课):select /doc/3d4429586.html,o, Second.pcno 间接先行课from course First, course Second where First.pcno=/doc/3d4429586.html,o比较:select /doc/3d4429586.html,o, Second.pcno 间接先行课from course First, course Second where First.pcno=/doc/3d4429586.html,o and Second.pcno is not null3. 列出所有学生的基本情况和选课情况, 若没有选课,则只列出基本情况信息:SQL Server 中: select s.sno, sname, ssex,sdept, cno, grade from student s, sc sc where s.sno*=sc.sno4. 查询每个学生的学号, 姓名, 选修的课程名和成绩:select S.sno, sname, cname, grade from student S, course C, sc SC where S.sno=SC.sno and /doc/3d4429586.html,o=/doc/ 3d4429586.html,o5. 查询平均成绩在80分以上的学生姓名Select sname from student,sc where student.sno=sc.sno GROUP BY sc.snoHAVING AVG(sc.grade)>80;高级查询使用带IN谓词的子查询1.查询与’刘晨’在同一个系学习的学生的信息:select * from student where sdept in(select sdept from student where sname='刘晨')比较: select * from student where sdept =(select sdept from student where sname='刘晨') 的异同比较: select * from student where sdept =(select sdept from student where sname='刘晨') and sname<>'刘晨' 比较: select S1.* from student S1, student S2 where S1.sdept=S2.sdept and S2.sname='刘晨'2.查询选修了课程名为’信息系统’的学生的学号和姓名:SQL Server中: select sno, sname from student where sno in (select sno from sc where cno in(select cno from course where cname='信息系统'))3.查询选修了课程’1’和课程’2’的学生的学号:select sno from student where sno in (select sno from sc where cno='1')and sno in (select sno from sc where cno='2') 比较: 查询选修了课程’1’或课程’2’的学生的sno:select sno from sc where cno='1' or cno='2'比较连接查询:select A.sno from sc A, sc B where A.sno=B.sno and /doc/3d4429586.html,o='1' and/doc/3d4429586.html,o='2'使用带比较运算的子查询1.查询比’刘晨’年龄小的所有学生的信息:select * from student where sage<(select sage from student where sname='刘晨')使用带Any, All谓词的子查询2.查询其他系中比信息系(IS)某一学生年龄小的学生姓名和年龄;select sname, sage from student where sage <any< p=""> (select sage from student where sdept='IS')and sdept<>'IS'3.查询其他系中比信息系(IS)学生年龄都小的学生姓名和年龄:select sname, sage from student where sage <all< p="">(select sage from student where sdept='IS')and sdept<>'IS'4.查询与计算机系(CS)系所有学生的年龄均不同的学生学号, 姓名和年龄:select sno,sname,sage from student where sage<>all(select sage from student where sdept='CS')使用带Exists谓词的子查询和相关子查询5.查询与其他所有学生年龄均不同的学生学号, 姓名和年龄:select sno,sname,sage from student A where not exists(select * from student B where A.sage=B.sage andA.sno<>B.sno)6.查询所有选修了1号课程的学生姓名:select sname from student where exists(select * from sc where sno=student.sno and cno='1')7.查询没有选修了1号课程的学生姓名:select sname from student where not exists(select * from sc where sno=student.sno and cno='1')8.查询选修了全部课程的学生姓名:select sname from student where not exists(select * from course where not exists( select * from sc where sno=student.sno and cno=/doc/3d4429586.html,o))12. 查询至少选修了学生95002选修的全部课程的学生的学号:select distinct sno from sc A where not exists(select * from sc B where sno='95002'and not exists(select * from sc C where sno=A.sno and cno=/doc/3d4429586.html,o))13. 求没有人选修的课程号cno和cnamecname:select cno,cname from course C where not exists(select * from sc where /doc/3d4429586.html,o=/doc/ 3d4429586.html,o )14. 查询满足条件的(sno,cno)对, 其中该学号的学生没有选修该课程号cno 的课程select sno,cno from student,course where not exists(select * from sc where cno=/doc/3d4429586.html,o and sno=student.sno)15. 查询每个学生的课程成绩最高的成绩信息(sno,cno,grade):select * from sc A where grade=(select max(grade) from sc where sno=A.sno )集合查询1. 查询数学系和信息系的学生的信息;select * from student where sdept='MA' union select * from student where sdept='IS'2. 查询选修了1号课程或2号课程的学生的学号:select sno from sc where cno='1'Unionselect sno from sc where cno='2'思考:1. 连接查询速度是影响关系数据库性能的关键因素。
四川师范大学计算机学院实验报告册院系名称:计算机科学学院课程名称:数据库原理概论实验学期2013 年至2014 年第二学期专业班级:网络工程3班姓名:学号:指导教师:**实验最终成绩:《数据库原理》实验大纲课程总学时:64学分:2实验学时:32 实验个数: 7 实验学分: 1课程性质:(专业必修)适用专业:计算机软件工程,计算机科学技术,网络工程,电子商务教材及参考书:数据库系统概论大纲执笔人:俞晓大纲审定人:一、实验课的性质与任务数据库技术是计算机科学技术中发展最快的领域之一,也是应用最广的技术之一,它已成为计算机信息系统与应用系统的核心技术和重要基础。
本实验课程主要是在SQL SERVER 下实现SQL语言的基本操作:建立、修改、删除表格等数据库对象,插入、修改、删除表格中的数据,对数据做多种查询。
并熟悉使用SQL SERVER的系统工具创建数据库,用户等。
最后用VB连接SQL SERVER 做一个简单的数据库系统。
该课程注重教学体系的严密性、教学内容的实用性、知识体系的扩展性。
通过练习,提高学生的动手能力,使学生能较熟练的在SQL SERVER 数据库管理系统中实现数据管理和维护。
二、实验课程目的与要求1.实验目的:本课程的目的和任务是使学生全面地了解和掌握数据库的原理,SQL SERVER系统的基本操作和应用技术,以适应社会对数据库技术应用的大量需求。
2.实验要求:1)实验安排在上机时间进行。
2)实验以前,学生应对实验设计的相关知识点和相关设计技术有所了解3)每个实验要求写出实验报告(实验报告包括:实验内容、目的、实现方法、调试结果)四、实验内容安排:实验1 熟悉SQL SERVER的环境(操作性实验2学时)实验目的了解SQL Server数据库的各个工具软件实验内容使用SQL Server的相关工具,其中包括查询分析器和企业管理器,在查询分析器里写简单的SQL语句,在企业管理器中建立表格等。
实验4 SQL 语言——SELECT 查询操作1实实验验44 S S Q Q L L 语语言言————S S E E L L E E C C T T 查查询询操操作作实验示例实验示例中要使用包括如下三个表的“教学管理”数据库JXGL :(1)学生表Student ,由学号(Sno)、姓名(Sname)、性别(Ssex)、年龄(Sage)、所在系(Sdept)五个属性组成,记作:Student(Sno,Sname,Ssex,Sage,Sdept),其中主码为Sno 。
(2)课程表Course ,由课程号(Cno)、课程名(Cname)、先修课号(Cpno)、学分(Ccredit)四个属性组成,记作:Course(Cno,Cname,Cpno,Ccredit),其中主码为Cno 。
(3)学生选课SC ,由学号(Sno)、课程号(Cno)、成绩(Grade)三个属性组成,记作:SC(Sno,Cno,Grade),其中主码为(SNO,CNO)。
1、在SQL SERVER 查询分析器或企业管理器(以具有相应操作权限的某用户登录)的SQL 操作窗口中执行如下命令创建数据库。
需要说明的是不同数据库系统其创建数据库的命令或方式有所不同。
CREATE DATABASE JXGL2、刷新数据库目录后,选择新出现的JXGL 数据库,在SQL 操作窗口中,创建Student 、SC 、Course 三表及表记录插入命令如下:Create Table Student( Sno CHAR(5) NOT NULL PRIMARY KEY(Sno),Sname VARCHAR(20),Sage SMALLINT CHECK(Sage>=15 AND Sage<=45),Ssex CHAR(2) DEFAULT '男' CHECK (Ssex='男' OR Ssex='女'),Sdept CHAR(2));Create Table Course( Cno CHAR(2) NOT NULL PRIMARY KEY(Cno),Cname VARCHAR(20),Cpno CHAR(2),Ccredit SMALLINT);Create Table SC( Sno CHAR(5) NOT NULL CONSTRAINT S_F FOREIGN KEY REFERENCES Student(Sno), Cno CHAR(2) NOT NULL,Grade SMALLINT CHECK ((Grade IS NULL) OR (Grade BETWEEN 0 AND 100)),PRIMARY KEY(Sno,Cno),数据库原理与应用实验指导2FOREIGN KEY(Cno) REFERENCES Course(Cno));INSERT INTO Student VALUES('98001','钱横',18,'男','CS');INSERT INTO Student VALUES('98002','王林',19,'女','CS');INSERT INTO Student VALUES('98003','李民',20,'男','IS');INSERT INTO Student VALUES('98004','赵三',16,'女','MA');INSERT INTO Course VALUES('1','数据库系统', '5',4);INSERT INTO Course VALUES('2','数学分析',null ,2);INSERT INTO Course VALUES('3','信息系统导论','1',3);INSERT INTO Course VALUES('4','操作系统原理','6',3);INSERT INTO Course VALUES('5','数据结构','7',4);INSERT INTO Course VALUES('6','数据处理基础',null,4);INSERT INTO Course VALUES('7','C 语言','6',3);INSERT INTO SC VALUES('98001','1',87);INSERT INTO SC VALUES('98001','2',67);INSERT INTO SC VALUES('98001','3',90);INSERT INTO SC VALUES('98002','2',95);INSERT INTO SC VALUES('98002','3',88);[例1] 查考试成绩大于等于90的学生的学号。
实验四简单查询和连接查询1. 简单查询实验用Transact-SQL语句表示下列操作,在“学生选课“数据库中实现其数据查询操作:(1) 查询数学系学生的学号和姓名。
select sno,snamefrom studentwhere dept='数学系';(2) 查询选修了课程的学生学号。
select distinct(sno)from sc;(3) 查询选修课程号为0101的学生学号和成绩,并要求对查询结果按成绩降序排列,如果成绩相同则按学号升序排列。
select distinct(sno),gradefrom scwhere cno='0101'order by grade desc,sno asc;(4) 查询选修课程号为0101的成绩在80-90 分之间的学生学号和成绩,并将成绩乘以系数0.8 输出。
select distinct(sno),grade*0.8 as'sore'from scwhere cno='0101'and grade between 80 and 90;(5) 查询数学系或计算机系姓张的学生的信息。
select*from studentwhere dept in('数学系','计算机系')and sname like'张%';(6) 查询缺少了成绩的学生的学号和课程号。
select sno,cnofrom scwhere grade is null;2. 连接查询实验用Transact-SQL语句表示,并在“学生选课”数据库中实现下列数据连接查询操作:(1) 查询每个学生的情况以及他(她)所选修的课程。
select student.*,amefrom student,sc,coursewhere student.sno=sc.sno and o=o;(2) 查询学生的学号、姓名、选修的课程名及成绩。
sql数据库实训报告一、实训目的本次实训旨在让学生了解SQL语言,熟悉数据表的操作,掌握SQL数据库的基本使用及维护方法,并最终能够运用所学知识完成数据库的设计与实现。
二、实训过程1. 实验环境搭建本次实训所需的实验环境为:MySQL数据库。
首先需要在本地计算机上安装MySQL,并配置好环境变量。
2. 数据库设计在完成实验环境搭建后,接着需要进行数据库设计。
本次实训的数据库设计主要包括以下几个方面:(1)确定所需数据表及表中字段;(2)确定表与表之间的关系;(3)确定表中字段的类型及长度。
3. 数据库操作完成数据库设计后,需要通过SQL语言进行数据库的操作。
本次实训的数据库操作主要包括以下几个方面:(1)表的创建、修改、删除;(2)数据的插入、更新、删除;(3)基本查询,包括SELECT语句的使用及WHERE语句的使用。
4. 数据库维护SQL数据库的维护主要包括以下几个方面:(1)备份与恢复数据;(2)性能优化,包括索引优化、查询语句的优化等;(3)安全管理,包括用户管理,角色管理,权限管理等。
三、实训成果通过本次实训,我成功地完成了以下工作:(1)完成MySQL数据库的安装与配置;(2)完成数据库的设计,包括三个数据表的创建及表间关系的建立;(3)成功进行了数据库的基本操作,包括数据的插入、更新、删除等;(4)成功进行了基本查询,包括SELECT语句的使用及WHERE语句的使用;(5)对数据库进行了一些性能优化,包括索引优化、查询语句的优化等。
四、实训心得通过本次SQL数据库实训,我深刻地认识到SQL语言的重要性,掌握了SQL数据库的基本使用及维护方法,并在实践中不断地完善自己的实验能力。
在今后的工作中,我将继续加强对SQL语言的学习,并开展更为深入的数据库设计及开发工作。
实验4 查询与SQL操作
订货管理系统
仓库表
职工表
供应商表
订购单表
实验目的:
通过上机操作实验,熟练掌握SQL语言的用法,并能够灵活的运用SQL对数据库中的各种数据记录进行各种查询操作。
实验内容:
根据如上“订货管理”数据库各表,然后根据该数据库分别写出如下操作的各项命令并上机检验执行:(设计视图和SQL视图操作都要熟悉)
1 简单查询
例:1、从职工关系中检索所有工资值。
SELECT 工资FROM 职工
可以看到在结果中有重复值,若要去掉重复值只需要指定DISTINCT短语。
SELECT DISTINCT 工资FROM 职工
2、查询仓库关系中的所有元组。
SELECT仓库.* FROM 仓库
3、查询工资多于1230元的职工号。
SELECT 职工号FROM 职工WHERE 工资>1230 练习:查询出在仓库”WH1”或”WH2”工作,并且工资少于1250元的职工信息
2 简单的联接查询
例:查询工资多于1230元的职工号和他们所在的城市。
SELECT 职工号,城市FROM 职工,仓库WHERE (工资>1230)AND(职工.仓库号=仓库.仓库号
练习:找出工作在面积大于400的仓库的职工号以及这些职工工作所在的城市。
3 嵌套查询
例:哪些城市至少有一个仓库的职工工资为1250元?
SELECT 城市FROM 仓库WHERE 仓库号IN(SELECT 仓库号FROM 职工WHERE 工资=1250)
练习:找出和职工E4挣同样工资的所有职工。
4 几个特殊运算符
BETWEEN …AND…:指定查询的条件是在什么范围内(数值)LIKE(*|?):指定查询与通配符相匹配的字符。
例:查询出工资在1220元到1240元范围内的职工信息。
SELECT * FROM 职工WHERE 工资BETWEEN 1220 AND 1240 (或:工资>=1220 AND工资<=1240)
2、,不要工厂或其他供应商的信息。
这是一个字符串匹配的查询,显然应该使用LIKE运算符。
SELECT * FROM 供应商WHERE 供应商名LIKE “*公司”
练习:从供应商关系中检索出公司名第三、四个字符为”电子”的公司信息
5 排序查询
例:1.按职工工资值升序检索出全部职工信息(默认为升序)
SELECT * FROM 职工ORDER BY 工资
练习:先按仓库号排序,再按工资排序并输出全部信息
6 简单的计算查询
例:1.求支付的工资总数
Select sum(工资) from 职工
练习:
1.求上海和北京的仓库职工的工资总和
2.求出在”WH2”仓库中工作的职工的最高工资和最低工资
7 分组与计算查询
例:1求出每个仓库的职工的工资总和
Select 仓库号,sum(工资) from 职工GROUP BY 职工.仓库号
2.求至少有两个职工的每个仓库的平均工资
Select 仓库号,avg(工资) from 职工GROUP BY 职工.仓库号having count(*)>=2 练习:分组统计订购单表中每个职工所经手订单的最高总金额的记录
8 利用空值查询
例:找出尚未确定供应商的订购单。
SELECT * FROM 订购单WHERE 供应商号IS NULL
9 更新操作:
1. 往订购单关系中插入元组
(”e7”,”s4”,”or01”,2001/05/25,15000)
2. 给wh1仓库的职工提高10%的工资
3. 要删除仓库关系中仓库号值是wh2的元组
10 按书上的要求和步骤验证例题3.11-3.35。