当前位置:文档之家› SQL查询语句练习作业

SQL查询语句练习作业

SQL查询语句练习作业
SQL查询语句练习作业

一、创建名为“student”的表,结构见表1,内容见表2

表1 student表结构

字段名类型宽度

学号字符型10

姓名字符型10

性别字符型 4

出生日期日期型8

专业字符型20

年级数值型10

表2 student表

二、练习SQL查询语句——基础的select

格式: select 字段名 from 表名

1、写出查找student表中所有字段的语句,并在命令窗口测试

2、写出查找student表中学号的语句,并在命令窗口测试

3、写出查找student表中姓名的语句,并在命令窗口测试

4、写出查找student表中性别的语句,并在命令窗口测试

5、写出查找student表中出生日期的语句,并在命令窗口测试

6、写出查找student表中专业的语句,并在命令窗口测试

7、写出查找student表中年级的语句,并在命令窗口测试

8、写出查找student表中学号和姓名的语句,并在命令窗口测试(注意逗号是英文状态)

9、写出查找student表中学号、姓名和性别的语句,并在命令窗口测试

10、写出查找student表中学号、姓名、性别和出生日期的语句,并在命令窗口测试

11、写出查找student表中学号、姓名、性别、出生日期和专业的语句,并在命令窗口测试

12、写出查找student表中学号、姓名、性别、出生日期、专业和年级的语句,并在命令窗口测试

三、练习SQL查询语句——where条件查询

格式: select 字段名 from 表名 where 条件

1、查找student表中学号是101001的学生,写出语句,并在命令窗口测试

2、查找student表中李玲的个人信息,写出语句,并在命令窗口测试

3、查找student表中所有的男学生,写出语句,并在命令窗口测试

4、查找student表中的在1992年3月1日(含)之后出生的学生,写出语句,并在命令窗口测试

5、查找student表中信息管理专业的学生,写出语句,并在命令窗口测试

6、查找student表中2012级的学生,写出语句,并在命令窗口测试

四、练习SQL查询语句——where条件查询AND OR

格式: select 字段名 from 表名 where 条件1 and/or 条件2

1、查找student表中学号为121001和131005的学生信息,写出语句,并在命令窗口测试

2、查找student表中李泽田和王海东的个人信息,写出语句,并在命令窗口测试

3、查找student表中工商管理专业的男生信息,写出语句,并在命令窗口测试

4、查找student表中在1992年和1993年出生的学生,写出语句,并在命令窗口测试

5、查找student表中信息管理专业和工商管理专业的女学生,写出语句,并在命令窗口测试

6、查找student表中2012级和2013级中1993年出生的学生,写出语句,并在命令窗口测试

五、练习SQL查询语句——where条件查询like

格式: select 字段名 from 表名 where 字段名like 套式

1、查找student表中姓王的学生信息,写出语句,并在命令窗口测试

2、查找student表中姓王和姓贾的学生信息,写出语句,并在命令窗口测试

3、查找student表中姓王、姓贾和姓李的学生信息,写出语句,并在命令窗口测试

4、查找student表中姓名中含“泽”的学生信息,写出语句,并在命令窗口测试

5、查找student表中姓名中含“文”的学生信息,写出语句,并在命令窗口测试

6、查找student表中姓名中最后1个字是“玲”的学生信息,写出语句,并在命令窗口测试

7、查找student表中姓名中最后1个字是“文”的学生信息,写出语句,并在命令窗口测试

8、查找student表中姓名有3个字,中间的字是“文”的学生,写出语句,并在命令窗口测试

9、查找student表中姓王的男生信息,写出语句,并在命令窗口测试

10、查找student表中姓王和姓李的女生信息,写出语句,并在命令窗口测试

11、查找student表中姓名中含“文”的女生信息,写出语句,并在命令窗口测试

六、练习SQL查询语句——where条件查询between

格式: select 字段名 from 表名 where 字段名between 值1 and 值2 1、查找student表中在1992年出生的学生,写出语句,并在命令窗口测试

2、查找student表中在1992年和1993年出生的学生,写出语句,并在命令窗口测试

3、查找student表中在2010级、2011级、2012级的学生,写出语句,并在命令窗口测试

