数据库系统原理实验报告_SQL查询语句

数据库系统原理实验报告_SQL查询语句
数据库系统原理实验报告_SQL查询语句

数据库系统原理

实验报告

:xxx

学号:xxxxxxxx

专业:xxxxx

日期:xxxxx

Lab2

一、实验目的

进一步熟悉关系数据库标准语言SQL。

二、实验环境

1)Windows 10

2)SQL Server 2017

三、实验容

给定如学生表、课程表和学生作业表所示的信息。

表1 学生表

学号性别专业班级出生日期联系

0433 艳女生物04 1986-9-13

0496 越男电子04 1984-2-23 1381290××××0529 欣男会计05 1984-1-27 1350222××××0531 志国男生物05 1986-9-10 1331256××××0538 于兰兰女生物05 1984-2-20 1331200××××0591 王丽丽女电子05 1984-3-20 1332080××××0592 王海强男电子05 1986-11-1

表2 课程表

课程号课程名学分数学时数任课教师

K001 计算机图形学 2.5 40 胡晶晶

K002 计算机应用基础 3 48 任泉

K006 数据结构 4 64 马跃先

M001 政治经济学 4 64 孔繁新

S001 高等数学 3 48 晓尘

表3 学生作业表

课程号学号作业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语句:

SELECTCOUNT(DISTINCT学号)

FROM学生作业表

WHERE课程号='K001';

查询结果截图:

6.查询数据库中共有多少个班级。(5分)

Sql语句:

SELECTCOUNT(DISTINCT专业班级)

FROM学生表;

查询结果截图:

7.查询选修三门以上(含三门)课程的学生的学号和作业1平均分、作业2平均分和作业3平均分。(5分)

Sql语句:

SELECT学生作业表.学号,AVG(作业1成绩),AVG(作业2成绩),AVG(作业3成绩)

FROM学生表,学生作业表

WHERE学生表.学号=学生作业表.学号

GROUP BY学生作业表.学号

HAVINGCOUNT(*)>2;

查询结果截图:

8.查询于兰兰的选课信息,列出学号、、课程名。(5分)

Sql语句:

SELECT学生作业表.学号,,课程名

FROM学生表,学生作业表,课程表

WHERE= '于兰兰'AND学生表.学号=学生作业表.学号AND课程表.课程号=学生作业表.课程号;

查询结果截图:

9. 查询与“志国”同一班级的学生信息(使用连接查询和子查询方式两种方式)。(10 )

1)连接查询:

Sql语句:

SELECT学生表1.*

FROM学生表AS学生表1,学生表AS学生表2

WHERE学生表2.='志国'AND学生表1.专业班级=学生表2.专业班级;

查询结果截图:

2)子查询:

Sql语句:

SELECT*

FROM学生表

WHERE专业班级=(SELECT专业班级

FROM学生表

WHERE='志国');

查询结果截图:

10. 查询比“计算机应用基础”学时多的课程信息(使用连接查询和子查询方式两种

方式)。(10分)

1)连接查询:

Sql语句:

SELECT课程表1.*

FROM课程表AS课程表1,课程表AS课程表2

WHERE课程表2.课程名='计算机应用基础'AND课程表1.学时数>课程表2.学时数;

查询结果截图:

2)子查询:

Sql语句:

SELECT*

FROM课程表

WHERE学时数>(SELECT学时数

FROM课程表

WHERE课程名='计算机应用基础');

查询结果截图:

11. 查询选修课程号为K002的学生的学号、(使用连接查询、普通子查询、相关子查询、使用exists关键字的相关子查询四种方式)。(20分)

1)连接查询:

Sql语句:

SELECT学生表.学号,学生表.

FROM学生作业表,学生表

WHERE学生作业表.课程号='K002'AND学生作业表.学号=学生表.学号;

查询结果截图:

2)普通子查询:

Sql语句:

SELECTDISTINCT学生表.学号,学生表.

FROM学生作业表,学生表

WHERE学生表.学号IN(

SELECT学生表.学号

FROM学生作业表

WHERE学生作业表.课程号='K002'AND学生作业表.学号=

学生表.学号)

查询结果截图:

3)相关子查询:

Sql语句:

SELECTDISTINCT学生表.学号,学生表.

FROM学生表,学生作业表

WHERE学生表.学号IN(

SELECT学生作业表.学号

FROM学生作业表

WHERE学生作业表.课程号='K002')

查询结果截图:

4)使用exists关键字的相关子查询:

Sql语句:

SELECTDISTINCT学生表.学号,学生表.

FROM学生作业表,学生表

WHERE EXISTS(

SELECT*

FROM学生作业表

WHERE学生作业表.课程号='K002'AND学生作业表.学号=学生表.

学号)

