SQL语句

SQL语句
SQL语句

题型:SQL语句

题目3.1:设教学数据库中有4个关系:

教师关系 T(T#,TNAME,TITLE)

课程关系 C(C#,CNAME,T#)

学生关系 S(S#,SNAME,AGE,SEX)

选课关系 SC(S#,C#,SCORE)

试用SQL查询语句表示下列查询。

①检索年龄小于17岁女生的学号和姓名。

②检索男生所学课程的课程号和课程名。

③检索男生所学课程的任课老师的工号和姓名。

④检索至少选修两门课程的学生学号。

⑤检索至少有学号为S2和S4学生选修的课程的课程号。

⑥检索WANG同学不学的课程的课程号。

⑦检索全部学生都选修的课程的课程号与课程名。

⑧检索选修课程包含LIU老师所授全部课程的学生学号。

答案:①SELECT S#,SNAME

FROM S

WHERE AGE<17 AND SEX=’F’;

②SELECT C.C#,CNAME

FROM S,SC,C

WHERE S.S#=SC.S# AND SC.C#=C.C# AND SEX=’M’;

③SELECT T.T#’,TNAME

FROM S,SC,C,T

WHERE S.S#=SC.S# AND SC.C#=C.C# AND C.T#=T.T# AND SEX=’M’;

④SELECT DISTINCT X.S#

FROM SC AS X,SC AS Y

WHERE X.S#=Y.S# AND X.C#!=Y.C#;

⑤SELECT DISTINCT X.C#

FROM SC AS X,SC AS Y

WHERE X.S#=S2 AND Y.S#=S4 AND X.C#=Y.C#;

⑥SELECT C#

FROM C

WHERE NOT EXISTS(SELECT *

FROM S,SC

WHERE S.S#=SC.S# AND SC.C#=C.C# AND SNAME=’WANG’);

⑦SELECT C#,CNAME

FROM C

WHERE NOT EXISTS(SELECT *

FROM S

WHERE NOT EXISTS(SELECT *

FROM SC

WHERE S#=S.S# AND C#=C.C#));

⑧SELECT DISTINCT S#

FROM SC AS X

WHERE NOT EXISTS(SELECT *

FROM C,T

WHERE C.T#=T.T# AND TNAME=’LIU’

AND NOT EXISTS(SELECT *

FROM SC AS Y

WHERE Y.S#=X.S# AND Y.C#=C.C#))

题目:3.2 用CASE操作在下列更新语句中完成的SC表中的元组更新:

①若课程号为C5则增加6分,若课程号为C8则增加10分,其他一律增加5分。

②若C4课程的成绩低于该门课的平均成绩,则提高5%,否则提高4%。

答案:

① UPDATE SC

SET SCORE=SCORE+CASE

WHEN C#=’C5’THEN 6

WHEN C#=’C8’THEN 10

ELSE 5

END;

②UPDATE SC

SET SCORE=SCORE*CASE

WHEN SCORE<(SELECT AVG(SCORE)

FROM SC

WHERE C#=’C4’)

THEN 1.05

ELSE 1.04

END

WHERE C#=’C4’;

题目3.3:设教学数据库中有4个关系:

教师关系 T(T#,TNAME,TITLE)

课程关系 C(C#,CNAME,T#)

学生关系 S(S#,SNAME,AGE,SEX)

选课关系 SC(S#,C#,SCORE)

试用SQL查询语句表示下列更新操作:

①往关系C中插入一个课程元组(‘C8‘,‘VC++’,‘T6’)。

②检查所授每门课程的平均成绩大于80分的教师姓名,并把检索到的值送到另

一个已存在的表FACULTY(TNAME)中。

③在SC中删除尚无成绩的选课元组。

④把选修LIU老师的课程的女同学选课元虚全部删去。

⑤把MATHS课不及格的成绩全改为60分。

⑥把低于所有课程总平均成绩的女同学成绩提高5%。

⑦在表SC中修改C4课程的成绩,当成绩小于70分时提高5%,若成绩大于70

分时提高4%(用两种方法实现,一种方法是用两个UPDATE语句实现,另一种

方法是用带CASE操所得UPDATE语句实现)。

⑧在表SC中,当成绩低于全部课程的平均成绩时,提高5%。

答案:

①insert into C values(’C8’,’VC++’,’T6’)

②insert into FACULTY(TNAME)

select distinct TNAME

from(select TNAME,C.C#,AVG(SCORE)

from T,C,SC

where T.T#=C.T# and C.C# = SC.C#

group by C.C#,TNAME)

as result(TNAME,C#,AVG_SCORE) as x

where 80<=ALL(select AVG_SCORE

from result as y

where y.TNAME=x.TNAME)

③delete from SC where SCORE is null

④delete from SC

where S# in(select S# from S

where SEX='F')and

C# in(select C#from C

where T# in(select T#

from T

where TNAME='LIU'))

⑤update SC set SCORE = SCORE*1.05

where SCORE<(select AVG(SCORE)

from SC) and S# in (select S#

from S

where SEX='男')

⑥update SC

Set SCORE = SCORE * 1.05

Where SCORE<(select AVG(SCORE)

From SC)

And S# in(select S#

From S

Where SEX=’男’)

⑦第一种写法:

update SC

Set SCORE=SCORE*CASE

When SCORE>70 then ‘1.04’

Else ‘1.05’

END

Where C#=’C4’

第二种写法:

Update SC

Set SCORE=SCORE*1.04

Where SCORE>70 and C#=’C4’

Update SC

Set SCORE = SCORE*1.05

Where SCORE<=70 and C#=’C4’

⑧update SC

set SCORE=SCORE*1.05

where SCORE<(select AVG(SCORE),C#

from SC

group by C#)

题目3.4:试用SQL查询语句表达下列对教学数据库中4个基本表T、C、S、SC的查询:

教师关系T(T#,TNAME,TITLE)

课程关系 C ( C#,,CNAME,T# )

学生关系S ( S#,SNAME,AGE,SEX )

选课关系SC ( S#,C#,SCORE )

①统计有学生选修的课程门数。

②求选修C4课程的女学生的平均年龄。

③求LIU老师所授课程的每门课程的平均成绩。

④统计每门课程的学生选修人数(超过10人的课程才统计)。要求显示课程号和人数,查询结果按人数降序排列,若人数相同,按课程号升序排列。

⑤检索学号比W ANG同学大,而年龄比他小的学生姓名。

⑥在表SC中检索成绩为空值的学生学号和课程号。

⑦检索姓名以L打头的所有学生的姓名和年龄。

⑧求年龄大于女同学平均年龄的男学生姓名和年龄。

⑨求年龄大于所有女同学年龄的男学生姓名和年龄。

答案:

①SELECT COUNT(DISTINCT C#)

FROM SC;

②SELECT A VG(AGE)

FROM S,SC

WHERE S.S#=SC.S# AND C#=’C4’ AND SEX=’F’;

③SELECT C.C#,A VG(SCORE)

FROM SC,C,T

WHERE SC.C#=C.C# AND C.T#=T.T# AND TNAME=’LIU’

GROUP BY C.C#;

④SELECT C#,COUNT(S#)

FROM SC

GROUP BY C#

HA VING COUNT(*) > 10

ORDER BY 2 DESC,1;

⑤SELECT SNAME

FROM S

WHERE S# > ALL(SELECT S#

FROM S

WHERE SNAME=’WANG’)

AND AGE < ALL(SELECT AGE

FROM S

WHERE SNAME=’WANG’);

⑥SELECT S#,C#

FROM SC

WHERE SCORE IS NULL;

⑦SELECT SNAME,AGE

FROM S

WHERE SNAME LIKE ‘L%’;

⑧SELECT SNAME,AGE

FROM S

WHERE SEX=’M’

AND AGE > (SELECT A VG(AGE)

FROM S

WHERE SEX=’F’);

⑨SELECT SNAME,AGE

FROM S

WHERE SEX=’M’

AND AGE > ALL(SELECT AGE

FROM S

WHERE SEX=’F’);

题目3.5:SQL2提供CASE表达式操作,这个操作类似于程序设计语言中的多分支选择结构,其语法如下:

CASE

WHEN 条件1 THEN 结果1

WHEN 条件2 THEN 结果2

WHEN 条件n THEN 结果n

ELSE 结果m

END

如果自上而下“条件i”首先被满足,那么这个操作返回值“结果i”(可以是某个表达式的值);若没有一个条件被满足,那么返回值“结果m”.

在基本表SC (S#,C#,SCORE)中,SCORE值是百分制。如果欲转换成“成绩等第”,则规则如下:若SCORE <40则等第为F,若40<=SCORE<60 则等第为C,若60<=SCORE <80则等第为B,若80<=SCORE 则等第为A。

试写出下列两个查询语句:

1.检索每个学生的学习成绩,成绩显示时以等第(GRADE)形式出现。

2.检索每个等第的学生人次。

答案:

1)SELECT S# ,C#,CASE

WHEN SCORE>=80 THEN ‘A’

WHEN SCORE>=60 THEN ‘B’

WHEN SCORE>=40 THEN ‘C’

ELSE ‘F’

END AS SCORE

FROM SC

2)SELECT GRADE ,COUNT(S#)

FROM(SELECT S#,C#,CASE

WHEN SCORE>=80 THEN ‘A’ WHEN SCORE>=60 THEN ‘B’ WHEN SCORE>=40 THEN ‘C’ ELSE ‘F’

END

FROM SC) AS RESULT(S#,C#,GRADE) DROUP BY GRADE;

常用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 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、说明:几个高级查询运算词

SQL Server2000常用语句

SQL Server 2000常用命令,语法使用方法 (1) 数据记录筛选: sql="select * from 数据表 where 字段名=字段值 order by 字段名 [desc]" sql="select * from 数据表 where 字段名 like '%字段值%' order by 字段名 [desc]" sql="select top 10 * from 数据表 where 字段名 order by 字段名 [desc]" sql="select * from 数据表 where 字段名 in ('值1','值2','值3')" sql="select * from 数据表 where 字段名 between 值1 and 值2" (2) 更新数据记录: sql="update 数据表 set 字段名=字段值 where 条件表达式" sql="update 数据表 set 字段1=值1,字段2=值2 …… 字段n=值n where 条件表达式" (3) 删除数据记录: sql="delete from 数据表 where 条件表达式" sql="delete from 数据表" (将数据表所有记录删除) (4) 添加数据记录: sql="insert into 数据表 (字段1,字段2,字段3 …) values (值1,值2,值3 …)" sql="insert into 目标数据表 select * from 源数据表" (把源数据表的记录添加到目标数据表) (5) 数据记录统计函数: AVG(字段名) 得出一个表格栏平均值 COUNT(*|字段名) 对数据行数的统计或对某一栏有值的数据行数统计 MAX(字段名) 取得一个表格栏最大的值 MIN(字段名) 取得一个表格栏最小的值 SUM(字段名) 把数据栏的值相加 引用以上函数的方法:

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

数据库基本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 SEVER 常用语句

整理了一下,希望对大家有用 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语句基础教程汇总

无论您是一位SQL 的新手,或是一位只是需要对SQL 复习一下的资料仓储业界老将,您就来对地方了。这个SQL 教材网站列出常用的SQL 指令,包含以下几个部分: ? SQL 指令: SQL 如何被用来储存、读取、以及处理数据库之中的资料。 ?表格处理: SQL 如何被用来处理数据库中的表格。 ?进阶SQL: 介绍SQL 进阶概念,以及如何用SQL 来执行一些较复杂的运算。 ? SQL 语法: 这一页列出所有在这个教材中被提到的SQL 语法。 对于每一个指令,我们将会先列出及解释这个指令的语法,然后用一个例子来让读者了解这个指令是如何被运用的。当您读完了这个网站的所有教材后,您将对SQL 的语法会有一个大致上的了解。另外,您将能够正确地运用SQL 来由数据库中获取信息。笔者本身的经验是,虽然要对SQL 有很透彻的了解并不是一朝一夕可以完成的,可是要对SQL 有个基本的了解并不难。希望在看完这个网站后,您也会有同样的想法。 SQL指令 SELECT 是用来做什么的呢?一个最常用的方式是将资料从数据库中的表格内选出。从这一句回答中,我们马上可以看到两个关键字:从(FROM) 数据库中的表格内选出(SELECT)。(表格是一个数据库内的结构,它的目的是储存资料。在表格处理这一部分中,我们会提到如何使用SQL 来设定表格。) 我们由这里可以看到最基本的SQL 架构: SELECT "栏位名" FROM "表格名" 我们用以下的例子来看看实际上是怎么用的。假设我们有以下这个表格: store_name Sales Date Los Angeles $1500 Jan-05-1999 San Diego $250 Jan-07-1999 Los Angeles $300 Jan-08-1999 Boston $700 Jan-08-1999

数据库经典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常用语句与解释

SQL常用语句与解释 (1)数据记录筛选: sql="select * from 数据表where 字段名=字段值order by 字段名[desc]" //从数据表中读取“字段名=字段值”的所有字段并根据字段名排序【倒序】sql="select * from 数据表where 字段名like '%字段值%' order by 字段名[desc]" //从数据表中读取“字段名中包含字段值”的所有字段并根据字段名排序【倒序】sql="select top10 * from 数据表where 字段名=字段值order by 字段名[desc]" //从数据表中读取前10条满足“字段名=字段值”的所有字段并根据字段名排序【倒序】 sql="select * from 数据表where 字段名in('值1','值2','值3')" //从数据表中读取“字段名满足三个值中的一个”的所有字段 (2)更新数据记录: sql="update 数据表set 字段名=字段值where 条件表达式" //更新数据表中满足条件表达式的记录的字段(更新一条字段)sql="update 数据表set 字段1=值1,字段2=值2……字段n=值n where 条件表达式" //更新数据表中满足条件表达式的记录的多个字段(更新多条字段) (3)删除数据记录: sql="delete from 数据表where 条件表达式" //删除数据表中满足条件表达式的所有记录 sql="delete from 数据表" //将数据表所有记录删除 (4)添加数据记录: sql="insert into 数据表(字段1,字段2,字段3…) values(值1,值2,值3…)" //将值1,值2,值3...插入数据表的字段1,字段2,字段3... sql="insert into 目标数据表select * from 源数据表" //把源数据表的记录添加到目标数据表 (5)数据记录统计函数: AVG(字段名)//得出一个表格某个字段的平均值 COUNT(*|字段名)//对数据行数的统计或对某一字段有值的数据行数统计 MAX(字段名)//取得一个表格中某字段的最大值 MIN(字段名)//取得一个表格中某字段的最小值 SUM(字段名)//取得一个表格中某字段的总和 引用以上函数的方法: sql="select sum(字段名) as 别名from 数据表where 条件表达式" //别名是为了引用的需要

SQL语句教程(免费下载)

非常简单明了的SQL语句教程,看了这篇文本,非常利于大家对数据库的学习。 SQL指令 SELECT DISTINCT WHERE AND OR IN BETWEEN LIKE ORDER BY 函数 COUNT GROUP BY HA VING ALIAS 表格链接 外部链接 CONCA TENATE SUBSTRING TRIM 表格处理 CREATE TABLE CONSTRAINT NOT NULL UNIQUE CHECK 主键 外来键 CREATE VIEW CREATE INDEX ALTER TABLE DROP TABLE TRUNCATE TABLE INSERT INTO UPDATE DELETE FROM 进阶SQL UNION UNION ALL INTERSECT MINUS 子查询 EXISTS CASE 算排名

算中位数 算总合百分比 算累积总合百分比 SQL语法 无论您是一位SQL 的新手,或是一位只是需要对SQL 复习一下的资料仓储业界老将,您就来对地方了。这个SQL 教材网站列出常用的SQL 指令,包含以下几个部分: ? SQL 指令: SQL 如何被用来储存、读取、以及处理数据库之中的资料。 ? 表格处理: SQL 如何被用来处理数据库中的表格。 ? 进阶SQL: 介绍SQL 进阶概念,以及如何用SQL 来执行一些较复杂的运算。 ? SQL 语法: 这一页列出所有在这个教材中被提到的SQL 语法。 对于每一个指令,我们将会先列出及解释这个指令的语法,然后用一个例子来让读者了解这个指令是如何被运用的。当您读完了这个网站的所有教材后,您将对SQL 的语法会有一个大致上的了解。另外,您将能够正确地运用SQL 来由数据库中获取信息。笔者本身的经验是,虽然要对SQL 有很透彻的了解并不是一朝一夕可以完成的,可是要对SQL 有个基本的了解并不难。希望在看完这个网站后,您也会有同样的想法。 SQL指令 SELECT 是用来做什么的呢?一个最常用的方式是将资料从数据库中的表格内选出。从这一句回答中,我们马上可以看到两个关键字:从(FROM) 数据库中的表格内选出(SELECT)。(表格是一个数据库内的结构,它的目的是储存资料。在表格处理这一部分中,我们会提到如何使用SQL 来设定表格。) 我们由这里可以看到最基本的SQL 架构: SELECT "栏位名" FROM "表格名" 我们用以下的例子来看看实际上是怎么用的。假设我们有以下这个表格: store_name Sales Date Los Angeles $1500 Jan-05-1999

50个经典SQL查询语句

--一个题目涉及到的50个Sql语句 --(下面表的结构以给出,自己在数据库中建立表.并且添加相应的数据,数据要全面些. 其中Student表中,SId为学生的ID) ------------------------------------表结构-------------------------------------- --学生表tblStudent(编号StuId、姓名StuName、年龄StuAge、性别StuSex) --课程表tblCourse(课程编号CourseId、课程名称CourseName、教师编号TeaId) --成绩表tblScore(学生编号StuId、课程编号CourseId、成绩Score) --教师表tblTeacher(教师编号TeaId、姓名TeaName) --------------------------------------------------------------------------------- --1、查询“001”课程比“002”课程成绩高的所有学生的学号; Select StuId From tblStudent s1 Where (Select Score From tblScore t1 Where t1.StuId=s1.stuId And t1.CourseId='001')> (Select Score From tblScore t2 Where t2.StuId=s1.stuId And t2.CourseId='002') --2、查询平均成绩大于60分的同学的学号和平均成绩; Select StuId,Avg(Score) as AvgScore From tblScore Group By StuId Having Avg(Score)>60 --3、查询所有同学的学号、姓名、选课数、总成绩; Select StuId,StuName, SelCourses=(Select Count(CourseId) From tblScore t1 Where t1.StuId=s1.StuId), SumScore=(Select Sum(Score) From tblScore t2 Where t2.StuId=s1.StuId) From tblStudent s1 --4、查询姓“李”的老师的个数; Select Count(*) From tblTeacher Where TeaName like '李%' --5、查询没学过“叶平”老师课的同学的学号、姓名; Select StuId,StuName From tblStudent Where StuId Not In ( Select StuID From tblScore sc Inner Join tblCourse cu ON sc.CourseId=cu.CourseId Inner Join tblTeacher tc ON cu.TeaId=tc.TeaId Where tc.TeaName='叶平' ) --6、查询学过“001”并且也学过编号“002”课程的同学的学号、姓名; Select StuId,StuName From tblStudent st Where (Select Count(*) From tblScore s1 Where s1.StuId=st.StuId And

SQL常用语句及函数方法

1、通常用到的字符串转日期格式 Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM Select CONVERT(varchar(100), GETDATE(), 1): 05/16/06 Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16 Select CONVERT(varchar(100), GETDATE(), 3): 16/05/06 Select CONVERT(varchar(100), GETDATE(), 4): 16.05.06 Select CONVERT(varchar(100), GETDATE(), 5): 16-05-06 Select CONVERT(varchar(100), GETDATE(), 6): 16 05 06 Select CONVERT(varchar(100), GETDATE(), 7): 05 16, 06 Select CONVERT(varchar(100), GETDATE(), 8): 10:57:46 Select CONVERT(varchar(100), GETDATE(), 9): 05 16 2006 10:57:46:827AM Select CONVERT(varchar(100), GETDATE(), 10): 05-16-06 Select CONVERT(varchar(100), GETDATE(), 11): 06/05/16 Select CONVERT(varchar(100), GETDATE(), 12): 060516 Select CONVERT(varchar(100), GETDATE(), 13): 16 05 2006 10:57:46:937 Select CONVERT(varchar(100), GETDATE(), 14): 10:57:46:967 Select CONVERT(varchar(100), GETDATE(), 20): 2006-05-16 10:57:47 Select CONVERT(varchar(100), GETDATE(), 21): 2006-05-16 10:57:47.157 Select CONVERT(varchar(100), GETDATE(), 22): 05/16/06 10:57:47 AM Select CONVERT(varchar(100), GETDATE(), 23): 2006-05-16 Select CONVERT(varchar(100), GETDATE(), 24): 10:57:47

SQL语句约束大全

一、基础(建表、建约束、关系) 约束(Constraint)是Microsoft SQL Server 提供的自动保持数据库完整性的一种方法,定义了可输入表或表的单个列中的数据的限制条件(有关数据完整性的介绍请参见第9 章)。在SQL Server 中有5 种约束:主关键字约束(Primary Key Constraint)、外关键字约束(Foreign Key Constraint)、惟一性约束(Unique Constraint)、检查约束(Check Constraint)和缺省约束(Default Constraint)。 (最后几页介绍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],..) --建表、建约束、关系 create table tableok ( col1 int, col2_notnull int not null, col3_default nchar(1) not null default('男'), --默认男 col4_default datetime not null default(getdate()), --默认得到系统时间

SAS中的SQL语句大全

S A S中的S Q L语句大 全 标准化管理处编码[BBX968T-XBB8968-NNJ668-MM9N]

SAS中的SQL语句完全教程之一:SQL简介与基本查询功能 本系列全部内容主要以《SQL Processing with the SAS System (Course Notes)》为主进行讲解,本书是在网上下载下来的,但忘了是在哪个网上下的,故不能提供下载链接了,需要的话可以发邮件向我索取,我定期邮给大家,最后声明一下所有资料仅用于学习,不得用于商业目的,否则后果自负。 1 SQL过程步介绍 SQL过程步可以实现下列功能: 查询SAS数据集、从SAS数据集中生成报表、以不同方式实现数据集合并、创建或删除SAS数据集、视图、索引等、更新已存在的数据集、使得SAS系统可以使用SQL语句、可以和SAS的数据步进行替换使用。注意,SQL过程步并不是用来代替SAS数据步,也不是一个客户化的报表工具,而是数据处理用到的查询工具。 SQL过程步的特征 SQL过程步并不需要对每一个查询进行重复、每条语句都是单独处理、不需要print过程步就能打印出查询结果、也不用sort过程步进行排序、不需要run、要quit来结束SQL 过程步 SQL过程步语句 SELECT:查询数据表中的数据 ALTER:增加、删除或修改数据表的列 CREATE:创建一个数据表

DELETE:删除数据表中的列 DESCRIBE:列出数据表的属性 DROP:删除数据表、视图或索引 INSERT:对数据表插入数据 RESET:没用过,不知道什么意思 SELECT:选择列进行打印 UPDATE:对已存在的数据集的列的值进行修改 2 SQL基本查询功能 SELECT语句基本语法介绍 SELECT object-item <, ...object-item> FROM from-list > >;这里SELECT:指定被选择的列

50个经典sql语句总结

一个项目涉及到的50个Sql语句(整理版) --1.学生表 Student(S,Sname,Sage,Ssex) --S 学生编号,Sname 学生姓名,Sage 出生年月,Ssex 学生性别--2.课程表 Course(C,Cname,T) --C --课程编号,Cname 课程名称,T 教师编号 --3.教师表 Teacher(T,Tname) --T 教师编号,Tname 教师姓名 --4.成绩表 SC(S,C,score) --S 学生编号,C 课程编号,score 分数 */ --创建测试数据 create table Student(S varchar(10),Sname nvarchar(10),Sage datetime,Ssex nvarchar(10)) insert into Student values('01' , N'赵雷' , '1990-01-01' , N'男') insert into Student values('02' , N'钱电' , '1990-12-21' , N'男') insert into Student values('03' , N'孙风' , '1990-05-20' , N'男') insert into Student values('04' , N'李云' , '1990-08-06' , N'男') insert into Student values('05' , N'周梅' , '1991-12-01' , N'女') insert into Student values('06' , N'吴兰' , '1992-03-01' , N'女') insert into Student values('07' , N'郑竹' , '1989-07-01' , N'女') insert into Student values('08' , N'王菊' , '1990-01-20' , N'女') create table Course(C varchar(10),Cname nvarchar(10),T varchar(10)) insert into Course values('01' , N'语文' , '02') insert into Course values('02' , N'数学' , '01') insert into Course values('03' , N'英语' , '03') create table Teacher(T varchar(10),Tname nvarchar(10)) insert into Teacher values('01' , N'张三') insert into Teacher values('02' , N'李四') insert into Teacher values('03' , N'王五') create table SC(S varchar(10),C varchar(10),score decimal(18,1)) insert into SC values('01' , '01' , 80) insert into SC values('01' , '02' , 90) insert into SC values('01' , '03' , 99) insert into SC values('02' , '01' , 70) insert into SC values('02' , '02' , 60) insert into SC values('02' , '03' , 80) insert into SC values('03' , '01' , 80) insert into SC values('03' , '02' , 80) insert into SC values('03' , '03' , 80) insert into SC values('04' , '01' , 50) insert into SC values('04' , '02' , 30) insert into SC values('04' , '03' , 20) insert into SC values('05' , '01' , 76) insert into SC values('05' , '02' , 87)

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/317760388.html,O=https://www.360docs.net/doc/317760388.html,O 例11 删除视图GRADE_TABLE DROP VIEW GRADE_TABLE RESTRICT 索引操作 例12 在学生表中按学号建立索引。 CREATE UNIQUE INDEX ST ON STUDENTS (SNO,ASC) 例13 删除按学号所建立的索引。 DROP INDEX ST 数据库模式操作

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.da t' --- 开始 备份 BACKUP DATABASE pubs TO testBack 4,说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not n ull],..) 根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2… from tab_old definition onl y 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 on tabname 注:索引是不可更改的,想更改必须删除重新建. 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 范围

oracle 经典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 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

相关文档
最新文档