七、练习SQL查询语句——where条件查询order by

格式: select 字段名 from 表名 where 条件 order by 字段名 asc/desc 1、把student表中的学生信息按学号降序排列显示,写出语句,并在命令窗口测试

2、把student表中的学生信息按姓名降序排列显示,写出语句,并在命令窗口测试

3、把student表中的学生信息按姓名升序排列显示,写出语句,并在命令窗口测试

4、把student表中的学生信息按年龄升序排列显示,写出语句,并在命令窗口测试

5、把student表中的学生信息按年龄降序排列显示,写出语句,并在命令窗口测试

6、查找student表中所有的男生,并按学号降序排列,写出语句,并在命令窗口测试

6、查找student表中所有的女生,并按姓名升序排列,写出语句,并在命令窗口测试

7、查找student表中的在1992年出生的学生,并按年龄降序排列,写出语句,并在命令窗口测试

8、查找student表中信息管理专业的学生,并按照姓名降序排列,写出语句,并在命令窗口测试

9、把student表中的学生信息按性别分类显示,男生在前,女生在后,

男生和女生,各自按照姓名升序排列,写出语句,并在命令窗口测试

八、练习SQL查询语句——where条件查询count

格式: select count(*) from 表名 where 条件

1、统计student表中的学生总人数,写出语句,并在命令窗口测试

2、统计student表中男生人数,写出语句,并在命令窗口测试

3、统计student表中姓王的人数,写出语句,并在命令窗口测试

SQL查询语句大全集锦(超经典)

SQL查询语句大全集锦 MYSQL查询语句大全集锦 一、简单查询 简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的 表或视图、以及搜索条件等。 例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。 复制内容到剪贴板 代码:SELECT `nickname`,`email`FROM `testtable`WHERE `name`='张三' (一) 选择列表 选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。 1、选择所有列 例如,下面语句显示testtable表中所有列的数据: 复制内容到剪贴板 代码:SELECT * FROM testtable 2、选择部分列并指定它们的显示次序 查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。 例如: 复制内容到剪贴板 代码:SELECT nickname,email FROM testtable 3、更改列标题 在选择列表中,可重新指定列标题。定义格式为: 列标题=列名 列名列标题 如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列 标题:

复制内容到剪贴板 代码:SELECT 昵称=nickname,电子邮件=email FROM testtable 4、删除重复行 SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认 为ALL。使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。 5、限制返回的行数 使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n是 表示一百分数,指定返回的行数等于总行数的百分之几。 例如: 复制内容到剪贴板 代码:SELECT TOP 2 * FROM `testtable` 复制内容到剪贴板 代码:SELECT TOP 20 PERCENT * FROM `testtable` (二) FROM子句 FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图, 它们之间用逗号分隔。 在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列 所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定: 复制内容到剪贴板 代码:SELECT `username`,citytable.cityid FROM `usertable`,`citytable` WHERE usertable.cityid=citytable.cityid在FROM子句中可用以下两种格式为表或视图指定别名: 复制内容到剪贴板 代码:表名 as 别名 表名别名例如上面语句可用表的别名格式表示为: 复制内容到剪贴板

SQL查询语句练习作业

一、创建名为“student”的表,结构见表1,内容见表2 表1 student表结构 字段名类型宽度 学号字符型10 姓名字符型10 性别字符型 4 出生日期日期型8 专业字符型20 年级数值型10 表2 student表

二、练习SQL查询语句——基础的select 格式: select 字段名 from 表名 1、写出查找student表中所有字段的语句,并在命令窗口测试 2、写出查找student表中学号的语句,并在命令窗口测试 3、写出查找student表中姓名的语句,并在命令窗口测试 4、写出查找student表中性别的语句,并在命令窗口测试 5、写出查找student表中出生日期的语句,并在命令窗口测试 6、写出查找student表中专业的语句,并在命令窗口测试 7、写出查找student表中年级的语句,并在命令窗口测试 8、写出查找student表中学号和姓名的语句,并在命令窗口测试(注意逗号是英文状态) 9、写出查找student表中学号、姓名和性别的语句,并在命令窗口测试 10、写出查找student表中学号、姓名、性别和出生日期的语句,并在命令窗口测试 11、写出查找student表中学号、姓名、性别、出生日期和专业的语句,并在命令窗口测试 12、写出查找student表中学号、姓名、性别、出生日期、专业和年级的语句,并在命令窗口测试