查询结果截图:

12. 查询没有选修K001和M001课程的学号、课程号和三次成绩(使用子查询)。(20分)

Sql语句:

SELECTDISTINCT学号,课程号,作业1成绩,作业2成绩,作业3成绩

FROM学生作业表

WHERE学号NOTIN(

SELECT学号

FROM学生作业表

WHERE课程号='K001'OR课程号='M001')

查询结果截图:

四、实验总结

通过本次实验,我更加熟悉了SQL语言查询相关的语句用法。在实验中遇到了很多问题,例如建表时提示主键列不能输入重复值,后来才知道原来要设置两个主键。

希望在以后的实验中可以收获更多的实践知识。

数据库SQL语句

1、select x.商品代号,分类名,数量,品牌 From 商品表现1 x,商品表2 y Where x.商品代号=y.商品代号 (从商品库中查询出每一种商品的商品代号、分类名、数量和品牌等信息。)2、select distinct 产地 From商品表2 (从商品库中查询出所有商品的不同产地。) 3、select distinct 品牌 From 商品表2 (从商品库中查询出所有商品的不同品牌) 4、select count(distinct产地)as产地数From商品表2 (从商品库中查询出所有商品的不同产地的总数。) 5、select x.商品代号,分类名,产地,品牌 From商品表1 x.,商品表2 y Where x,商品代号=y.商品代号and (品牌=‘熊猫’or品牌=‘春兰’) (从商品库中查询出品牌为熊猫或春兰的所有商品的商品代号、分类名、产地和品牌。) 19、select 商品表1.商品代号,单价,数量,产地 From 商品表1,商品表2 Where 商品表达式1.商品代号=商品表达式2.商品代号 (从商品库中查询出每种商品的商品代号、单价、数量和产地。) 20、select count(*) From 商品表1 Where数量》10 (从商品库中查询出数量大于10的商品种数。) 21、select * From商品表1 Where数量between 10 and20 (从商品库中查询出数量在10和20之间的所有商品。) 22、select分类名,max(单价)as最高单价 From商品表1 Group by 分类名 (从商品库中查询出每类(即类名相同)商品的最高单价)23、select分类名,avg(数量)as平均 数量 From商品表1 Group by分类名 (从商品库中查询出每类(即分类名相 同)商品的平均数量) 24、select分类名,sum(数量)as总 数量 From商品表1 Group by分类名 (从商品库中查询出每类(即分类名相 同)商品的总数量。) 25、select* From商品表1 Where单价>all(select单价 From商品表1 Where分类名’电视机’) (从商品库中查询出比所有电视机的 单价都高的每种商品) 26、select* From商品表1 Where单价>all(select avg(单价) From商品表1) (从商品库中查询出比所有商品单价 的平均值要高的全部商品) 27、select* From商品表1 Where数量=some(select max(数量) From商品表1) (从商品库中查询出数量最多的一种 商品) 28、select distinct分类名 From商品表1. Group by 分类名having count(*)>1 (从商品库中查询出同一类商品多于一 种的所有分类名) 29、select商品表1.*,产地 From商品表1,商品表2 Where商品表1.商品代号=商品表2.商 品代事情and产地in( Select 产地 From商品表1 x ,商品表2 y Where x.商品代号=y.商品代号 Group by产地having count(*)=1) (从商品库中查询出同一产地的商品 只有一种的所有商品) 30、select*,单价*数量as总价值 From商品表1 Order by总价值desc (从商品库中查询出每种商品的总价 值,并按降序排列出来 6、select 学生。学生号,count(*)as选 课门数 From学生,选课 Where学生.学生号=选课.学生号 Group by 学生。学生号 (从教学库中查询出互个学生选课的 门数。) 7、select distinct x.* From 学生产x,选课y,选课z Where y.学生号=z.学生号and y .课程 号<>z.课程号and x.学生号=y.学生号 (从教学库中查询出至少选修了两门 课程的全部学生。) 8、select * From 学生 Where 学生号in (select 学生号 From 选课 Group by 学生号having coount (*)=1) (从教学库中查询出只选修了一门课 程的全部学生。) 9、select x.学生号,y.学生号,y.课程号 From 选课x,选课y Where x.学生号=@sl and y.学生号=@ s2 and x.课程号=y.课程号 (从教学库中查询出学生号为@s1的学 生和学生号为@s2的学生所选修的共 同课程的课程号。) 10、select x.* From 课程x,选课y Where x.课程号=y.课程号and y .学生 号=@s1 and y.课程号not in( select 课程号 from 选课 where 选课.学生号=@s2) (从教学库中查询出学生号为@S1的学 生所选修、而学生号为@s2的学生没有 选修的全部课程。) 11、select * From 课程 Where not exists( select * from 选课 where 课程.课程号=选课.课程号) (从教学库中查询出所有未被学生选 修的课程。) 12、select * From 课程 Where exists(Select * From 选课 Where 课程.课程号=选课.课程号) (从教学库中查询出所有已被学生选 修的课程。)

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语句大全1

SQL语句大全 --语句功能 --数据操作 SELECT --从数据库表中检索数据行和列INSERT --向数据库表添加新数据行 DELETE --从数据库表中删除数据行 UPDATE --更新数据库表中的数据 --数据定义 CREATE TABLE --创建一个数据库表 DROP TABLE --从数据库中删除表 ALTER TABLE --修改数据库表结构 CREATE VIEW --创建一个视图 DROP VIEW --从数据库中删除视图 CREATE INDEX --为数据库表创建一个索引DROP INDEX --从数据库中删除索引 CREATE PROCEDURE --创建一个存储过程 DROP PROCEDURE --从数据库中删除存储过程CREATE TRIGGER --创建一个触发器 DROP TRIGGER --从数据库中删除触发器CREATE SCHEMA --向数据库添加一个新模式DROP SCHEMA --从数据库中删除一个模式CREATE DOMAIN --创建一个数据值域 ALTER DOMAIN --改变域定义 DROP DOMAIN --从数据库中删除一个域 --数据控制 GRANT --授予用户访问权限 DENY --拒绝用户访问 REVOKE --解除用户访问权限 --事务控制 COMMIT --结束当前事务 ROLLBACK --中止当前事务 SET TRANSACTION --定义当前事务数据访问特征--程序化SQL DECLARE --为查询设定游标 EXPLAN --为查询描述数据访问计划 OPEN --检索查询结果打开一个游标 FETCH --检索一行查询结果 CLOSE --关闭游标 PREPARE --为动态执行准备SQL 语句EXECUTE --动态地执行SQL 语句 DESCRIBE --描述准备好的查询

数据库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、说明:创建数据库 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语言 一、实验目的 1、理解数据库以及数据表的设计; 2、熟悉SQL Server2005中的数据类型; 3、熟悉使用SQL语句创建和删除模式和索引; 4、掌握使用SQL语句创建、修改和删除数据表; 5、掌握使用SQL语句查询表中的数据; 6、掌握使用SQL语句插入、修改和删除数据表中的数据; 7、掌握使用SQL语句创建、删除、查询和更新视图。 二、实验容 (一)创建数据库和模式 1、通过SQL语句创建图书信息管理数据库,命名为“db_Library”,数据文件和日志文件放在D盘下以自己学号和命名的文件夹中,数据文件的逻辑名为db_Library_data,数据文件的操作系统名为db_Library_data.mdf,文件初始大小为10MB,最大可增加至300MB,增幅为10%;日志文件的逻辑名为db_Library_log,日志文件的操作系统名为db_Library_data.ldf,文件初始大小为5MB,最大可增加至200MB,增幅为2MB。 2、通过SQL语句在该数据库中创建模式L-C。 (二)创建和管理数据表 要求为各数据表的字段选择合适的数据类型及名称;为各数据表设置相应的完整性约束条件。 1、通过SQL语句将以下数据表创建在L-C模式下: 课程信息表(tb_course)——课程编号Course number 、课程名Course name 、先修课The first course 、学分credit 2、通过SQL语句将以下数据表创建在该数据库的默认模式dbo下: 图书类别信息表(tb_booktype)——类别编号Type number 、类别名称Category name 图书信息表(tb_book)——图书编号ISBN 、类别编号Type number、书名title 、作者author、BookPublic、定价BookPrice、库存数Inventory number 读者信息表(tb_reader)——读者编号Reader ID 、、性别、学号Student ID 、班级、系部pastern 借阅信息表(tb_borrow)——图书编号、读者编号、借阅日期Borrowing date 、归还日期Return date 3、通过SQL语句对读者信息表进行修改:删除系部字段、添加所在系字段。 4、通过SQL语句对图书信息表进行修改:将定价的数据类型改为REAL。 5、通过SQL语句删除课程信息表。 (三)创建和删除索引 1、使用SQL语句在图书信息表上创建一个非聚簇索引IX_S_QUANTITY,要求按照该表中库存数字段的降序创建。 2、使用SQL语句在读者信息表上创建一个唯一的非聚簇索引IX_S_NAME,要求按照该表中的字段的升序创建。 3、使用SQL语句删除之前创建的两个索引。 (四)数据库及数据表设计

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是 表示一百分数,指定返回的行数等于总行数的百分之几。

数据库经典SQL语句大全

数据库经典SQL语句大全 篇一:经典SQL语句大全 下列语句部分是Mssql语句,不可以在access中使用。 SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK) 首先,简要介绍基础语句: 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的 device USE master EXEC sp_addumpdevice 'disk','testBack', 'c:mssql7backupMyNwind_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、说明: 删除新表: 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 注:索引是不可更改的,想更改必须删除重新建。

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语句大全

