实验SQL语句
实验3利用SQL语句创建数据库、表和表间关系
实验三利用SQL语句创建数据库、表和表间关系实验目的和注意事项实验目的:熟悉创建数据库和数据表的SQL语句。
注意事项:输入SQL语句时应注意,语句中均使用西文操作符号。
实验内容在SQL Server Management Studio中新建查询,实现以下操作。
(1)用SQL语句创建数据库,名称为“StudentCourse”。
(2)用SQL语句创建StudentCourse中的三张表,同时指定主码、外码、默认值等。
(3)比较“学生选课”和StudentCourse两个数据库是否一致。
实验步骤(1)选择数据库master,右击【新建查询】,或者选择系统菜单中的【文件】|【新建】|【使用当前连接查询】命令,或者单击标准工具栏中的【新建查询】按钮,即可新建一个查询窗口。
如果查询数据库不是master,即可在可用数据库下拉列表中进行选择,或用USE语句调用。
在查询窗口中输入对应的创建数据库和表的语句。
(2)创建数据库StudentCourseUSE masterCREATE DATABASE StudentCourseON(Name='student_Data',FILENAME='D:\sql\student_Data.mdf')LOG ON(NAME='student_Log'FILENAME='D:\sql\student_Log.ldf')GO(3)创建3个表USE StudentCourseCREATE TABLE Students(Sno CHAR(7) Primary Key,Sname CHAR(8) NOT NULL,Ssex CHAR(2) NOT NULL default '男'check (Ssex in ('男','女')),Sbirthday smallda tetime NULL,Sdept CHAR(8) NULL,memo TEXT)CREATE TABLE Course( Cno CHAR(3) L CONSTRAINT PK_Cno PRIMARY KEY,Cname V ARCHAR(20) NOT NULL,PreCno CHAR(3) NULL,Credit tinyint)CREATE TABLE SC(Sno CHAR(7) NOT NULL ,Cno CHAR(3) NOT NULL ,Grade smallint,CONSTRAINT CK_Grade check (Grade BETWEEN 0 AND 100),CONSTRAINT PK_SC primary KEY clustered(Sno,Cno),CONSTRAINT FK_Sno FOREIGN KEY(Sno) REFERENCES Students(Sno),CONSTRAINT FK_Cno FOREIGN KEY(Cno) REFERENCES Courses(Cno) )(4)直接在表数据窗口中录入表数据记录。
实验3:使用SQL语句创建并管理数据库
序号:云南大学软件学院实验报告课程:数据库原理与实用技术实验学期:2015-2016学年第二学期任课教师:张云春专业:信息安全学号:20141120206 姓名:严鑫成绩:实验3使用SQL语句创建并管理数据库做删除或修改操作时,请注意备份数据库一、CAP数据库1、用T-SQL语句创建并管理数据库CAP:记录创建数据库的SQL语句。
CREATE DATABASE capon(name='cap',filename='d:\cap.mdf',size=5mb,maxsize=30mb,filegrowth=10%)log on(name='caplog',filename='d:\cap.ldf',size=5mb,maxsize=25mb,filegrowth=1mb)2、修改数据库:将“CAP数据库”的数据库最大容量更改为无限制(UNLIMITED),然后将“CAP数据库”的日志文件增长方式改为2MB。
记录SQL语句。
alter database capmodify file(name=cap,filename='d:\cap.mdf',maxsize=unlimited)alter database capmodify file(name=caplog,filename='d:\cap.ldf',filegrowth=2)3、用T-SQL语句在“CAP数据库”创建数据表,数据表的结构见教材。
记录创建表的SQL语句。
create table customers(cid char(10)not null,cname char(10)not null,city char(10)not null,discnt char(10)null,primary key(cid))create table agents(aid char(10)not null,aname char(10)not null,city char(10)not null,[percent]char(10)null,primary key(aid))create table products(pid char(10)not null, pname char(10)not null, city char(10)not null, quantity char(10)not null, price char(10)not null, primary key(pid))create table orders(ordno char(10)not null, [month]char(10)not null, cid char(10)not null,aid char(10)not null,pid char(10)not null,qty char(10)not null, dollars char(10)not null, primary key(ordno))4、向表中添加记录,使用Insert Into 语句分别向四张表中添加教材上的数据记录。
数据库实验报告-使用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)找出所有零件的名称、颜色、重量。
8)找出使用供应商S1所供应零件的工程号码。
实验一(SQL语句练习)-2
SQL语句练习-2一、建表1. 科室表:Dept(Deptno,Dname,Loc),表中属性列依次是科室编号、科室名二、插入数据insert into dept values('10','口腔科','A101');insert into dept values('20','眼科','A102');insert into dept values('30','检验科','A103');insert into dept values('40','泌尿外科','B201'); insert into dept values('50','骨科','B202');insert into doctor values('1001','张三',42,4000,'10'); insert into doctor values('1002','李四',36,1800,'10'); insert into doctor values('1003','王五',24,1500,'10'); insert into doctor values('2001','赵六',51,3400,'20'); insert into doctor values('2002','孙七',42,2000,'20'); insert into doctor values('2003','吴八',35,1600,'20'); insert into doctor values('3001','许九',22,4500,'30'); insert into doctor values('3002','龙二',39,3000,'30'); insert into doctor values('3003','林强',34,1500,'30'); insert into doctor values('4001','张笑',48,6500,'40'); insert into doctor values('4003','王东',34,3000,'40'); insert into doctor values('4004','方宇',30,1300,'40'); insert into doctor values('5001','冯晓',44,2400,'50'); insert into doctor values('5002','马征',32,1700,'50');三、完成下列操作(1)将姓王的医生工资涨10%。
实验三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)掌握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查询实验报告一、引言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语句实验指导书及答案
实验四:管理SQL Server表数据一、实验目的熟悉数据表结构及使用特点;熟悉使用Management Stuio界面方式管理数据表数据;熟悉使用T-SQL语句管理数据表数据。
二、实验环境已安装SQL Server 2005 企业版的计算机(13台);具有局域网环境,有固定IP;三、实验学时2学时四、实验要求了解SQL Server数据表数据的管理方法;了解SQL Server数据类型;完成实验报告(部分题只需给出关键语句)。
五、实验内容及步骤以课本指定的数据库为例,并依据数据表的结构创建相对应的数据表(student、course、sc),请分别使用Management Stuio界面方式及T-SQL 语句实现进行以下操作:向各个数据表中插入如下记录:学生信息表(student)课程信息表(course)选课信息表(sc)insert into student.dbo.sc values('20051501','1',75)insert into student.dbo.course values('1','数据库','5',4)insert into student.dbo.student values('201015001','赵菁菁','女',23,'CS') 2.修改CS系姓名为“李勇”的学生姓名为“李咏”;update studentset Sname='李咏'where Sname='李勇'3.修改课程“数据处理”的学分为3学分;3.update courseset Ccredit=3where Cname ='数据处理'4.将选修课程“1”的同学成绩加5分;4.update scset Grade =Grade+5where Cno='1'5.将选修课程“大学英语”的同学成绩加5分;update scset Grade=Grade+5from course,scwhere o=o and ame='大学英语'6.将学号为“200515010”的学生信息重新设置为“王丹丹、女、20、MA”;update studentset Sname='王丹丹',Ssex='女',Sage=20,Sdept='MA'where Sno='200515010'7.修改借书证号为2005001的学生记录重新设置:名字为王婧婧、专业为信息管理、借书量增加5本;(因为无些相关的数据表帮无法实现)8.删除数据表student中无专业的学生记录;deletefrom studentwhere Sdept is null9.删除数据表student中计算机系年龄大于25的男同学的记录;deletefrom studentwhere Ssex='男' and Sage>25 and Sdept='CS'10.删除数据表course中学分低于1学分的课程信息;deletefrom coursewhere Ccredit<1实验五:数据库单表查询一、实验目的1.掌握SELECT语句的基本语法和查询条件表示方法;2.掌握查询条件表达式和使用方法;3.掌握GROUP BY 子句的作用和使用方法;4.掌握HAVING子句的作用和使用方法;5.掌握ORDER BY子句的作用和使用方法。
实验九SQL语言的使用
实验九SQL语言的使用SQL(Structured Query Language)是一种用于管理和操作关系型数据库的标准化语言。
它被广泛应用于数据库管理系统(DBMS)中,如MySQL、Oracle、SQL Server等。
SQL语言具有简洁、易学、功能强大的特点,方便用户进行数据的查询、插入、更新和删除等操作。
在本实验中,我们将学习SQL语言的基本用法,并进行一些简单的实践。
SQL语言主要包括以下几个方面的内容:1.数据库的创建和删除:通过CREATEDATABASE语句可以创建一个新的数据库,通过DROPDATABASE语句可以删除一个已存在的数据库。
2.表的创建和删除:通过CREATETABLE语句可以创建一个新的数据表,通过DROPTABLE语句可以删除一个已存在的数据表。
3.数据的插入、查询、更新和删除:通过INSERTINTO语句可以向表中插入新的数据行,通过SELECT语句可以查询表中的数据行,通过UPDATE语句可以更新表中的数据行,通过DELETEFROM语句可以删除表中的数据行。
4.数据的筛选和排序:通过WHERE子句可以对查询结果进行筛选,通过ORDERBY子句可以对查询结果进行排序。
5.数据的聚合和分组:通过聚合函数(如SUM、AVG、MAX、MIN和COUNT)可以对数据进行统计计算,通过GROUPBY子句可以对查询结果进行分组。
6.多表的关联查询:通过JOIN子句可以将多个表进行关联查询,根据表之间的关系进行数据的联合筛选。
下面是一个简单的示例,演示了如何使用SQL语言实现数据库的创建和数据的插入、查询、更新和删除:```sql--创建一个新的数据库CREATE DATABASE mydb;--使用该数据库USE mydb;--创建一个新的数据表CREATE TABLE studentsid INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(50),age INT--向数据表中插入新的数据行INSERT INTO students (name, age) VALUES ('张三', 18);INSERT INTO students (name, age) VALUES ('李四', 20);INSERT INTO students (name, age) VALUES ('王五', 22);--查询数据表中的数据行SELECT * FROM students;--更新数据表中的数据行UPDATE students SET age = 23 WHERE name = '王五';--删除数据表中的数据行DELETE FROM students WHERE name = '李四';```通过以上示例,我们可以看到SQL语言的简洁、易学、功能强大的特点。
sql语言的ddl实验报告范文
SQL语言的DDL实验报告范文实验目的本次实验的目的是学习和掌握SQL语言的DDL(数据定义语言),熟悉其基本操作和语法,能够独立完成数据表的创建、修改和删除操作。
实验环境本次实验使用的是MySQL数据库管理系统,在Windows系统下进行。
使用的版本为MySQL 5.7。
实验中使用的SQL语句均在MySQL Workbench中编写并执行。
实验步骤1. 数据表的创建首先,在MySQL中创建一个新的数据库,命名为mydb。
创建成功后,使用该数据库进行接下来的实验操作。
然后,我们需要创建一个新的数据表。
下面是我们要创建的数据表的结构:字段名类型长度备注id int 自动编号,主键name varchar 50 姓名age int 年龄gender varchar 10 性别phone varchar 20 手机号码address varchar 100 居住地址我们可以使用以下SQL语句来创建该数据表:CREATE TABLE mydb.students (id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(50),age INT,gender VARCHAR(10),phone VARCHAR(20),address VARCHAR(100));上述代码中,CREATE TABLE语句用于创建数据表,紧接着是数据表的名称mydb.students。
括号内是数据表的结构,每个字段之间用逗号隔开,每个字段包括字段名、类型和长度(有些类型不需要长度)。
其中,id字段为主键,并使用AUTO_INCREMENT进行自动编号。
执行以上代码后,我们就成功地创建了名为students的数据表。
2. 数据表的修改在实际使用过程中,我们有时需要对数据表进行修改,以满足新的需求。
在MySQL中,我们可以使用ALTER TABLE语句来进行数据表的修改。
例如,我们想要在students表中新增一个字段email,可以使用以下SQL语句来实现:ALTER TABLE mydb.studentsADD email VARCHAR(50);上述代码中,ALTER TABLE语句用于修改数据表,接着是数据表的名称mydb.students。
实验5 sql语句练习——图书馆数据库答案
实验5sql语句练习——图书馆数据库实验5sql语句练习——图书馆数据库实验目得(1)了解SQLServer数据库得逻辑结构与物理结构;(2)了解表得结构特点;(3)了解SQL Server得基本数据类型;(4)了解空值概念;(5)学会在企业管理器中创建数据库与表;(6)学会使用T—SQL语句创建数据库与表。
(7)学会使用T-SQL语句更新数据。
(7)学会使用T—SQL语句创建多种查询.实验准备首先要明确,能够创建数据库得用户必须就是系统管理员,或就是被授权使用CREATE DA TABASE语句得用户。
其次创建数据库必须要确定数据库名、数据库大小(最初得大小、最大得大小、就是否允许增长及增长方式)与存储数据库得文件.然后,确定数据库包含哪些表,以及所包含得各表得结构,还要了解SQL Server得常用数据类型,以创建数据库得表。
此外还要了解两种常用得创建数据库、表得方法,即在企业管理器中创建与使用T-SQL得CREATE DAT ABASE语句.实验内容假设有5本书设有一图书馆数据库,其中包括3个表,即图书表、读者表与借阅表。
三个表得结构如图:图书表结构列名说明数据类型约束说明书号图书唯一得编号定长字符串,长度为10 主键书名图书得名称定长字符串,长度为50 空值作者图书得编著者名定长字符串,长度为30 空值出版社图书得出版社定长字符串,长度为30 空值单价出版社确定得图书得单价浮点型,Float 空值读者表结构列名说明数据类型约束说明读者号读者唯一得编号定长字符串,长度为10 主键(1)用Sql语句创建图书馆数据库Create databaseLab05(2)用Sql语句创建上述3个表createtable book(ﻩbookId char(10)primary key,ﻩbookNamevarchar(50),ﻩbookWritervarchar(30),bookPublishvarchar(30),ﻩbookPricefloat)create tablereader(readerId char(10)primarykey,readerName varchar(8)notnull,readerSex char(2)not null,ﻩreaderOfficeTel char(8),readerDepartment varchar(30))create table借阅表(readerIdchar(10),bookIdchar(10),checkOutTime char(8),checkInTime char(8),primarykey(readerId,bookId),ﻩforeignkey (readerId) references reader(readerId),foreignkey (bookId)references book(bookId),)(3)基于图书馆数据库得3个表,用sql语言完成一下操作:1)为图书表增加一列“ISBN”,数据类型为CHAR(10)alter table book add ISBN char(10)2)为刚添加得ISBN列增加缺省值约束,约束名为ISBNDEF,缺省值为‘7111085949'ALTER TABLE bookADDCONSTRAINT ISBNDEFDEFAULT ('7111085949’) FORISBN3)删除图书表中ISBN列增加得缺省值约束alter table bookdrop ISBNDEF4)删除图书表中新增得ISBN列ALTER TABLE book DROPCOLUMNISBN5)查询全体图书得图书号、书名、作者、出版社与单价select bookId,bookName,bookWriter,bookPublish,bookPricefrom book6)查询全体图书得信息,其中单价打8折,并设置该列得别名为‘打折价’select bookId,bookName,bookWriter,bookPublish,(bookPrice*0、8)as打折价from book7)显示所有借阅者得读者号,并去掉重复行selectdistinct readerIdfrom 借阅表8)查询所有单价在20-30元之间得图书信息select bookId,bookName,bookWriter,bookPublish,bookPrice,ISBNfrom bookwhere bookPrice between 20and309)查询机械工业出版社、科学出版社、人民邮电出版社得图书信息select bookId,bookName,bookWriter,bookPublish,bookPrice,ISBNfrom bookwherebookPublish in('机械工业出版社’, '科学出版社',’人民邮电出版社’)10)查询既不就是机械工业出版社、人民邮电出版社、也不就是科学出版社出版得图书信息select bookId,bookName,bookWriter,bookPublish,bookPrice,ISBNfrom bookwhere bookPublish not in(’机械工业出版社’, '科学出版社','人民邮电出版社’)11)查询姓名得第二个字符就是'建’,并且只有2个字得读者得读者号及姓名select readerId,readerNamefromreaderwhere readerName like’_建'12)查询姓名不就是以‘王’、‘张'或‘李’开头得所有读者得读者号及姓名【方式一】查询出来得结果有问题!select readerId,readerNamefrom readerwhere readerName not in('王%','张%','李%')【方式二】select readerId,readerNamefrom readerwhere readerName not in(selectreaderNameﻩfromreaderwhere readerName like’王%’or readerName like'张%’orreaderNamelike'李%')13)查询无归还日期得借阅信息selectﻩbook、bookId,book、bookName,reader、readerId,reader、readerName,借阅表、checkOutTime as 借书时间,ﻩ借阅表、checkInTimeas 还书时间from借阅表,book,readerwhereﻩ借阅表、bookId = book、bookIdand借阅表、readerId=reader、readerIdand ﻩﻩ借阅表、checkInTimeisnull14)查询机械工业出版社图书得平均价格、最高价、最低价select avg(bookPrice)as 平均价格,max(bookPrice)as 最高价,min(bookPrice)as 最低价from bookwhere bookPublish =’机械工业出版社图书’15)查询读者得基本信息及借阅情况ﻩﻩselect reader、readerId,reader、readerName ,借阅表、bookId,book、bookName,book、bookPublishfrom reader ,借阅表,bookwherereader、readerId = 借阅表、readerIdﻩﻩﻩﻩandbook、bookId = 借阅表、bookIdﻩﻩand 借阅表、readerId='1000000007'16)查询至少借阅过1本机械工业出版社出版得图书得读者得读者号、姓名、书名及借阅本数,并按借阅本书多少降序排列selectr、Rno,Rname,count(borrow、Bno)借阅册数from borrow,b,rwhere b、bno=borrow、bnoand press='机械工业出版社' and borrow、rno=r、rnogroup by r、rno,Rnameorderbycount(borrow、Bno) desc17)查询与‘王小平'得办公电话相同得读者得姓名/* 使用“自连接方式”求解*/ﻩﻩselect b、readerName,b、readerId,a、readerOfficeTelfrom readera,reader bwhere a、readerName like ’王小平'anda、readerOfficeTel=b、readerOfficeTel/*18)查询所有单价小于平均单价得图书得书号、书名及出版社select bookId,bookName,bookPublish,bookPricefrom bookwhere bookPrice <(ﻩselectavg(bookPrice)as averagePriceﻩfrom book)19)查询‘科学出版社’得图书单价比‘机械工业出版社’最高单价还高得图书书名及单价select bookId,bookName,bookPublish,bookPricefrom bookwhere bookPublish like’科学出版社’and bookPrice〉(ﻩselectmax(bookPrice)ﻩfrom bookwhere bookPublish='机械工业出版社')20)查询‘科学出版社’得图书中单价比‘机械工业出版社'最低单价高得图书书名及单价select bookId,bookName,bookPublish,bookPricefrom bookwhere bookPrice 〈(ﻩselect max(bookPrice)ﻩfrom bookﻩwhere bookPublish ='机械工业出版社’ﻩ)and bookPublish like’科学出版社'21)创建机械工业出版社图书得视图CREATE VIEW 机械工业出版社ViewASSELECT bookId,bookName,bookPriceFROM bookWHERE bookPublish=’机械工业出版社'22)创建一个借阅统计视图,名为CountView,包含读者得读者号与总借阅本数CREATEVIEW CountViewASSELECT readerId as读者号,count(*) as 总借阅本数FROM借阅表GROUPBY readerId23)创建一个借阅统计视图,名为CountView10,包含借阅总本数打于2得读者号与总借阅本数CREATE VIEW借阅统计视图ViewASSELECT readerIdas读者号,count(*) as总借阅本数FROM 借阅表GROUP BY readerIdHAVINGCOUNT(*)〉2。
sql应用程序的实验原理
SQL应用程序的实验原理1. 简介SQL(Structured Query Language)是一种用于管理关系型数据库的编程语言,广泛应用于各种应用程序中。
本文将介绍SQL应用程序的实验原理,包括SQL语句的执行过程、数据操作命令、事务处理和连接查询等方面。
2. SQL语句的执行过程SQL语句的执行过程一般分为以下几个步骤:•语法分析: 解析SQL语句的结构,确认是否符合语法规范。
•语义分析: 确认SQL语句的语义,检查表和字段的存在性、数据类型的一致性等。
•查询优化: 对SQL语句进行优化,选择最佳的执行计划。
•执行计划: 根据查询优化器生成的执行计划,执行SQL语句。
•结果返回: 将执行结果返回给应用程序。
3. 数据操作命令SQL提供了一系列的数据操作命令,包括插入、更新、删除和查询等操作。
•插入数据: 使用INSERT INTO语句插入数据到表中。
•更新数据: 使用UPDATE语句更新表中已有的数据。
•删除数据: 使用DELETE语句删除表中的数据。
•查询数据: 使用SELECT语句查询表中的数据。
4. 事务处理事务是指一组SQL语句的执行过程中的逻辑单位,具备原子性、一致性、隔离性和持久性等特性。
SQL提供了事务处理的机制,可以保证数据库的完整性和一致性。
•原子性: 事务中的所有操作要么全部执行成功,要么全部回滚。
•一致性: 事务的执行不会破坏数据库的完整性和约束条件。
•隔离性: 事务与其他事务相互隔离,每个事务都感觉不到其他事务的存在。
•持久性: 事务提交后,对数据库的修改会持久保存。
5. 连接查询连接查询是SQL中最常用的查询操作之一,用于在多个表之间建立关联关系,获取更为复杂的查询结果。
•内连接: 使用INNER JOIN关键字进行连接,只返回两个表中匹配的行。
•左连接: 使用LEFT JOIN关键字进行连接,返回左表中的所有行,以及与右表匹配的行。
•右连接: 使用RIGHT JOIN关键字进行连接,返回右表中的所有行,以及与左表匹配的行。
数据库实验四 SQL 数据更新语句
实验四 SQL 数据更新语句一、实验目的(1)加深对SQL 数据更新(插入、修改及删除)语句的基本语法格式的掌握(2)掌握单个元组及多个元组的插入、修改及删除操作的实现过程(3)加深对更新操作时数据库中数据一致性问题的了解(4)加深对约束条件在数据更新操作执行中的作用问题的了解二、实验内容方法一:在SSMS 中插入、删除及修改数据,方法二:在查询编辑器中写SQL 插入、删除及修改数据三、实验步骤设有一个SPJ 数据库,包括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 由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成;工程项目表J 由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)组成;供应情况表SPJ 由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,表示某供应商供应某种零件给某工程项目的数量为QTY。
创建数据库:S:P:J:SPJ:S表的内容:P表的内容:J表的内容:SPJ表的内容:试完成以下操作:1.在S 表中插入元组“s6,华誉,40,广州”执行语句:执行结果:2.在J 表中插入元组“j8,传感器厂”执行语句:执行结果:3.对每一个供应商,求他为各种工程供应零件的总数量,并将此结果存入数据库执行语句:执行结果:4.将P 表中PNO 值为p6 的元组的color 属性值改为绿,weight 属性值改为60执行语句:执行结果:5.将SPJ 表中前4 个元组的qty 属性值统一修改为300执行语句:执行结果:6.将S 表中city 属性名含有“京”或“津”的相应status 属性值增加100 执行语句:执行结果:7.将供应商s2 为“一汽”工程项目所供应的零件数量修改为2000执行语句:执行结果:8.将全部红色零件的颜色修改为浅红色执行语句:执行结果:9.由s5 供给j4 的零件p6 改为由s3 供应执行语句:执行结果:10.在SPJ 表中新增一名为SDATE 的属性列,对该表中的每一元组在SDATE 属性列上填上实验当时的日期和时间执行语句:执行结果:11.删除所在城市为“广州”的供应商记录执行语句:执行结果:12.删除所有零件名称中第一个字为“螺”字的零件记录,并在供应情况表中删除相应的记录执行语句:执行结果:13.删除s3 和s4 两供应商为“三建”工程供应“螺母”或“螺丝刀”零件的相应供应情况数据信息执行语句:Delete from SPJWhere SNO IN('s3','s4')and JNO IN(select JNOfrom Jwhere JNAME like'%三建%')and PNO IN(select PNOfrom Pwhere PNAME like'%螺母%'or PNAME like'%螺丝刀%');执行结果:四、实验总结(1)掌握了SQL 数据更新(插入、修改及删除)语句的基本语法格式(2)掌握单个元组及多个元组的插入、修改及删除操作的实现过程(3)明白了更新操作时数据库中数据一致性问题(4)了解了约束条件在数据更新操作执行中的作用问题(5)GROUP BY 语句的作用是通过一定的规则将一个数据集划分成若干个小的区域,然后针对若干个小区域进行数据处理。
sql操纵及查询实验
sql操纵及查询实验好的,我回答“sql操纵及查询实验”的问题。
1. 什么是SQL?SQL代表结构化查询语言。
它是一种用于管理关系数据库的语言。
它具有丰富的数据操作和查询功能,并被广泛应用于网站和企业系统中。
2. 什么是SQL语句?SQL语句是一种用于操作数据库的命令。
通过SQL语句,我们可以执行各种操作,例如插入、更新、删除、查询数据等。
SQL语句可以分为四大类:数据定义语言(DDL)、数据操作语言(DML)、数据控制语言(DCL)和事务控制语言(TCL)。
3. 如何创建一张表?我们可以通过CREATE TABLE语句来创建一个新表。
CREATE TABLE语句需要指定表格名和表格字段,如下所示:CREATE TABLE my_table (id INT PRIMARY KEY,name VARCHAR(50),age INT);4. 如何插入数据到表中?我们可以通过INSERT INTO语句将数据插入到一个表格中。
INSERT INTO语句需要指定数据要插入的表格和插入的数据值,如下所示:INSERT INTO my_table (id, name, age)VALUES (1, 'Tom', 20);5. 如何查询数据?我们可以通过SELECT语句查询一个或多个表格中的数据。
SELECT语句可以使用一些关键字,如WHERE、ORDER BY和GROUP BY,以过滤、排序和分组查询结果。
例如:SELECT id, name, ageFROM my_tableWHERE age > 18ORDER BY age DESC;以上是我对“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:(确定集合条件) 求在下列各系的学生信息:数学系、计算机系。
数据库实验报告 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语句操作单表查询【例3-16】在“学生”表中查询全体学生的学号、姓名、性别和出生日期。
答案:【例3-17】在“教师”表中查询所有的字段信息。
答案:【例3-18】查询教师表中职称为教授的有关信息答案:【例3-19】查询教师表中职称为女教授的有关信息答案:【例3-20】查询“成绩”表中成绩在70-90之间的学号、课程编号和成绩。
答案:【例3-21】查询学生年龄22岁以上的学生记录。
答【例3-22】查询选修了课程编号为“C0601”的学生的学号和成绩,查询结果按成绩降序排列。
答案:多表查询,连接查询【例3-23】查询选修课程编号为“C0601”的课程且成绩在60与80分之间(含60与80分)的所有学生的学号、姓名、课程名及成绩答案:嵌套查询【例3-24】查询课程编号为“C0404”且成绩在90分以上的学生学号和姓名。
答案:操作查询【例3-26】将一个新的学生信息(学号:s01003,姓名:陈国庆,性别:男,生源:江苏,出生日期:1990-10-1,专业编号:p05)添加到学生表中。
答案:【例3-27】修改学生表中学号为”s01003”的生源为“福建”答案:【例3-28】删除学生表中学号为”s01003”的学生记录聚集函数答案:【例3-29】查询“学生”表的学生总人数。
答案:【例3-30】查询学生表中生源来自那些地方答案:【例3-31】计算学号为“s01002”学生的课程平均成绩答案:【例3-32】查询“王小闽”的学生修改的所有课程的总学分。
答案:【例3-33】查询选修课程“c0605”的学生的最高成绩和最低成绩。
Group by 分组答案:【例3-34】查询各课程(按课程号)及相应的选课人数。
答案:【例3-35】查询选修2门以上课程的学生学号。
答案:。
sql语言实验报告[最新版]
sql语言实验报告sql语言实验报告篇一:数据库SQL语句实验报告《数据库原理及应用》实验报告SQL语句部分班级: 11-37-06 学号:姓名:总成绩:实验一熟悉SQL SERVER,数据定义实验实验一成绩:一、实验目的1、利用查询分析器创建数据库2、利用查询分析器用SQL语言定义基本表、索引并进行相关操作二、实验步骤及内容在以下实验中,使用学生-课程数据库,它描述了学生的基本信息、课程的基本信息及学生选修课程的信息。
1.创建学生课程数据库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; 5.将以上创建表S、C、SC的SQL命令以 .SQL文件的形式保存在磁盘上。
PRIMARY KEY, Sname CHARUNIQUE, Ssex CHARprimary key, CnameCHARSQL定义语言实验目的:1.熟练掌握SQL语言进行基本表结构的创建。
2.熟练应用SQL语言进行表结构的修改。
3.掌握SQL语言进行基本表的删除。
4.掌握SQL语言进行索引的建立和删除5.选择具体的数据库管理系统进行实现(Access 或SQL Server)实验内容和要求: 1.切换到Access的SQL视图或者打开SQL Server查询分析器进行定义操作2.用SQL语言CREATE TABLE语句创建学生表student、课程表course和选课表SC;(字段类型及长度参照实验一)3.用SQL语言ALTER语句修改表结构;a)STUDENT表中SNO设为非空和唯一;b)STUDENT表中增加一个字段SBIRTH,类型设置为日期时间类型,增加一个ADDRESS字段,类型为文本(字符);c)删除STUDENT表中ADDRESS字段;d)COURSE表中CNO字段设为非空和唯一;4.重新定义一个简单表,然后用SQL语言DROP语句删除该表结构;5.用SQL语言CREATE INDEX语句定义表STUDENT的SNAME字段的降序索引;6.用SQL语言CREATE INDEX语句定义表SC的GRADE字段的升序索引;7.用SQL语言DROP语句删除索引;8.输入部分数据,并试着修改其中的错误;实验过程与步骤:(1)创建学生表student的实现如下:create table student, ssex char , sage smallint, sdeptchar);(2)创建课程表course的实现如下:create table course, cnamechar); (4)创建选课表sc实现如下:create tablesc); (5)表建完后,就是对表结构的操作,可用drop删除表的某一列,create index 创建索引,用add constraint添加属性等,具体操作详见压缩包对实验内容的实现的命令。
数据库系统原理实验报告-SQL查询语句
数据库系统原理实验报告-SQL查询语句数据库系统原理实验报告姓名:xxx学号:xxxxxxxx专业:xxxxx⽇期:xxxxxLab2⼀、实验⽬的进⼀步熟悉关系数据库标准语⾔SQL。
⼆、实验环境1)Windows 102)SQL Server 2017三、实验内容给定如学⽣表、课程表和学⽣作业表所⽰的信息。
表2 课程表表3 学⽣作业表K0020529707085 K0020531808080 K0020538657585 K0020592758585 K0060531808090 K0060591808080 M0010496707080 M0010591657575 S0010531808080 S00105386080写出如下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平均分。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(25)查询员工表中的员工号、员工名和工资,并按工资降序排 序。
SQL>SELECT empno,ename,sal FROM emp ORDER BY sal DESC;
(26)查询员工信息,按员工所在部门号升序、工资降序排序。
SQL>SELECT empno,UPPER(ename) FROM emp;
(6)查询员工表中所有的员工名与工资信息,其中员工名标题 为“employeename”,工资标题为“salary”。
SQL>SELECT ename,employeename,sal salary FROM emp;
(7)查询员工表中所有员工的员工号与员工名,并以“员工号: ××××员工名××××”的形式显示查询结果。
SQL>SELECT * FROM emp ORDER BY deptno,sal DESC;
(27)查询员工表中员工号、员工名及其工资,并按员工年工资排 序。
SQL>SELECT empno,ename,sal FROM emp ORDER BY sal*12;
(28)查询员工表中员工号、员工名及其年工资,并按年工资排 序。
1.3.3 分组查询
(33)查询每个部门的部门号、人数和平均工资,语句为: SQL>SELECT deptno,count(*),avg(sal) FROM emp GROUP BY deptno;
(34)查询各个部门中不同工种的员工人数和平均工资,语句为: SQL>SELECT deptn emp GROUP BY
日期排序。 (16) 查询所有发货日期比订货日期晚7天的订单信息。 (17) 统计各类图书的数量,平均零售价格、平均批发价格。 (18) 统计各个出版社出版图书的数量、最高批发价格、最高零售价格、最低
批发价格和最低零售价格。 (19) 统计每个客户的订单数量。 (20) 统计每个作者编写的图书数量。
(30)统计10号部门员工的人数、平均工资、最高工资、最低工 资。 SQL>SELECT count(*),avg(sal),max(sal),min(sal) FROM emp WHERE
deptno=10; (31)统计所有员工的平均奖金和奖金总额。 SQL>SELECT avg(comm),sum(comm) FROM emp ; (32)从员工表中查询所有的部门个数。 SQL>SELECT count(DISTINCT deptno) FROM emp;
SQL>SELECT empno,sal*12 salary FROM emp ORDER BY salary;
(29)查询员工表中员工号、员工名及其工资,并按第二个输出列 排序。 SQL>SELECT empno,sal*12 salary FROM emp ORDER BY 2;
1.3.2 统计查询
于批发价相同的,再按零售价排序。 (11) 查询图书名以“数据库”开头的图书信息。 (12) 查询所有书名中包含“Oracle”的图书信息。 (13) 查询出版日期在2007年1月至2009年1月的所有图书。 (14) 查询“电子工业出版社”和“清华大学出版社”出版的图书。 (15) 查询所有订单信息,按订单日期排序。对于订单日期相同的,再按发货
1.2预备知识
1.Oracle数据库中查询操作的基本语法为:
SELECT [ALL|DISTINCT]column_name[,expression…] FROM table1_name[,table2_name,view_name,…] [WHERE condition] [GROUP BY column_name1[,column_name2,…] [HAVING group_condition]] [ORDER BY column_name2 [ASC|DESC][,column_name2,…]];
1.3实践步骤
1.3.1 基本查询
1.无条件查询
(1)查询员工表(emp)中所有列的信息。
SQL>SELECT * FROM emp;
(2)查询部门表(dept)中的部门号及部门名信息。
SQL>SELECT deptno,dname FROM dept;
(3)查询员工表中所有员工的员工号,员工的年工资信息。
返回列或表达式的方 差
除了COUNT(*)函数外,其他的统计函数都不考虑返回值或表达式为NULL的情 况。 聚集函数只能出现在目标列表达式、ORDER BY子句、HAVING子句中,不能出 现在WHERE子句和GROUP BY子句中。 默认对所有的返回行进行统计,包括重复的行;如果要统计不重复的行信息,则 可以使用DISTINCT选项。 如果对查询结果进行了分组,则聚集函数的作用范围为各个组,否则聚集函数作 用于整个查询结果。
deptno,job; (35)例如,查询部门平均工资高于1500的部门号、部门人数和部 门平均工资,语句为: SQL>SELECT deptno,count(*),avg(sal) FROM emp
GROUP BY deptno HAVING avg(sal)>1500; (36)例如,统计10号部门中各个工种的员工人数和平均工资,并 返回平均工资高于1000的工种人数和平均工资,语句为: SQL>SELECT job,count(*),avg(sal) FROM emp WHERE deptno=10
SQL>SELECT '员工号:'||empno||'员工名'||ename FROM emp;
(8)查询有员工的部门号(重复结果只显示一次)。 SQL>SELECT DISTINCT deptno FROM emp;
2.有条件查询 (9)查询非10号部门 的员工的员工号、员工名及其工资。 SQL>SELECT empno,ename,sal FROM emp WHERE deptno! = 10; (10)查询工资大于1500的员工的员工号、员工名及其工资。 SQL>SELECT empno,ename,sal FROM emp WHERE sal>1500; (11)查询部门号在10到20之间的所有部门的员工信息。 SQL>SELECT * FROM emp WHERE deptno BETWEEN 10 AND 20; (12)查询工资小于1000,或工资大于2000的员工信息。 SQL>SELECT * FROM emp WHERE sal NOT BETWEEN 1000 AND 2000; (13)查询10号或30号部门的员工号、员工名。 SQL>SELECT empno,ename,sal FROM emp WHERE deptno IN(10,30); (14)查询名字中含有“S”的员工信息。 SQL>SELECT * FROM emp WHERE ename LIKE '%S%'; (15)查询名字的第二个字母为“A”的员工信息。 SQL>SELECT * FROM emp WHERE ename LIKE '_A%'; (16)查询名字中包含“_”字符的员工信息。 SQL>SELECT * FROM emp WHERE ename LIKE '%x_%' ESCAPE 'x'; (17)查询部门号为空的员工信息。 SQL>SELECT * FROM emp WHERE deptno IS NULL; (18)查询奖金(COMM)不为空的员工信息。 SQL>SELECT * FROM emp WHERE comm IS NOT NULL; (19)查询10号部门中工资高于1500的员工信息。 SQL>SELECT * FROM emp WHERE deptno=10 AND sal >1500; (20)查询工资高于1500的10号部门和20号部门的员工信息。
实验六 SQL语句
实践1:SQL语句基础—简单查询与分组查询
1.1实践目的和要求
实践目的: (1) 掌握SQL语句的查询操作的基本方法。 (2) 掌握SQL语句的基本查询方法。 (3) 掌握SQL语句的查询统计和分组查询方法。
实践要求: (1) Scott普通模式下有两个表,分别为员工表(EMP)、部门表(DEPT),操作 时请注意访问方法。 (2) 对员工表(EMP)和部门表(DEPT)进行基本查询,包括无条件查询、有条 件查询、查询排序等。 (3) 对员工表(EMP)和部门表(DEPT)进行查询统计。 (4) 对员工表(EMP)和部门表(DEPT)进行分组查询。
SQL>SELECT * FROM emp WHERE (deptno=10 OR deptno=20) AND sal>1500;
(21)查询工资大于等于1000,并且工资小于等于2000的员工信息 (两种方法实现)。
SQL>SELECT * FROM emp WHERE sal>=1000 AND sal<=2000;
SQL>SELECT * FROM emp WHERE sal BETWEEN 1000 AND 2000;
(22)查询所有工种不是MANAGER和CLERK,且工资大于或等于2000 的员工的详细信息。
SQL>SELECT * FROM EMP WHERE job NOT IN('MANAGER','CLERK') AND sal>=2000;
GROUP BY job HAVING avg(sal)>1000;
1.4练习 基于图书销售系统表(实验四练习部分有表结构),完成下列练习。