三、练习SQL查询语句——where条件查询 格式: select 字段名 from 表名 where 条件 1、查找student表中学号是101001的学生,写出语句,并在命令窗口测试 2、查找student表中李玲的个人信息,写出语句,并在命令窗口测试 3、查找student表中所有的男学生,写出语句,并在命令窗口测试 4、查找student表中的在1992年3月1日(含)之后出生的学生,写出语句,并在命令窗口测试 5、查找student表中信息管理专业的学生,写出语句,并在命令窗口测试 6、查找student表中2012级的学生,写出语句,并在命令窗口测试 四、练习SQL查询语句——where条件查询AND OR 格式: select 字段名 from 表名 where 条件1 and/or 条件2 1、查找student表中学号为121001和131005的学生信息,写出语句,并在命令窗口测试 2、查找student表中李泽田和王海东的个人信息,写出语句,并在命令窗口测试 3、查找student表中工商管理专业的男生信息,写出语句,并在命令窗口测试 4、查找student表中在1992年和1993年出生的学生,写出语句,并在命令窗口测试 5、查找student表中信息管理专业和工商管理专业的女学生,写出语句,并在命令窗口测试 6、查找student表中2012级和2013级中1993年出生的学生,写出语句,并在命令窗口测试

数据库SQL查询语句大全

经典SQL查询语句大全 一、基础 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的 device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1. dat' --- 开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) 根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2… from tab_old definition only 5、说明:删除新表 drop table tabname 6、说明:增加一个列 Alter table tabname add column col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。 7、说明:添加主键:Alter table tabname add primary key(col) 说明:删除主键: Alter table tabname drop primary key(col) 8、说明:创建索引:create [unique] index idxname on tab name(col….) 删除索引:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。 9、说明:创建视图:create view viewname as select statement 删除视图:drop view viewname 10、说明:几个简单的基本的sql语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1=value1 where 范围 查找:select * from table1 where field1 like ’%value1%’ ---like的语法很精妙,查资料!

SQL搜索语句

SQL查询语句大全集锦 一、简单查询 简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的表或视图、以及搜索条件等。 例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。 代码:SELECT `nickname`,`email`FROM `testtable`WHERE `name`='张三' (一) 选择列表 选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。 1、选择所有列 例如,下面语句显示testtable表中所有列的数据: 代码:SELECT * FROM testtable 2、选择部分列并指定它们的显示次序 查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。 例如: 代码:SELECT nickname,email FROM testtable 3、更改列标题 在选择列表中,可重新指定列标题。定义格式为: 列标题=列名 列名列标题 如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列 标题: 代码:SELECT 昵称=nickname,电子邮件=email FROM testtable 4、删除重复行 SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认为ALL。使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。 5、限制返回的行数 使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n 是 表示一百分数,指定返回的行数等于总行数的百分之几。 例如: 代码:SELECT TOP 2 * FROM `testtable` 代码:SELECT TOP 20 PERCENT * FROM `testtable` (二) FROM子句 FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。 在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列 所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应

数据库SQL查询语句大全修订稿

数据库S Q L查询语句 大全 公司标准化编码 [QQX96QT-XQQB89Q8-NQQJ6Q8-MQM9N]

经典SQL查询语句大全 一、基础 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的 device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\' --- 开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) 根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2… from tab_old definitio n only 5、说明:删除新表 drop table tabname 6、说明:增加一个列 Alter table tabname add column col type

注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。 7、说明:添加主键:Alter table tabname add primary key(col) 说明:删除主键: Alter table tabname drop primary key(col) 8、说明:创建索引:create [unique] index idxname on tabname(col….) 删除索引:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。 9、说明:创建视图:create view viewname as select statement 删除视图:drop view viewname 10、说明:几个简单的基本的sql语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1=value1 where 范围 查找:select * from table1 where field1 like ’%value1%’ ---like的语法很精妙,查资料! 排序:select * from table1 order by field1,field2 [desc] 总数:select count as totalcount from table1 求和:select sum(field1) as sumvalue from table1 平均:select avg(field1) as avgvalue from table1 最大:select max(field1) as maxvalue from table1 最小:select min(field1) as minvalue from table1 11、说明:几个高级查询运算词 A:UNION 运算符