数据库基本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、d at' --- 开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 typ e2 [not null],、、) 根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2…from tab_old definit ion 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

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

数据库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语句部分 :绩成总

实验一熟悉SQL SERVER,数据定义实验 实验一成绩: 一、实验目的 1、利用查询分析器创建数据库 2、利用查询分析器用SQL语言定义基本表、索引并进行相关操作 二、实验步骤及内容 在以下实验中,使用学生-课程数据库,它描述了学生的基本信息、课程的基本信息及学生选修课程的信息。 1.创建学生课程数据库 2.创建学生关系表S : 3.创建课程关系表C : 课程名学分先行课课程号Cno ccreditCname Cpno 4.创建课程关系表SC : 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.创建学生课程数据库 ; Studend create database2.创建学生关系表S : S create table(, 9Sno CHAR()PRIMARYKEY UNIQUE,)(Sname CHAR20CHAR Ssex (2), smallint Sage ,

char Sdept 20(), ); .创建课程关系表C 3: 课程号课程名先行课学分 ccredit Cpno CnoCname table C create (primary key,) Cno char(4Cname CHAR(40 ),char(), 4Cpno ,Ccredit SMALLINT); 4.创建课程关系表SC : 学号课程号成绩 grade Sno Cno createtable SC(9),Sno char(),char Cno (4, Grade smallint); 5.将以上创建表S、C、SC的SQL命令以 .SQL文件的形式保存在磁盘上。 6、在表S上增加“出生日期”属性列。 ;datetimeadd Sbirthday alter table S 7、删除表S的“年龄”属性列。