实验四SQL单表查询语句练习

实验四SQL单表查询语句练习 一、实验目的 1.掌握SQL Server数据库的恢复技术 2.熟练掌握SQL单表查询语句 二、实验内容 1.数据库恢复 2.SQL查询语言练习 实验基础知识提要 Microsoft? SQL Server?查询分析器是一种图形工具,您可以使用它创建查询和其它 SQL 脚本,并针对 SQL Server 数据库执行它们。 连接 SQL Server 连接某个 Microsoft?SQL Server?实例以打开 SQL 查询分析器中的一个查询窗口。如果通过 SQL Server 企业管理器中的连接访问 SQL 查询分析器,则自动打开一个查询窗口。

如果未建立连接而访问 SQL 查询分析器,则显示"连接到SQL Server"对话框,使您可以指定数据库服务器。该对话框还可从工具栏和从"文件"菜单上的"连接"命令进行访问。 下表列出"SQL 查询分析器"工具栏中显示的图标。 最基本的查询语句具有以下的形式:

SELECT select_list FROM table_source [ WHERE search_condition ] select_list 描述结果集的列。它是一个逗号分隔的表达式列表。每个表达式同时定义格式(数据类型和大小)和结果集列的数据来源。每个选择列表表达式通常是对从中获取数据的源表或视图的列的引用,但也可能是其它表达式,例如常量或 Transact-SQL 函数。在选择列表中使用 * 表达式指定返回源表中的所有列。 选择列表还可包含控制结果集的最终格式的关键字: DISTINCT DISTINCT 关键字可从结果集中除去重复的行。 TOP n TOP 关键字指定返回结果集的前 n 行。如果指定了 ORDER BY,行将在结果集排序之后选定。除非指定了 PERCENT 关键字,否则 n 即为返回的行数。PERCENT 指定 n 为结果集中返回的行的百分比。

SQL数据库查询语句范例

推荐一、简单查询 简单的Transact-SQL查询只包括选择列表、FROM子句和Where子句。它们分别说明所查询列、查询的表或视图、以及搜索条件等。例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。Select nickname,email FROM testtable Where n ame=’张三’ (一) 选择列表 选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。 1、选择所有列例如,下面语句显示testtable表中所有列的数据:Select * FROM testtable 2、选择部分列并指定它们的显示次序 查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。 例如:Select nickname,email FROM testtable 3、更改列标题 在选择列表中,可重新指定列标题。定义格式为: 列标题=列名列名列标题 如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列标题: Select 昵称=nickname,电子邮件=email FROM testtable 4、删除重复行 Select语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认为ALL。使用DISTINC T选项时,对于所有重复的数据行在Select返回的结果集合中只保留一行。 5、限制返回的行数 使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n是表示一百分数,指定返回的行数等于总行数的百分之几。例如: Select TOP 2 *FROM testtable Select TOP 20 PERCENT * FROM testtable (二) FROM子句 FROM子句指定Select语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。 在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和cityta ble表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定: Select username,citytable.cityid FROM usertable,citytable Where usertable.cityid=citytable.cityid 在FROM子句中可用以下两种格式为表或视图指定别名: 表名 as 别名表名别名

数据库sql查询语句上机练习1_习题_结果(单世民)

习题1 请根据给出的数据库表结构来回答相应问题: DEPT (DEPTNO INT, DNAME VARCHAR(14),LOC VARCHAR(13)); EMP (EMPNO INT,ENAME VARCHAR(10), JOB VARCHAR(9), MGR INT, HIREDATE DATE, SAL FLOAT, COMM FLOAT, DEPTNO INT); BONUS (ENAME VARCHAR(10), JOB VARCHAR(9), SAL INT, COMM INT); SALGRADE ( GRADE INT, LOSAL INT, HISAL INT); 其中表中包含如下数据: DEPT表: EMP表: SALGRADE表:

BONUS表: 无数据 根据上面描述完成下面问题: (注意:注意保存脚本,尤其是DDL和DML,以便进行数据还原) DDL 1. 写出上述表的建表语句。此外,在DEPT上创 建名为”PK_DEPT”的主键约束,在EMP表上 创建名为”PK_EMP”的主键约束以及指向表 DEPT的外键约束”FK_DEPTNO”。 命令: Create table DEPT (DEPTNO INT NOT NULL,DNAME VARCHAR(14),LOC VARCHAR(13)); Alter table DEPT add constraint PK_DEPT PRIMARY KEY (DEPTNO); create table EMP(EMPNO INT NOT NULL,ENAME VARCHAR(10),JOB VARCHAR(9),MGR INT,HIREDATE DATE, SAL FLOAT,COMM FLOAT,DEPTNO INT); alter table EMP add constraint PK_EMP PRIMARY KEY (EMPNO); alter table EMP add constraint FK_DEPTNO foreign key(DEPTNO) references DEPT(DEPTNO);

sql查询语句练习(解析版)

sql查询语句练习(解析版)BY DD 表情况 Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score) 成绩表 Teacher(T#,Tname) 教师表 create table Student(S# varchar2(20),Sname varchar2(10),Sage int,Ssex varchar2(2)) ; create table Course(C# varchar2(20),Cname varchar2(10),score varchar2(4)) ; create table SC(S# varchar2(20),C# varchar2(20),score varchar2(4)) ; create table Teacher(T# varchar2(20),Tname varchar2(10)) ; insert into Student(S#,Sname,Sage,Ssex) values('1001','李五','15','男'); insert into Student(S#,Sname,Sage,Ssex) values('1002','张三','16','女'); insert into Student(S#,Sname,Sage,Ssex) values('1003','李四','15','女'); insert into Student(S#,Sname,Sage,Ssex) values('1004','陈二','14','男'); insert into Student(S#,Sname,Sage,Ssex) values('1005','小四','15','男'); 问题: 1、查询“001”课程比“002”课程成绩高的所有学生的学号; select a.S# from (select s#,score from SC where C#='001') a,(select s#,score from SC where C#='002') b where a.score>b.score and a.s#=b.s#; 解析:(select s#,score from SC where C#='001') a//从SC中查询C#=001的学生学号和分数,并定义为a表。 (select s#,score from SC where C#='002') b //从SC中查询C#=002的学生学号和分数,并定义为b表。 where a.score>b.score and a.s#=b.s# 条件,a表与b表中学号相同且分数比b中的高。 2、查询平均成绩大于60分的同学的学号和平均成绩; select S#,avg(score) rom sc group by S# having avg(score) >60; 解析: group by S# having avg(score) >60 这里是指平均分数大于60分的

数据库sql查询语句练习2_习题_结果(单世民)

现在有一教学管理系统,具体的关系模式如下:Student (no, name, sex, birthday, class) Teacher (no, name, sex, birthday, prof, depart) Course (cno, cname, tno) Score (no, cno, degree) 其中表中包含如下数据: Course表: Score表: Student表:

Teacher表: 根据上面描述完成下面问题: (注意:注意保存脚本,尤其是DDL和DML,以便进行数据还原)DDL 1.写出上述表的建表语句。 2.给出相应的INSERT语句来完成题中给出数据的插入。 单表查询 3.以class降序输出student的所有记录(student表全部属性) 命令:select*from Student order by class desc;

4.列出教师所在的单位depart(不重复)。 命令:select distinct depart from Teacher; 5.列出student表中所有记录的name、sex和class列 命令:select name,sex,class from Student; 6.输出student中不姓王的同学的姓名。 命令:select name from Student except select name from Student where name like'王%';或

select name from Student where name not like'王%'; 7.输出成绩为85或86或88或在60-80之间的记录(no,cno,degree) 命令:select no,cno,DEGREE from Score where degree=85 or degree=86 or degree=88 or degree between 60 and 80; 8.输出班级为95001或性别为‘女’的同学(student表全部属性) 命令:select*from Student where class=95001 or sex='女';

SQL server 查询语句 练习题

SQL server 查询语句练习题 用SQL语句创建四个表: create database tongji go use tongji go create table student ( Sno varchar(20) not null primary key ,--学号 Sname varchar(20) not null,--学生姓名 Ssex varchar(20) not null, --学生性别 Sbirthday datetime,--学生出生年月 Class varchar(20)--学生所在班级 ) go create table teacher--老师 ( Tno varchar(20) not null primary key ,--教工编号(主码) Tname varchar(20) not null,--教工姓名 Tsex varchar(20) not null, --教工性别 Tbirthday datetime,--教工出生年月 Prof varchar(20),--职称 Depart varchar(20) not null--教工所在部门 ) go create table Course--课程 ( Cno varchar(20) not null primary key ,--课程号 Cname varchar(20) not null,--课程名称 Tno varchar(20) not null references teacher(Tno), --教工编号(外码)) go create table Score--分数 ( Sno varchar(20) not null references student(Sno), --学号(外码)Cno varchar(20) not null references Course(Cno), --课程号(外码)primary key(Sno,Cno), Degree Decimal(4,1),--成绩 ) 表中数据如下: 表(一)Student

数据库SQL查询语句练习题

设教学数据库Education有三个关系: 学生关系S(SNO,SNAME,AGE,SEX,SDEPT);学习关系SC(SNO,CNO,GRADE);课程关系C(CNO,CNAME,CDEPT,TNAME)查询问题: (1)检索计算机系的全体学生的学号,姓名和性别; (2)检索学习课程号为C2的学生学号与姓名; (3)检索选修课程名为“DS”的学生学号与姓名; (4)检索选修课程号为C2或C4的学生学号; (5)检索至少选修课程号为C2和C4的学生学号; (6)检索不学C2课的学生姓名和年龄; (7)检索学习全部课程的学生姓名; (8)查询所学课程包含学生S3所学课程的学生学号。 (1)检索计算机系的全体学生的学号,姓名和性别; SELECT Sno,Sname,Sex FROM S WHERE Sdept ='CS'; (2)检索学习课程号为C2的学生学号与姓名; Sname ,1.SELECT SnoSname ,2.SELECT S.SnoFROM S SC , FROM SWHERE Sno IN WHERE S.Sno=SC.Sno SELECT Sno (;C2'AND https://www.doczj.com/doc/0d16486916.html,o=‘ FROM SC )‘C2' WHERE Cno= DS)检索选修课程名为“”的学生学号与姓名(3表建立它们二者的表没有直接联系,必须通过SC表中,但S和C 本查询涉及到学号、姓名和课程名三个属性,分别存放在S和C S SC →联系。 C →基本思路: Cno;表中找出“DS”课程的课程号(1)首先在C ;Cno 集合中的某个元素Cno2)然后在SC表中找出Cno等于第一步给出的(送入结果表列。和SnameSno等于第二步中Sno 集合中某个元素的元组,取出Sno S(3)最后在关系中选出Sname ,SELECT SnoFROM S WHERE Sno IN SELECT Sno ( FROM SC WHERE Cno IN SELECT Cno ( FROM C );DS') WHERE Cname=‘ 的学生学号;C2或C4(4)检索选修课程号为SELECT Sno FROM SC ';'C2 OR Cno=‘C4WHERE Cno=‘

sql查询语句练习

Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score) 成绩表 Teacher(T#,Tname) 教师表 1.查询“001”课程比“002”课程成绩高的所有学生的学号; 2.查询平均成绩大于60分的同学的学号和平均成绩; 3.查询所有同学的学号、姓名、选课数、总成绩; 4.查询姓“李”的老师的个数; 5.查询没学过“叶平”老师课的同学的学号、姓名; 6.查询所有课程成绩小于60分的同学的学号、姓名; 7.查询没有学全所有课的同学的学号、姓名; 8.查询至少有一门课与学号为“1001”的同学所学相同的同学的学号和姓名;4 9.删除学习“叶平”老师课的SC表记录; 3 10.取各科平均成绩和及格率,按及格率的百分数从高到低顺序2 11.查询不同老师所教不同课程平均分从高到低显示5 12.统计列印各科,各分数段人数:课程ID,课程名称,[100-85],[85-70],[70-60],[ <60] 6\ 13.查询每门课程被选修的学生数7 14.查询出只选修了一门课程的全部学生的学号和姓名1 15.查询男生、女生人数 16.查询姓“张”的学生名单 17.查询同名同姓学生名单,并统计同名人数 18.查询每门课程的平均成绩,结果按平均成绩升序排列,平均成绩相同时,按课程号降序排列 19.查询平均成绩大于85的所有学生的学号、姓名和平均成绩 20.查询课程名称为“数据库”,且分数低于60的学生姓名和分数 21.查询所有学生的选课情况,学号、课程号、姓名、课程名 22.查询任意一门课程成绩在70分以上的姓名、课程名称和分数; 23.查询有成绩不及格的课程,并按课程号从大到小排列 24.查询课程编号为003且课程成绩在80分以上的学生的学号和姓名; 25.查询各个课程及相应的选修人数 26.检索至少选修两门课程的学生学号 27.查询没学过“叶平”老师讲授的任一门课程的学生姓名 28.查询两门以上不及格课程的同学的学号及其平均成绩 29.检索“004”课程分数小于60,按分数降序排列的同学学号 30.删除“002”同学的“001”课程的成绩 经典SQL练习题 CREATE TABLE STUDENT (SNO VARCHAR(3) NOT NULL, SNAME VARCHAR(4) NOT NULL,

数据库SQL语句实验报告

《数据库原理及应用》实验报告 SQL语句部分 总成绩:

实验一熟悉SQL SERVER,数据定义实验 实验一成绩: 一、实验目的 1、利用查询分析器创建数据库 2、利用查询分析器用SQL语言定义基本表、索引并进行相关操作 二、实验步骤及内容 在以下实验中,使用学生-课程数据库,它描述了学生的基本信息、课程的基本信息及学生选修课程的信息。 1.创建学生课程数据库 3.创建课程关系表C : 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 ccredit create table C ( Cno char(4)primary key, Cname CHAR(40), Cpno char(4), Ccredit SMALLINT, ); 4.创建课程关系表SC : 学号课程号成绩 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的“年龄”属性列。 alter table S drop column Sage;

数据库中SQL查询语句习题含的答案

.word 版本可编辑. 查询问题:设教学数据库Education 有三个关系: 学生关系S (SNO ,SNAME ,AGE ,SEX ,SDEPT );学习关系SC (SNO ,CNO ,GRADE );课程关系C (CNO ,CNAME ,CDEPT ,TNAME ) (1)检索计算机系的全体学生的学号,姓名和性别; (2)检索学习课程号为C2的学生学号与姓名; (3)检索选修课程名为“DS ”的学生学号与姓名; (4)检索选修课程号为C2或C4的学生学号; (5)检索至少选修课程号为C2和C4的学生学号; (6)检索不学C2课的学生姓名和年龄; (7)检索学习全部课程的学生姓名; (8)查询所学课程包含学生S3所学课程的学生学号。 (1)检索计算机系的全体学生的学号,姓名和性别; SELECT Sno ,Sname ,Sex FROM S WHERE Sdept =’CS ’; (2)检索学习课程号为C2的学生学号与姓名; (1)首先在C 表中找出“DS ”课程的课程号Cno ; (2)然后在SC 表中找出Cno 等于第一步给出的Cno 集合中的某个元素Cno ; (3)最后在S 关系中选出Sno 等于第二步中Sno 集合中某个元素的元组,取出Sno 和Sname 送入结果表列。 SELECT Sno ,Sname FROM S WHERE Sno IN (SELECT Sno FROM SC WHERE Cno IN (SELECT Cno FROM C WHERE Cname=‘DS ’)); (4)检索选修课程号为C2或C4的学生学号; SELECT Sno FROM SC WHERE Cno=‘C2’ OR Cno=‘C4’; (5)检索至少选修课程号为C2和C4的学生学号; SELECT Sno FROM SC X ,SC Y WHERE X.Sno=Y.Sno AND https://www.doczj.com/doc/0d16486916.html,o=‘C2’ AND https://www.doczj.com/doc/0d16486916.html,o=‘C4’ ; (6)检索不学C2课的学生姓名和年龄; 有学。 SELECT Sname FROM S WHERE NOT EXISTS (SELECT * FROM C WHERE NOT EXISTS (SELECT * FROM SC WHERE SC.Sno=S.Sno AND https://www.doczj.com/doc/0d16486916.html,o=https://www.doczj.com/doc/0d16486916.html,o )); (8)查询所学课程包含学生S3所学课程的学生学号。 分析:不存在这样的课程Y ,学生S3选了Y ,而其他学生没有选。 SELECT DISTINCT Sno FROM SC AS X WHERE NOT EXISTS (SELECT * FROM SC AS Y WHERE Y.Sno=‘S3’ AND NOT EXISTS (SELECT * FROM SC AS Z WHERE Z.Sno=X.Sno AND https://www.doczj.com/doc/0d16486916.html,o=https://www.doczj.com/doc/0d16486916.html,o )); 设教学数据库Education 有三个关系: 学生关系S (SNO ,SNAME ,AGE ,SEX ,SDEPT ); 学习关系SC (SNO ,CNO ,GRADE ); 课程关系C (CNO ,CNAME ,CDEPT ,TNAME ) 查询问题: 1:查所有年龄在20岁以下的学生姓名及年龄。 2:查考试成绩有不及格的学生的学号 3:查所年龄在20至23岁之间的学生姓名、系别及年龄。 4:查计算机系、数学系、信息系的学生姓名、性别。 5:查既不是计算机系、数学系、又不是信息系的学生姓名、性别 6:查所有姓“刘”的学生的姓名、学号和性别。 7:查姓“上官”且全名为3个汉字的学生姓名。 8:查所有不姓“张”的学生的姓名。 9:查DB_Design 课程的课程号。 10:查缺考的学生的学号和课程号。 11:查年龄为空值的学生的学号和姓名。 12:查计算机系20岁以下的学生的学号和姓名。 13:查计算机系、数学系、信息系的学生姓名、性别。 14:查询选修了C3课程的学生的学号和成绩,其结果按分数的降序排列。 15:查询全体学生的情况,查询结果按所在系升序排列,对同一系中的学生按年龄降序排列。 16:查询学生总人数。 17:查询选修了课程的学生人数。 18:计算选修了C1课程的学生平均成绩。

sql查询语句大全

SQL查询语句大全 《SQL语句的基本语法》 一.Select语句的完整语法为: Select[ALL|DISTINCT|DISTINCTROW|TOP] {*|talbe.*|[table.]field1[AS alias1][,[table.]field2[AS alias2][,…]]} FROM tableexpression[,…][IN externaldatabase] [Where…] [GROUP BY…] [HAVING…] [ORDER BY…] [WITH OWNERACCESS OPTION] 说明: 用中括号([])括起来的部分表示是可选的,用大括号({})括起来的部分是表示必须从中选择其中的一个。 1 FROM子句 FROM子句指定了Select语句中字段的来源。FROM子句后面是包含一个或多个的表达式(由逗号分开),其中的表达式可为单一表名称、已保存的查询或 由 INNER JOIN、LEFT JOIN 或 RIGHT JOIN 得到的复合结果。如果表或查询存储在外部数据库,在IN 子句之后指明其完整路径。 例:下列SQL语句返回所有有定单的客户: Select orderID,Customer.customerID FROM orders Customers Where orders.CustomerID=Customers.CustomeersID 2 ALL、DISTINCT、DISTINCTROW、TOP谓词 (1) ALL 返回满足SQL语句条件的所有记录。如果没有指明这个谓词,默认为ALL。 例:Select ALL FirstName,LastName FROM Employees (2) DISTINCT 如果有多个记录的选择字段的数据相同,只返回一个。 (3) DISTINCTROW 如果有重复的记录,只返回一个 (4) TOP显示查询头尾若干记录。也可返回记录的百分比,这是要用 TOP N PERCENT子句(其中N 表示百分比) 例:返回5%定货额最大的定单 Select TOP 5 PERCENT* FROM [ order Details] orDER BY UnitPrice*Quantity*(1-Discount) DESC 3 用 AS 子句为字段取别名 如果想为返回的列取一个新的标题,或者,经过对字段的计算或总结之后,产生了一个新的值,希望把它放到一个新的列里显示,则用AS保留。 例:返回FirstName字段取别名为NickName Select FirstName AS NickName ,LastName ,City

相关主题
文本预览
相关文档 最新文档