SQL语句大全实例

SQL语句实例 表操作 例 1 对于表的教学管理数据库中的表STUDENTS ,可以定义如下:CREATE TABLE STUDENTS (SNO NUMERIC (6, 0) NOT NULL SNAME CHAR (8) NOT NULL AGE NUMERIC(3,0) SEX CHAR(2) BPLACE CHAR(20) PRIMARY KEY(SNO)) 例 2 对于表的教学管理数据库中的表ENROLLS ,可以定义如下: CREATE TABLE ENROLLS (SNO NUMERIC(6,0) NOT NULL CNO CHAR(4) NOT NULL GRADE INT PRIMARY KEY(SNO,CNO) FOREIGN KEY(SNO) REFERENCES STUDENTS(SNO) FOREIGN KEY(CNO) REFERENCES COURSES(CNO) CHECK ((GRADE IS NULL) OR (GRADE BETWEEN 0 AND 100))) 例 3 根据表的STUDENTS 表,建立一个只包含学号、姓名、年龄的女学生表。 CREATE TABLE GIRL

AS SELECT SNO, SNAME, AGE FROM STUDENTS WHERE SEX=' 女'; 例 4 删除教师表TEACHER 。 DROP TABLE TEACHER 例 5 在教师表中增加住址列。 ALTER TABLE TEACHERS ADD (ADDR CHAR(50)) 例 6 把STUDENTS 表中的BPLACE 列删除,并且把引用BPLACE 列的所有视图和约束也一起删除。 ALTER TABLE STUDENTS DROP BPLACE CASCADE 例7 补充定义ENROLLS 表的主关键字。 ALTER TABLE ENROLLS ADD PRIMARY KEY (SNO,CNO) ; 视图操作(虚表) 例9 建立一个只包括教师号、姓名和年龄的视图FACULTY 。( 在视图定义中不能包含ORDER BY 子句) CREATE VIEW FACULTY AS SELECT TNO, TNAME, AGE FROM TEACHERS 例10 从学生表、课程表和选课表中产生一个视图GRADE_TABLE ,它包括学生姓名、课程名和成绩。 CREATE VIEW GRADE_TABLE AS SELECT SNAME,CNAME,GRADE FROM STUDENTS,COURSES,ENROLLS WHERE STUDENTS.SNO =ENROLLS.SNO AND https://www.360docs.net/doc/cb6778652.html,O=https://www.360docs.net/doc/cb6778652.html,O 例11 删除视图GRADE_TABLE DROP VIEW GRADE_TABLE RESTRICT 索引操作 例12 在学生表中按学号建立索引。 CREATE UNIQUE INDEX ST ON STUDENTS (SNO,ASC) 例13 删除按学号所建立的索引。 DROP INDEX ST 数据库模式操作

数据库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查询语句练习题

设教学数据库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.360docs.net/doc/cb6778652.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=‘

相关文档
最新文档