SQL常考笔试题[转]

数据库也是计算机类笔试面试中不可避免会遇到的考点,没学过的同学能掌握一些数据库的基础知识,对数据库的相关知识也做个总结吧,数据库,from A where id not in (select top 30 id from A),top 30 id from A )as A),) 课程表

金沙国际唯一官网网址 6

问题:

壹 、查询“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#,avg(score)
from
sc
group
by S# having avg(score) >60;

③ 、查询全部同学的学号、姓名、选课数、总成绩;
select
Student.S#,Student.Sname,count(SC.C#),sum(score)
from
Student left Outer join SC on Student.S#=SC.S#
group
by Student.S#,Sname

肆 、查询姓“李”的教师职员和工人的个数;
select
count(distinct(Tname))
from
Teacher
where
Tname like ‘李%’;

伍 、查询没学过“叶平”老师课的同室的学号、姓名;
select
Student.S#,Student.Sname
from
Student
where
S# not in (select distinct( SC.S#) from SC,Course,Teacher where
SC.C#=Course.C# and Teacher.T#=Course.T# and
Teacher.Tname=’叶平’);

⑥ 、查询学过“001”并且也学过数码“002”课程的校友的学号、姓名;
select
Student.S#,Student.Sname
from
Student,SC

where
Student.S#=SC.S# and SC.C#=’001′and exists( Select * from SC as
SC_2 where SC_2.S#=SC.S# and SC_2.C#=’002′);

 

⑦ 、查询学过“叶平”老师所教的全体课的同室的学号、姓名;
select
S#,Sname
from
Student
where
S# in
(select
S#
from
SC ,Course ,Teacher
where
SC.C#=Course.C# and Teacher.T#=Course.T# and Teacher.Tname=’叶平’
group by S# having count(SC.C#)=(select count(C#) from Course,Teacher
where Teacher.T#=Course.T# and Tname=’叶平’));

⑧ 、查询全部课程成绩小于伍十八分的校友的学号、姓名;
select
S#,Sname
from
Student
where
S# not in (select Student.S# from Student,SC where S.S#=SC.S# and
score>60);

九 、查询没有学全全数课的同室的学号、姓名;
select
Student.S#,Student.Sname
from
Student,SC
where
Student.S#=SC.S#
group
by Student.S#,Student.Sname having count(C#) <(select count(C#)
from Course);

⑩ 、查询至少有一门课与学号为“1001”的校友所学相同的校友的学号和人名;
select
S#,Sname
from
Student,SC
where
Student.S#=SC.S# and C# in (select C# from SC where
S#=’1001’);

1一 、删除学习“叶平”老师课的SC表记录;
Delect
SC
from
course ,Teacher
where
Course.C#=SC.C# and Course.T#= Teacher.T# and Tname=’叶平’;

1② 、查询各科战表最高和最低的分:以如下情势显得:课程ID,最高分,最低分
SELECT
L.C# 课程ID,L.score 最高分,R.score 最低分
FROM
SC L ,SC R
WHERE
L.C# = R.C#
and
L.score
= (SELECT MAX(IL.score)
FROM
SC IL,Student IM
WHERE
IL.C# = L.C# and IM.S#=IL.S#
GROUP
BY IL.C#)
and
R.Score
= (SELECT MIN(IR.score)
FROM
SC IR
WHERE
IR.C# = R.C#
GROUP
BY IR.C# );

1③ 、查询学平生均成绩及其排名
SELECT
1+(SELECT COUNT( distinct 平均成绩)
FROM
(SELECT S#,AVG(score) 平均成绩
FROM
SC
GROUP
BY S# ) T1
WHERE
平均战表 > T2.平分成绩) 排行, S# 学生学号,平均成绩
FROM
(SELECT S#,AVG(score) 平均战表 FROM SC GROUP BY S# ) T2
O奥迪Q3DER
BY 平均成绩 desc;

1肆 、查询各科成绩前三名的笔录:(不考虑成绩并列景况)
SELECT
t1.S# as 学生ID,t1.C# as 课程ID,Score as 分数
FROM
SC t1
WHERE
score IN (SELECT TOP 3 score
FROM
SC
WHERE
t1.C#= C#
ORDER
BY score DESC)
ORDER
BY t1.C#;

1五 、查询每门功成绩最棒的前两名
SELECT
t1.S# as 学生ID,t1.C# as 课程ID,Score as 分数
FROM
SC t1
WHERE
score IN (SELECT TOP 2 score
FROM
SC
WHERE
t1.C#= C#
ORDER
BY score DESC )

ORDER
BY t1.C#;

     
 1. SQL:结构化查询语言的简称, 是关周详据库的专业语言。SQL 是一种通用的、 功效极强的关周全据库语言, 是对关周到据存取的标准接口, 也是例外数据库系统之间互操作的底蕴。集数据查询、数据操作、数据定义、和数量控制效果于一体。

 

二 、查询平均战绩超乎陆十三分的同桌的学号和平均成绩;

第一节

      2. 涉及的 5 种基本操作是选用、投影、并、差、笛Carl积。

 

select Student.S#,Student.Sname
from Student,SC
where Student.S#=SC.S# group by Student.S#,Student.Sname having
count(C#) <(select count(C#) from Course);

5)IN

在 SQL 中,在三个情景下会用到 IN  这几个命令;这一页将介绍当中之一:与
WHERE
有关的那几个动静。在那几个用法下,大家先行已明白至少三个大家须要的值,而我们将这个知道的值都放入
IN  这么些子句。语法为:
SELECT
“栏位名”  FROM “表格名”  WHERE “栏位名” IN (‘值一’, ‘值二’, …)
 

     
 5. 独立自主存取控制(DAC)的 SQL 语句包涵 GRANT 和 REVOKE 五个。 用户权限由数据对象和操作类型两有个别组成。

 

捌 、查询课程编号“002”的大成比课程编号“001”课程低的装有同学的学号、姓名;

3)WHERE

其一重中之重词能够扶持大家选用性地抓资料,而不是全取出来。语法为
SELECT
“栏位名” FROM “表格名” WHERE “条件” 

     
  数据库三级形式通过二级映象在 DBMS 内部贯彻那多少个抽象层次的调换和更换。外情势面向应用程序, 通过外格局/方式映象与逻辑方式建立联系, 达成数据的逻辑独立性。 情势/内情势映象建立方式与内形式之间的一对一映射, 完成多少的物理独立性。

  use pangu

复制代码 代码如下:

13)ALIAS

作者们能够透过ALIAS为列名称和表名称钦点别称,语法为:
SELECT
“表格小名”.”栏位1″ “栏位别称”  FROM “表格名” “表格小名”  

  • *

     
 1. 数据库系统由数据库、数据库管理体系、应用类别数据库管理员构成。

 

select S#,Sname
from Student
where S# not in (select Student.S# from Student,SC where S.S#=SC.S#
and score>60);

7)LIKE

LIKE 是另七个在 WHERE  子句中会用到的下令。基本上, LIKE
 能让我们依照1个方式(pattern) 来找出我们要的材质。语法为:
SELECT
“栏位名”  FROM “表格名”  WHERE “栏位名” LIKE {模式} 

     
壹 、相关概念

 

4⑧ 、查询两门以上不比格课程的同学的学号及其平均战绩

壹 、相关概念

     
 1. 主键: 可以唯一地标识三个元组的属性或属性组称为关系的键或候选键。 若一个关联有多个候选键则可选其一作为主键(Primary key)。

     
 2. 外键:要是3个提到的1个或一组属性引用(参照)了另一个涉及的主键,则称那些或那组属性为外码或外键(Foreign key)。

     
 3. 关周详据库: 依据关系模型建立的数据库称为关周到据库。 它是在有个别应用领域的全体涉嫌的集合

     
 4. 提到格局: 简单地说,关系形式正是对关联的型的概念, 包蕴涉嫌的习性构成、各属性的数据类型、 属性间的注重、 元组语义及完整性约束等。 波及是涉及方式在某一时半刻刻的景色或内容, 关系模型是型, 关系是值, 关系模型是静态的、 稳定的, 而关系是动态的、随时间不断变动的,因为涉嫌操作在频频地换代着数据库中的数据

     
 5.
实体完整性:用于标识实体的唯一性。它须要中央关系必供给有3个可见标识元组唯一性的主键,主键不可能为空,也不可取重复值。

     
 6. 参照完整性: 用于维护实体之间的引用关系。 它供给3个波及的外键要么为空, 要么取与被参照关系对应的主键值,即外键值必须是主键中已存在的值

     
 7. 用户定义的完整性:便是指向某一切实可行行使的数据必须满意的语义约束。包罗非空、 唯一和布尔条件约束两种意况。

     
  8. SQL 查询语句的貌似格式为

insert into @AAA values(‘B’,120)

select Sname from Student where S# not in (select S# from
Course,Teacher,SC where Course.T#=Teacher.T# and SC.C#=course.C# and
Tname=’叶平’);

9)函数

函数允许大家能够对这么些数字的型态存在的行如故列做运算,包罗 AVG
(平均)、COUNT (计数)、MAX (最大值)、MIN (最小值)、SUM
(总合)。语法为:
SELECT
“函数名”(“栏位名”) FROM “表格名”  

     

P0003  2002-10-12 7

复制代码 代码如下:

12)HAVING

该重庆大学词能够扶助大家对函数发生的值来设定条件。语法为:
SELECT
“栏位1”, SUM(“栏位2”)  FROM “表格名”  GROUP BY “栏位1”  HAVING
(函数条件)  

      1. 关周密据库语言分为关系代数、关系演算和结构化查询语言三大类。

111111    2003-01-28 18:30:00

44、计算每门课程的学生选修人数(超越10位的科目才总括)。供给输出课程号和选修人数,查询结果按人头降序排列,查询结果按人口降序排列,若人数相同,按学科号升序排列

 二 、重点知识点

  1. 数据库系统由数据库、数据库管理体系、应用种类和数据库管理员构成。

     
 2. 数据模型的结合要素是:数据结构、数据操作、完整性约束原则。

     
 3. 实体型之间的维系分为一对壹 、一对多和多对多三种类型。

     
 4. 宽广的数据模型包含:关联、层次、网状、面向对象、对象关联映射等几种。

     
 5. 关系模型的完整性约束包罗:实体完整性、参照完整性和用户定义完整性。

      6. 演讲数据库三级方式、二级映象的意义及功用。

     
  数据库三级形式反映的是数码的四个抽象层次: 情势是对数据库中全方位数据的逻辑结构和特色的叙述内方式又称之为存款和储蓄方式,是对数据库物理结构和存款和储蓄形式的叙述。外情势又称为子情势或用户情势,是对一定数据库用户相关的一对数据的逻辑结构和天性的描述

     
  数据库三级情势通过二级映象在 DBMS 内部贯彻那多个抽象层次的沟通和转换。外形式面向应用程序, 通过外方式/形式映象与逻辑格局建立联系, 达成数量的逻辑独立性。 方式/内方式映象建立情势与内形式里面包车型大巴一对一映射, 达成数量的大体独立性

     
 7. 用户定义的完整性:就是指向某一有血有肉使用的多少必须满意的语义约束。包括非空、 唯一和布尔条件约束三种景况。

表3 Grade  成绩音讯表
ID    int      自动编号
UID    int      学生编号
SID    int      课程编号
Num    int      考试战绩

1五 、删除学习“叶平”老师课的SC表记录;

11)GROUP BY

GROUP BY
语句用于结合合计函数,依据二个或多少个列对结果集举行分组。语法为:
SELECT
“栏位1”, SUM(“栏位2”)  FROM “表格名”  GROUP BY “栏位1” 

6)BETWEEN

IN
这一个命令可以让大家依据一或数个不延续(discrete)的值的限量之内抓出资料库中的值,而 BETWEEN
则是让大家能够运用3个限制 (range)  内抓出资料库中的值,语法为:
SELECT “栏位名”  FROM “表格名”
WHERE “栏位名” BETWEEN ‘值一’ AND ‘值二’ 

 

2叁 、总结列印各科成绩,各分数段人数:课程ID,课程名称,[100-85],[85-70],[70-60],[
<60]

贰 、首要知识点

     
1. 关周详据库语言分为论及代数、关系演算和结构化查询语言三大类。

     
2. 涉嫌的5种基本操作是选拔、投影、并、差、笛Carl积

     
3.关系格局是对涉嫌的叙说,五元组方式化表示为:卡宴(U,D,DOM,F),当中

     
      R —— 关系名

     
      U —— 组成该关系的属性名集合

     
      D —— 属性组 U 中质量所来自的域

     
      DOM —— 属性向域的镜头集合

     
      F —— 属性间的数目重视关系集合

     
4.笛Carl乘积,选择和阴影运算如下

金沙国际唯一官网网址 1

     
 5. 事关模型的完整性约束包罗:实体完整性、参照完整性和用户定义完整性

7、在SQL语言中,假设要树立叁个薪俸表包含职工号,姓名,职称。薪给等字段。若要保险报酬字段的取值不低于800元,最合适的落到实处格局是:
A。在创制薪水表时为”薪水“字段建立缺省
B。在创设薪给表时为”薪给“字段建立检查约束
C。在薪资表建立1个触发器
D。为薪金表数据输入编写贰个先后开始展览控制

40、查询选修“叶平”老师所授课程的学童中,成绩最高的学习者姓名及其战表

② 、重要知识点

     
 1. SQL 数据定义语句的操作对象有:形式、表、视图和目录。

     
 2. SQL 数据定义语句的指令动词是:CREATE、DROP 和 ALTER。

     
 3. LacrosseDBMS 中索引一般选拔 B+树或 HASH 来实现

     
 4. 索引能够分为唯一索引、非唯一索引和聚簇索引二种档次。

金沙国际唯一官网网址 2

  6.SQL 创造表语句的形似格式为

     
        CREATE TABLE <表名>

     
      
 ( <列名> <数据类型>[ <列级完整性约束> ]

     
      
 [,<列名> <数据类型>[ <列级完整性约束>] ] …

     
        [,<表级完整性约束> ] ) ;

里面<数据类型>可以是数据库系统协理的各样数据类型,包涵长度和精度。 

   
列级完整性约束为针对单个列(本列)的完整性约束, 包含 PLANDIMAHighlanderY KEY、 REFERENCES表名(列名)、UNIQUE、NOT NULL 等。 

   
表级完整性约束能够是依照表中多列的封锁,包罗 PLANDIMAEnclaveY KEY ( 列名列表) 、FOREIGN KEY REFERENCES 表名(列名) 等。

     
 7. SQL 成立索引语句的貌似格式为

     
        CREATE [UNIQUE] [CLUSTER] INDEX <索引名>

     
        ON <表名> (<列名列表> ) ;

里头UNIQUE:表示成立唯一索引,缺省为非唯一索引;

     
CLUSTE昂科拉:表示创设聚簇索引,缺省为非聚簇索引;

     
<列名列表>:3个或逗号分隔的几个列名,各个列名后可跟 ASC 或 DESC,表示升/降序,缺省为升序。多列时则按为多元排序。 
  

   8. SQL 查询语句的相似格式为

     
      
 SELECT [ALL|DISTINCT] <算术说明式列表> FROM <表名或视图名列表>

     
        [ WHERE <条件表达式 1> ]

     
      
 [ GROUP BY <属性列表 1> [ HAVING <条件表明式 2 > ] ]

     
        [ O牧马人DE大切诺基 BY <属性列表 2> [ ASC|DESC ] ] ;

其中

   
  ALL/DISTINCT: 缺省为 ALL, 即列出全部查询结果记录, 包括重复记录。 DISTINCT则对重复记录只列出一条

   
   算术表达式列表:一个或几个逗号分隔的算术表达式,表明式由常量(包涵数字和字符串)、列名、函数和算术运算符构成。各个表明式后还可跟小名。也可用 *代表查询表中的全数列。

   
  <表名或视图名列表>: 三个或七个逗号分隔的表或视图名。 表或视图名后可跟外号。

   
  条件表明式 1:包涵关系或逻辑运算符的表明式,代表询问条件。

   
  条件表明式 2:包涵关系或逻辑运算符的表明式,代表分组条件。

   
  <属性列表 1>:三个或逗号分隔的三个列名。

   
  <属性列表 2>: 一个或逗号分隔的多个列名, 每一个列名后可跟 ASC 或 DESC, 表示升/降序,缺省为升序。

            U —— 组成该关系的属性名集合

 

复制代码 代码如下:

第四节

     
3.涉及情势是对关乎的描述,五元组形式化表示为:奥迪Q5(U,D,DOM,F),在那之中

 

3壹 、1985年落地的学生名单(注:Student表中Sage列的种类是datetime)

数据库也是计量机类笔试面试中不可幸免会赶上的考试场点,特别是银行和部分守旧软件类公司。那里遵照整理的资料,对数据库的有关知识也做个总计吧。希望学过数据库但长日子不用的同窗根据这个知识能够纪念和重拾,没学过的校友能左右一些数据库的基础知识。

9)函数

函数允许大家能够对这个数字的型态存在的行照旧列做运算,包涵AVG (平均)、COUNT (计数)、MAX (最大值)、MIN (最小值)、SUM
(总合)。语法为:
SELECT “函数名”(“栏位名”) FROM
“表格名”  

GROUP BY Item, Color WITH ROLLUP

Delect SC
from course ,Teacher
where Course.C#=SC.C# and Course.T#= Teacher.T# and Tname=’叶平’;

4)AND OR

上例中的 WHERE
指令能够被用来由表格中有标准化地选拔资料。那么些标准或然是大约的
(像上一页的例证),也说不定是错综复杂的。复杂条件是由二或多少个简单标准经过 AND
或是 OHaval 的接连而成。语法为:
SELECT
“栏位名”  FROM “表格名”  WHERE “简单标准”  {[AND|OR]
“不难标准”}+

       算术表达式列表:多少个或八个逗号分隔的算术表明式,表明式由常量(包蕴数字和字符串)、列名、函数和算术运算符构成。各个表明式后还可跟别称。也可用 *意味着查询表中的全数列。

SELECT CASE WHEN (GROUPING(Item) = 1) THEN ‘ALL’

复制代码 代码如下:

② 、细说数据库三范式

  2.1 第②范式(1NF)无重复的列

       第三范式(1NF)中数据库表的每一列都以不可分割的大旨数据项

     
 同一列中不可能有四个值

     
 即实体中的某些属性不能够有八个值或许无法有再次的性质

     
 简单的讲,第3范式就是无重复的列。

     
 在其它一个关全面据库中,第2范式(1NF)是对涉嫌形式的着力必要,不满意第三范式(1NF)的数据库就不是关周全据库

  

  2.2 第叁范式(2NF)属性完全依靠于主键[免去部分子函数注重]     

  满足第叁范式(2NF)必须先知足第③范式(1NF)。   
 

  第1范式(2NF)供给数据库表中的各种实例或行必须能够被惟一地有别于。     

  为完毕区分常常须求为表加上多个列,以存款和储蓄种种实例的独一无二标识。 

  第三范式(2NF)供给实体的属性完全依赖于主关键字。所谓完全注重是指不能存在仅依靠主关键字一部分的性质,借使存在,那么那性子子和主关键字的这一有的应该分离出来形成一个新的实业,新实体与原实体之间是一对多的涉及。为促成区分日常要求为表加上七个列,以存款和储蓄各类实例的绝代标识。简单的说,第③范式正是性质完全依靠于主键。

  2.3 第二范式(3NF)属性不借助于于其余非主属性[扫除传递信赖]

     
 满足第2范式(3NF)必须先满意第壹范式(2NF)。

     
 一言以蔽之,第二范式(3NF)供给叁个数据库表中不包罗已在别的表中已带有的非主关键字消息。

     
 例如,存在八个机关音讯表,个中种种机构有机构编号(dept_id)、部门名称、部门简介等音信。那么在的职员和工人音信表中列出机关编号后就无法再将机关名称、部门简介等与机构有关的音信再进入职员和工人消息表中。假设不存在机构音信表,则基于第一范式(3NF)也应该创设它,不然就会有大批量的多寡冗余。简单来讲,第贰范式正是性质不正视于其余非主属性。

  

  2.4
具体实例分析

  上面罗列一个学院和学校的学生系统的实例,以示几个范式的使用。

  在设计数据库表结构此前,我们先分明一下要统一筹划的始末囊括那一个。学号、学生姓名、年龄、性别、课程、课程学分、系别、学科战表,系办地址、系办电话等新闻。为了不难大家暂时只考虑这么些字段音信。大家对此这么些音讯,说关注的题材有如下多少个方面。

     
 1)学生有那么些基本信息 
     
 2)学生选了这些课,成绩是哪些 
     
 3)每种课的学分是稍稍 
     
 4)学生属于分外系,系的中坚音讯是何许。

     
 首先第1范式(1NF):数据库表中的字段都以单一属性的,不可再分。那一个单一属性由主旨项目构成,包涵整型、实数、字符型、逻辑型、日期型等。在如今的其余关全面据库管理种类(DBMS)中,不容许你把多少库表的一列再分为二列或多列,因而做出的都是顺应第三范式的数据库。 

     
 我们再考虑第③范式,把持有那几个新闻放到3个表中(学号,学生姓名、年龄、性别、课程、课程学分、系别、学科战绩,系办地址、系办电话)上面存在如下的借助关系。 
     
 1)(学号)→ (姓名, 年龄,性别,系别,系办地址、系办电话) 
     
 2) (课程名称) → (学分) 
     
 3)(学号,课程)→ (学科成绩)

  依照依赖关系我们得以把选课关系表SelectCourse改为如下多少个表: 

     
 学生:Student(学号,姓名, 年龄,性别,系别,系办地址、系办电话); 
     
 课程:Course(课程名称, 学分); 
     
 选课关系:SelectCourse(学号, 课程名称, 战绩)。

     
 事实上,对照第①范式的渴求,这正是知足第2范式的数目库表,若不满足第三范式,会发出如下难点:
  (1)数据冗余: 同一门科目由n个学生选修,”学分”就再也n-3回;同一个上学的小孩子选修了m门课程,姓名和年龄就再次了m-三次。

  (2)更新相当:1)若调整了某门课程的学分,数据表中全数行的”学分”值都要更新,不然会现出相同门科目学分分化的场所。 
     
         
 2)假若要设立一门新的学科,临时还尚未人选修。那样,由于还并未”学号”关键字,课程名称和学分也无从记录入数据库。

  (3)删除分外 : 假使一批学员早已达成课程的选修,那么些选修记录就活该从数据库表中删除。然而,与此同时,课程名称和学分消息也被剔除了。很肯定,这也会促成插入很是。

  大家再考虑如何将其改成满足第3范式的数码库表,接着看上边的学生表Student(学号,姓名, 年龄,性别,系别,系办地址、系办电话),关键字为单纯关键字”学号”,因为存在如下决定涉及:

     
(学号)→ (姓名, 年龄,性别,系别,系办地址、系办电话) 
  不过还设有下边包车型大巴主宰涉及 
     
 (学号) → (所在高校)→(学院地方, 学院电话) 
     
 
即存在非关键字段”大学地方”、”大学电话”对重点字段”学号”的传递函数信赖。 
     
 它也会存在数据冗余、更新格外、插入卓殊和删除非凡的气象(这里就不具体分析了,参照第3范式中的分析)。依据第③范式把学生关系表分为如下七个表就能够满意第二范式了:

     
 学生:(学号, 姓名, 年龄, 性别,系别); 
     
 系别:(系别, 系办地址、系办电话)。

SQL语句计算

       4.笛Carl乘积,选用和影子运算如下

P0001  2002-1-10 11

复制代码 代码如下:

第二节

   
表级完整性约束
能够是基于表中多列的羁绊,包括 P大切诺基IMAWranglerY KEY ( 列名列表) 、FOREIGN KEY REFERENCES 表名(列名) 等。

group by 商品名称)TA,

4⑨ 、检索“004”课程分数小于60,按分数降序排列的同学学号

SQL语句中常用关键词及其表达如下:

4)AND OR

上例中的
WHERE 指令可以被用来由表格中有规则地挑选资料。那一个条件大概是简不难单的
(像上一页的事例),也可能是繁体的。复杂条件是由二或八个大致标准经过 AND
或是 O哈弗 的连日而成。语法为:
SELECT “栏位名”  FROM “表格名”
 WHERE “简单标准”  {[AND|OR] “简单标准”}+

17 用存款和储蓄进程调用外部程序.
不过要做成com控件
用sp_OACreate存款和储蓄进程)
DECLARE @object int
DECLARE @hr int
DECLARE @src varchar(255), @desc varchar(255)
EXEC @hr = sp_OACreate ‘SQLDMO.SQLServer’, @object OUT
IF @hr <> 0
BEGIN
EXEC sp_OAGetErrorInfo @object, @src OUT, @desc OUT
SELECT hr=convert(varbinary(4),@hr), Source=@src, Description=@desc
RETURN
END

复制代码 代码如下:

6)BETWEEN

IN 那几个命令能够让大家依据一或数个不延续(discrete)的值的界定之内抓出资料库中的值,而 BETWEEN
则是让我们能够利用二个限量 (range)
 内抓出资料库中的值,语法为:
SELECT
“栏位名”  FROM “表格名” WHERE “栏位名” BETWEEN ‘值一’ AND
‘值二’ 

其中UNIQUE:表示创立唯一索引,缺省为非唯一索引;

(2)、删除无用数据

复制代码 代码如下:

第三节

   
  <属性列表 1>:八个或逗号分隔的八个列名。

 

2⑧ 、查询汉子、女人人数

 ① 、相关概念和知识点

     
 1.数量重视:反映一个关系里面属性与品质之间的束缚关系,是具体世界属性间互相联系的虚幻,属于数据内在的属性和语义的反映。

     
 2. 规范化理论:是用来统一筹划精美的关系方式的基本理论。它经过分解关系格局来消除在这之中不适用的多寡重视,以缓解插入十分、删除相当、更新非凡和数码冗余难题。

     
 3. 函数正视:不难地说,对于涉嫌格局的三个属天性集X和Y,若X的任一取值能唯一鲜明Y的值,则称Y函数正视于X,记作X→Y。

     
 4. 非通常函数依赖:对于涉及情势的八个属天性集X和Y,倘诺X→Y,但Y!⊆X,则称X→Y为非通常函数重视;若是X→Y,但Y⊆X,则称X→Y为非平常函数依赖。

     
 5. 全然函数重视:对于涉嫌方式的七个属性格集X和Y,如若X→Y,并且对于X的别样八个真子集X’,都尚未X’→Y,则称Y对X完全函数依赖。

     
 6. 范式:指符合某一种级别的涉及形式的会合。在设计关周密据库时,依据满意信赖关系需求的不一样定义为不相同的范式。

     
 7. 规范化:指将二个低顶级范式的涉嫌形式,通过情势分解转换为多少个高超级范式的涉及情势的成团的经过。

     
 8. 1NF:若关系情势的有所属性都以不可分的大旨数据项,则该关系情势属于1NF。

     
 9. 2NF:1NF关联方式一旦还要满意每一种非主属性完全函数正视于码,则该关系格局属于2NF。

     
 10. 3NF:若关系形式的每八个非主属性既不有的凭借于码也不传递注重于码,则该关系方式属于3NF。

     
 11. BCNF:若3个涉嫌方式的每3个决定因素都包括码,则该关系方式属于BCNF。

     
 12. 数据库设计:是指对于一个加以的应用环境,构造优化的数据库逻辑情势和情理构造,并为此建立数据库及其应用系统,使之能够行得通地囤积和管理数据,满意各个用户的应用必要,包含音信保管供给和数目操作须求。

     
 13.
数据库设计的伍个基本步骤:供给分析,概念结构设计,逻辑结构划设想计,物理结构划设想计,数据库实施,数据库运维和维护。

     
 14. 概念结构划设想计:指将必要分析获得的用户供给抽象为新闻结构即概念模型的历程。也正是透过对用户供给开始展览汇总、总结与望梅止渴,形成1个独自于实际DBMS的概念模型。

     
 15. 逻辑结构划设想计:将定义结构模型(基本E-帕杰罗图)转换为某些DBMS产品所支撑的数据模型相适合的逻辑结构,并对其开始展览优化。

     
 16. 物理结构划设想计:指为1个加以的逻辑数据模型选用三个最契合应用环境的大体结构的经过。包蕴陈设数据库的蕴藏结构与存取方法。

     
 17. 华而不实:指对实际的人、物、事和概念进行人工处理,抽取所关切的一块儿特征,忽略非本质的底细,并把那些特征用各样概念精确地加以描述,那些概念组成了某种模型。     
 18. 数据库设计必须依据结构划设想计和行为设计相结合的尺码。     
 19. 数目字典首要回顾数据项、数据结构、数据流、数据存储和处理进度三个部分。

     
 20. 两种常用抽象方法是分类、聚集和归纳。

     
 21. 片段 E-帕杰罗图之间的争论首要表现在质量抵触、命名争论和结构争辩五个方面。     
 22. 数据库常用的存取方法包蕴索引方法、聚簇方法和 HASH方法三种。

     
 23. 分明数据存放位置和储存结构须求考虑的要素至关主要有: 存取时间、
存款和储蓄空间利用率和护卫代价等。

            
 ( <列名> <数据类型>[ <列级完整性约束> ]

⑥ 、你是多少个担保集团的数据库开发职员,集团的保险单音讯存款和储蓄在SQL Server
三千数据库中,你使用以下脚本建立了多少个名为Policy的表:
CREATE TABLE Policy
(
PolicyNumber int NOT NULL DEFAULT (0),
InsuredLastName char (30) NOT NULL,
InsuredFirstName char (20) NOT NULL,
InsuredBirthDate datetime NOT NULL,
PolicyDate datetime NOT NULL,
FaceAmount money NOT NULL,
CONSTRAINT PK_Policy PRIMARY KEY (PolicyNumber)
)
历次集团销售出一份保险单,Policy表中就大增一条记下,并给予其三个新的保险单号,你将如何做?

2七 、查询出只选修了一门科指标整个上学的小孩子的学号和人名

① 、相关概念和学识

     
 1.触发器是用户定义在基本表上的一类由事件驱动的格外规进度。由服务器自动激活, 能执行越发复杂的检查和操作,具有更精致和更强有力的多寡控制能力。使用 CREATE TMuranoIGGE陆风X8 命令建立触发器。

     
 2.处理器种类存在技能安全、管理安全和方针法律三类安全性难点。

     
 3. TCSEC/TDI 标准由安全策略、义务、保障和文书档案八个方面内容结合。

     
 4. 常用存取控制方法包括独立自主存取控制(DAC)和劫持存取控制(MAC)两种。

     
 5. 独立自主存取控制(DAC)的 SQL 语句包蕴 GRANT 和 REVOKE 四个。 用户权限由数据对象和操作类型两有个别构成。

金沙国际唯一官网网址 3

     
 6. 常见SQL 自主权力控制命令和例子。

     
   1) 把对 Student 和 Course 表的全体权力授予全体用户。

     
        GRANT ALL PRIVILIGES ON TABLE Student,Course TO PUBLIC

     
   2) 把对 Student 表的查询权和姓名修改权授予用户 U4。

     
        GRANT SELECT,UPDATE(Sname) ON TABLE Student TO U4 ;

     
   3) 把对 SC 表的插入权限授予 U5 用户,并允许他传播该权限。

     
        GRANT INSERT ON TABLE SC TO U5 WITH GRANT OPTION ;

     
   4) 把用户 U5 对 SC 表的 INSECRUISERT
权限收回,同时撤除被他传播出去的授权。

     
        REVOKE INSERT ON TABLE SC FROM U5 CASCADE ;

     
   5) 创立2个剧中人物 凯雷德1,并使其对 Student
表具有数据查询和更新权限。

     
        CREATE ROLE R1;

     
        GRANT SELECT,UPDATE ON TABLE Student TO R1;

     
   6) 对修改 Student 表结构的操作举行审计。

     
        AUDIT ALTER ON Student ;

            
 [,<列名> <数据类型>[ <列级完整性约束>] ] …

16 若是自个儿有两个表
表1(电话号码,是或不是存在)
表2(电话号码,是或不是拨打)
想寻找表第11中学的电话号码是或不是在表第22中学设有,假设存在就创新表第11中学的是还是不是存在字段为1。
    UPDATE 表1 SET 是还是不是留存=1
WHERE EXISTS(SELECT * FROM 表2 WHERE 表2.电话号码 = 表1.电话号码)

1② 、查询至少学过学号为“001”同学全体一门课的其余同学学号和姓名;

 壹 、相关概念    

  1.
Data:数据,是数据库中储存的骨干对象,是讲述事物的标志记录。

     
 2.
Database:数据库,是经久不衰储存在总结机内、有集体的、可共享的大批量多少的集聚

     
 3.
DBMS:数据库管理种类,是放在用户与操作系统之间的一层数码管理软件,用于科学地组织、存款和储蓄和保管数据、高效地获得和掩护数据。

     
 4.
DBS:数据库系统,指在计算机体系中引入数据库后的系统,一般由数据库、数据库管理体系、应用体系、数据库管理员(DBA)构成。

     
 5.
数据模型:是用来抽象、表示和拍卖具体世界中的数据和音讯的工具,是对具体世界的依样葫芦,是数据库系统的主导和基础;其构成要素有数据结构、数据操作和完整性约束

     
 6.
概念模型:也称消息模型,是按用户的见解来对数码和音讯建立模型,首要用以数据库设计。

     
 7. 逻辑模型:是按电脑系列的观点对数码建立模型,用于DBMS实现。

     
 8.
物理模型:是对数据最底部的空洞,描述数据在系统里面包车型大巴象征方法和存取方法,在磁盘或磁带上的仓库储存方式和存取方法,是面向总括机种类的。

     
 9.
实体和性质:客观存在并可互相区分的东西称为实体。实体所享有的某一风味称为属性。

     
 10.E-R图:即实体-关系图,用于描述现实世界的东西及其互相关系,是数据库概念模型设计的重点工具。

     
 11.提到形式:从用户意见看,关系形式是由一组关系结合,每一种关系的数据结构是一张规范化的二维表。

     
 12.型/值:型是对某一类数据的结构和品质的表明;值是型的1个现实赋值,是型的实例。

     
 13.数据库形式:是对数据库中一切数据的逻辑结构(数据项的名字、类型、取值范围等)和特色(数据里面包车型客车联络以及数额有关的安全性、完整性供给)的叙说。

     
 14.数据库的三级系统结构:外格局、情势和内形式

     
 15.数据库内格局:又叫做积存情势,是对数据库物理构造和存款和储蓄形式的叙述,是多少在数据库内部的表示方法。三个数据库只有三个内形式

     
 16.数据库外形式:又称为子情势或用户方式,它是数据库用户能够看见和利用的有的数据的逻辑结构和特色的描述,是数据库用户的数码视图。经常是形式的子集。1个数据库可有多少个外方式

     
 17.数据库的二级影象:外格局/格局印象、方式/内形式印象。

3)WHERE

其一第3词可以扶助大家选用性地抓资料,而不是全取出来。语法为
SELECT “栏位名” FROM “表格名”
WHERE “条件” 

 

复制代码 代码如下:

壹 、相关概念

     
 1. SQL:结构化查询语言的简称, 是关周全据库的正统语言。SQL 是一种通用的、 功效极强的关周全据库语言, 是对关周到据存取的标准接口, 也是见仁见智数据库系统里头互操作的根基。集数据查询、数据操作、数据定义、和多少控制成效于一体。

     
 2. 数额定义:数据定义成效包涵格局定义、表定义、视图和目录的概念。

     
 3. 嵌套查询:指将四个查询块嵌套在另3个查询块的 WHERE 子句或 HAVING 短语的尺码中的查询。

     
      
 [ WHERE <条件表明式 1> ]

 

30、查询同名同性学生名单,并总括同名家数

8)ORDER BY

小编们经常须要可以将抓出的材料做2个有系列的展现。那或许是由小往大
(ascending)  或是由大往小(descending)。在那种场所下,大家就能够动用
O劲客DE卡宴 BY 那一个命令来达到大家的指标。语法为:
SELECT
“栏位名”  FROM “表格名 [WHERE “条件”] ORDER BY “栏位名” [ASC,
DESC] 

其中

 

select SC.S#,Student.Sname from SC,Student where SC.S#=Student.S# and
Score>80 and C#=’003′;

2)DISTINCT

在上述 SELECT 关键词后增加3个 DISTINCT
就能够去除选用出来的栏位中的重复,从而成就求得那个表格/栏位内有哪些分裂的值的法力。语法为
SELECT
DISTINCT “栏位名” FROM “表格名”。

            
 CREATE TABLE <表名>

      CASE WHEN (GROUPING(Color) = 1) THEN’ALL’

SELECT max(Z.T#) AS 教授ID,MAX(Z.Tname) AS 教师姓名,C.C# AS
课程ID,MAX(C.Cname) AS 课程名称,AVG(Score) AS 平均成绩
FROM SC AS T,Course AS C ,Teacher AS Z
where T.C#=C.C# and C.T#=Z.T#
GROUP BY C.C#
ORDER BY AVG(Score) DESC

10)COUNT

那几个至关心珍视要词能够帮本人我们总结有微微笔资料被选出来,语法为:
SELECT
COUNT(“栏位名”) FROM “表格名”

8)ORDER BY

我们平日需求能够将抓出的材质做贰个有连串的体现。那说不定是由小往大
(ascending)  或是由大往小(descending)。在那种情状下,我们就足以应用
O奥迪Q5DE奥迪Q7 BY 那么些命令来达成我们的目标。语法为:
SELECT “栏位名”  FROM “表格名
[WHERE “条件”] ORDER BY “栏位名” [ASC, DESC] 

 

复制代码 代码如下:

1)SELECT

将质地从数据库中的表格内选出,四个重点字:从 (FROM) 数据库中的表格内选出
(SELECT)。语法为
SELECT
“栏位名” FROM “表格名”。

金沙国际唯一官网网址 4

C. DECLARE @retval int
DECLARE @ytd int
EXEC get_sales_for_title ‘Net Etiquette’,@retval OUTPUT
IF @retval < 0
PRINT ‘No sales found’
ELSE
PRINT ‘Year to date sales: ’ + STR (@ytd)
GO

SELECT Sname FROM Student WHERE Sname like ‘张%’;

数据库知识总括(2)范式

   
  ALL/DISTINCT: 缺省为 ALL, 即列出全部查询结果记录, 包涵重复记录。 DISTINCT则对重复记录只列出一条。

 

复制代码 代码如下:

数据库也是持筹握算机类笔试面试中不可制止会赶上的考试场点,尤其是银行和部分古板软件类公司。那里依据整理的材质,对数据库的相干知识也做个计算吧。希望学过数据库但长日子不用的同学遵照那几个文化能够记忆和重拾,没学过的同窗能控制一些数据库的基础知识。

 

复制代码 代码如下:

     
 1.触发器是用户定义在基本表上的一类由事件驱动的特种进度。由服务器自动激活, 能执行越发复杂的检讨和操作,具有更精细和更强劲的数量控制能力。使用 CREATE T福睿斯IGGESportage 命令建立触发器。

1.写出一条Sql语句:取出表A中第①1到第四0笔录(SQLServer,
以自行拉长的ID作为主键,  注意:ID恐怕不是一而再的。)

select top 10 * from A where id not in (select top 30 id from A)
解2: select top 10 * from A where id > (selectmax(id) from (select
top 30 id from A )as A)

3二 、查询每门学科的平分战绩,结果按平均战表升序排列,平均战绩一样时,按学科号降序排列

            D —— 属性组 U 中品质所来自的域

insert into @BBB values(‘A’, 20)

③ 、查询全体同学的学号、姓名、选课数、总成绩;

 
   
关于SQL语句的文化那里先作如上粗略介绍,具体写法下次将特别拿出一篇来描述。

from @BBB

⑨ 、查询全部科目战表小于56分的同室的学号、姓名;

     
      
 CREATE [UNIQUE] [CLUSTER] INDEX <索引名>

      数学 = SUM(CASEb.FSubName WHEN ‘数学’ THEN c.FScore END),

复制代码 代码如下:

一 、相关概念

      END AS Item,

复制代码 代码如下:

     
 3. 嵌套查询:指将三个询问块嵌套在另二个查询块的 WHERE 子句或 HAVING 短语的尺码中的查询。

 

复制代码 代码如下:

     
 3. TCSEC/TDI 标准由安全策略、权利、保障和文书档案多个方面内容结合。

 

3八 、查询课程编号为003且课程战绩在柒二十分以上的学习者的学号和姓名;

     
 1. 主键: 能够唯一地方统一标准识四个元组的天性或属性组称为关系的键或候选键。 若3个涉嫌有多少个候选键则可选其一作为主键(Primary key)。

 

复制代码 代码如下:

   
  <表名或视图名列表>: 3个或八个逗号分隔的表或视图名。 表或视图名后可跟外号。

(七)

复制代码 代码如下:

第二节

P0001  2002-1-10 10

复制代码 代码如下:

     
 2.处理器连串设有技能安全、管理安全和方针法律三类安全性难点。

           ELSE ISNULL(Item, ‘UNKNOWN’)

复制代码 代码如下:

     
      
 [ O奥迪Q3DE牧马人 BY <属性列表 2> [ ASC|DESC ] ] ;

题材讲述:
主旨用到上边多少个事关表:
CARD     借书卡。   CNO 卡号,NAME  姓名,CLASS 班级
BOOKS    图书。     BNO书号,BNAME 书名,AUTHO奥德赛 小编,P福睿斯ICE
单价,QUANTITY 库存册数
BOHighlanderROW   借书记录。 CNO 借书卡号,BNO 书号,LacrosseDATE 还书日期
备考:限定每人每个书只可以借一本;库存册数随借书、还书而变更。
必要完毕如下1四个处理:
  1.
写出建立BO帕杰罗ROW表的SQL语句,供给定义主码完整性约束和引用完整性约束。
  2. 找出借书超越5本的读者,输出借书卡号及所借图书册数。
  3. 查询借阅了”水浒”一书的读者,输出姓名及班级。
  4. 查询过期未还图书,输出借阅者(卡号)、书号及还书日期。
  5. 询问书名包涵”网络”关键词的书籍,输出书号、书名、作者。
  6. 询问现有图书中价格最高的书本,输出书名及我。
  7.
询问当前借了”总括情势”但平素不借”总括方法习题集”的读者,输出其借书卡号,并按卡号降序排序输出。
  8. 将”C01″班同学所借图书的还期都延长七日。
  9. 从BOOKS表中去除当前无人借阅的书本记录。
  10.假设平常按书名查询图书新闻,请建立适当的目录。
 
11.在BO奥德赛ROW表上创建一个触发器,完结如下效果:假若读者借阅的书名是”数据库技术及应用”,就将该读者的借阅记录封存在BO奥迪Q3ROW_SAVE表中(注ORROW_SAVE表结构同BO奥迪Q5ROW表)。
 
12.确立一个视图,呈现”力01″班学员的借书新闻(只供给出示姓名和书名)。
 
13.查询当前同时借有”总结方法”和”组合数学”两本书的读者,输出其借书卡号,并按卡号升序排序输出。
  14.假定在建BOOKS表时没有概念主码,写出为BOOKS表追加定义主码的话语。
  15.对CA兰德君越D表做如下修改:
    a. 将NAME最大列宽扩大到十三个字符(假定原为五个字符)。
    b. 为该表扩大1列NAME(系名),可变长,最大17个字符。

2壹 、查询差异老师所教不一样学科平均分从高到低展现

     
 2. 数据模型的结合成分是:数据结构、数据操作、完整性约束原则

渴求落到实处如下四个处理:
  1. 选拔正规SQL嵌套语句询问选修课程名称为’税收基础’的学习者学号和人名
  2. 利用专业SQL嵌套语句询问选修课程编号为’C2’的学习者姓名和所属单位
  3. 行使标准SQL嵌套语句询问不选修课程编号为’C5’的学生姓名和所属单位
  4. 应用规范SQL嵌套语句询问选修全体课程的学习者姓名和所属单位
  5. 查询选修了学科的上学的小孩子人数
  6. 查询选修课程抢先5门的学员学号和所属单位

select c#,count(S#) from sc group by C#;

     
 3. 实体型之间的沟通分为一对一、一对多多对多两种档次。

 

select C#,Cname
from Course
where C# in (select c# from sc group by c#)

金沙国际唯一官网网址 5

(3)、转移过时数据

4② 、查询区别科目战表同样的上学的小孩子的学号、课程号、学生成绩

      CLUSTER:表示创制聚簇索引,缺省为非聚簇索引;

 

Select count(Ssex) as 男子人数 from Student group by Ssex having
Ssex=’男’;
Select count(Ssex) as 女孩子人数 from Student group by Ssex having
Ssex=’女’;

10)COUNT

其一重中之重词能够帮自身我们总括有个别许笔资料被选出来,语法为:
SELECT COUNT(“栏位名”) FROM
“表格名”

(四)

2② 、查询如下课程战表第 3 名到第 6
名的学习者战表单:企管(001),马克思(002),UML
(003),数据库(004)
[学生ID],[学员姓名],企管,马克思,UML,数据库,平均战绩

            R —— 关系名

P0002    2002-10-12 0.5

Student(S#,Sname,Sage,Ssex) 学生表
Course(C#,Cname,T#) 课程表
SC(S#,C#,score) 成绩表
Teacher(T#,Tname) 教师表
 
问题:
壹 、查询“001”课程比“002”课程成绩高的富有学员的学号;

   
  规格发挥式 **2**:包括关系或逻辑运算符的表明式,代表分组条件。

 

select distinct SC.S#,Sname
from Student,SC
where Student.S#=SC.S# and C# in (select C# from SC where
S#=’001′);

       1. SQL
数据定义语句的操作对象有:方式、表、视图和目录。
       2. SQL 数据定义语句的指令动词是:CREATE、DROP 和 ALTEMurano。
       3. SportageDBMS 中索引一般选拔 B+树或 HASH 来完结。
       4. 索引能够分为唯一索引、非唯一索引和聚簇索引三连串型。

      END AS Color,

复制代码 代码如下:

     
      
 ON <表名> (<列名列表> ) ;

222222    2003-02-0903:36:25     

select S# from SC where C#=’004’and score <60 order by score
desc;

一 、相关概念和文化

  with rollup

复制代码 代码如下:

 
     7. SQL 成立索引语句的相似格式为

 

select S#,Sname from Student,SC where Student.S#=SC.S# and C# in
select C# from SC where S#=’1001′;

壹 、相关概念

 

⑩ 、查询没有学全全部课的同桌的学号、姓名;

13)ALIAS

作者们能够因而ALIAS为列名称和表名称内定小名,语法为:
SELECT “表格别称”.”栏位1″
“栏位小名”  FROM “表格名” “表格小名”  

上边为1个例证,通过它大家应当能很好地左右以上海重机厂大词的施用办法。

Student(S#,Sname,Sage,Ssex) 学生表
Course(C#,Cname,T#) 课程表
SC(S#,C#,score) 成绩表
Teacher(T#,Tname) 教师表

问题:
壹 、查询“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#;

二 、查询平均战绩超乎五18分的同班的学号和平均成绩;
select S#,avg(score)
from sc
group by S# having avg(score) >60;

叁 、查询全数同学的学号、姓名、选课数、总成绩;
select Student.S#,Student.Sname,count(SC.C#),sum(score)
from Student left Outer join SC on Student.S#=SC.S#
group by Student.S#,Sname

肆 、查询姓“李”的园丁的个数;
select count(distinct(Tname))
from Teacher
where Tname like ‘李%’;

五 、查询没学过“叶平”老师课的同校的学号、姓名;
select Student.S#,Student.Sname
from Student
where S# not in (select distinct( SC.S#) from SC,Course,Teacher where
SC.C#=Course.C# and Teacher.T#=Course.T# and
Teacher.Tname=’叶平’);

陆 、查询学过“001”并且也学过数码“002”课程的同窗的学号、姓名;
select Student.S#,Student.Sname
from Student,SC

where
Student.S#=SC.S# and SC.C#=’001′and exists( Select * from SC as
SC_2 where SC_2.S#=SC.S# and SC_2.C#=’002′);

七 、查询学过“叶平”老师所教的全部课的同校的学号、姓名;
select S#,Sname
from Student
where S# in
(select S#
from SC ,Course ,Teacher
where SC.C#=Course.C# and Teacher.T#=Course.T# and
Teacher.Tname=’叶平’ group by S# having count(SC.C#)=(select
count(C#) from Course,Teacher where Teacher.T#=Course.T# and
Tname=’叶平’));

捌 、查询全部课程战绩小于5八分的同窗的学号、姓名;
select S#,Sname
from Student
where S# not in (select Student.S# from Student,SC where S.S#=SC.S#
and score>60);

玖 、查询没有学全全数课的同桌的学号、姓名;
select Student.S#,Student.Sname
from Student,SC
where Student.S#=SC.S#
group by Student.S#,Student.Sname having count(C#) <(select
count(C#) from Course);

⑩ 、查询至少有一门课与学号为“1001”的同窗所学相同的同班的学号和人名;
select S#,Sname
from Student,SC
where Student.S#=SC.S# and C# in (select C# from SC where
S#=’1001’);

1① 、删除学习“叶平”老师课的SC表记录;
Delect SC
from course ,Teacher
where Course.C#=SC.C# and Course.T#= Teacher.T# and Tname=’叶平’;

1贰 、查询各科战表最高和最低的分:以如下方式呈现:课程ID,最高分,最低分
SELECT L.C# 课程ID,L.score 最高分,R.score 最低分
FROM SC L ,SC R
WHERE L.C# = R.C#
and
L.score = (SELECT MAX(IL.score)
FROM SC IL,Student IM
WHERE IL.C# = L.C# and IM.S#=IL.S#
GROUP BY IL.C#)
and
R.Score = (SELECT MIN(IR.score)
FROM SC IR
WHERE IR.C# = R.C#
GROUP BY IR.C# );

1三 、查询学毕生均成绩及其排行
SELECT 1+(SELECT COUNT( distinct 平均成绩)
FROM (SELECT S#,AVG(score) 平均战绩
FROM SC
GROUP BY S# ) T1
WHERE 平均战表 > T2.等分战绩) 排名, S# 学生学号,平均战绩
FROM (SELECT S#,AVG(score) 平均成绩 FROM SC GROUP BY S# ) T2
OLacrosseDE本田CR-V BY 平均成绩 desc;

1肆 、查询各科成绩前三名的笔录:(不考虑战绩并列意况)
SELECT t1.S# as 学生ID,t1.C# as 课程ID,Score as 分数
FROM SC t1
WHERE score IN (SELECT TOP 3 score
FROM SC
WHERE t1.C#= C#
ORDER BY score DESC)
ORDER BY t1.C#;

1五 、查询每门功成绩最佳的前两名
SELECT t1.S# as 学生ID,t1.C# as 课程ID,Score as 分数
FROM SC t1
WHERE score IN (SELECT TOP 2 score
FROM SC
WHERE t1.C#= C#
ORDER BY score DESC )

ORDER
BY t1.C#;

=

大专      20     33          13

SELECT t1.S# as 学生ID,t1.C# as 课程ID,Score as 分数
FROM SC t1
WHERE score IN (SELECT TOP 3 score
FROM SC
WHERE t1.C#= C#
ORDER BY score DESC
)
ORDER BY t1.C#;

11)GROUP BY

GROUP
BY 语句用于结合合计函数,依据三个或三个列对结果集进行分组。语法为:
SELECT “栏位1”, SUM(“栏位2”)  FROM
“表格名”  GROUP BY “栏位1” 

333333    2003-02-0903:37:25     

Select C#,Avg(score) from SC group by C# order by Avg(score),C# DESC
;

     
 2. 数额定义:数据定义作用包罗情势定义、表定义、视图和目录的概念。

Chair               Blue               101.00                   

update SC set score=(select avg(SC_2.score)
from SC SC_2
where SC_2.C#=SC.C# ) from Course,Teacher where Course.C#=SC.C# and
Course.T#=Teacher.T# and Teacher.Tname=’叶平’);

 
    6. 解说数据库三级情势、二级映象的含义及功能。
        数据库三级方式反映的是多少的多个抽象层次: 形式是对数据库中漫天数据的逻辑结构和特色的描述。内情势又称之为存款和储蓄情势,是对数据库物理结构和仓库储存方式的叙说。外情势又称为子方式或用户情势,是对特定数据库用户相关的有的数据的逻辑结构和特色的描述。

 

2九 、查询姓“张”的学生名单

            DOM —— 属性向域的画面集合

怎么能促成这一个表:

1⑦ 、按平均成绩从高到低显示全数学生的“数据库”、“企业管理”、“法语”三门的科目成绩,按如下格局显得:
学生ID,,数据库,企管,法语,有效课程数,有效平均分

其中<数据类型>能够是数据库系统帮忙的各样数据类型,包涵长度和精度。 

  from orders

select count(distinct(Tname))
from Teacher
where Tname like ‘李%’;

 
    二 、主要知识点

 

复制代码 代码如下:

     
 6.SQL 创立表语句的一般格式为

  1. 写出建立BOTiguanROW表的SQL语句,须要定义主码完整性约束和引用完整性约束  
    –达成代码:  
    CREATE TABLE BORROW(  
        CNO int FOREIGN KEY REFERENCES CARD(CNO),  
        BNO int FOREIGN KEY REFERENCES BOOKS(BNO),  
        RDATE datetime,  
        PRIMARY KEY(CNO,BNO))   
  2. 找出借书超越5本的读者,输出借书卡号及所借图书册数  
    –达成代码:  
    SELECT CNO,借图书册数=COUNT(*)  
    FROM BORROW  
    GROUP BY CNO  
    HAVING COUNT(*)>5 
  3. 询问借阅了”水浒”一书的读者,输出姓名及班级  
    –达成代码:  
    SELECT * FROM CARD c  
    WHERE EXISTS(  
        SELECT * FROM BORROW a,BOOKS b   
        WHERE a.BNO=b.BNO  
            AND b.BNAME=N’水浒’ 
            AND a.CNO=c.CNO)   
  4. 查询过期未还图书,输出借阅者(卡号)、书号及还书日期  
    –达成代码:  
    SELECT * FROM BORROW   
    WHERE RDATE<GETDATE()   
  5. 询问书名包括”网络”关键词的书籍,输出书号、书名、笔者  
    –完成代码:  
    SELECT BNO,BNAME,AUTHOR FROM BOOKS  
    WHERE BNAME LIKE N’%网络%’   
  6. 查询现有图书中标价最高的图书,输出书名及笔者  
    –完毕代码:  
    SELECT BNO,BNAME,AUTHOR FROM BOOKS  
    WHERE PRICE=(  
        SELECT MAX(PRICE) FROM BOOKS)   
    7.
    查询当前借了”总括办法”但平昔不借”计算格局习题集”的读者,输出其借书卡号,并按卡号降序排序输出  
    –完毕代码:  
    SELECT a.CNO  
    FROM BORROW a,BOOKS b  
    WHERE a.BNO=b.BNO AND b.BNAME=N’总计办法’ 
        AND NOT EXISTS(  
            SELECT * FROM BORROW aa,BOOKSbb  
            WHERE aa.BNO=bb.BNO  
                ANDbb.BNAME=N’总结方法习题集’ 
                ANDaa.CNO=a.CNO)  
    ORDER BY a.CNO DESC   
  7. 将”C01″班同学所借图书的还期都延长七日  
    –达成代码:  
    UPDATE b SET RDATE=DATEADD(Day,7,b.RDATE)  
    FROM CARD a,BORROW b  
    WHERE a.CNO=b.CNO  
        AND a.CLASS=N’C01′   
  8. 从BOOKS表中去除当前无人借阅的图书记录  
    –完结代码:  
    DELETE A FROM BOOKS a  
    WHERE NOT EXISTS(  
        SELECT * FROM BORROW  
        WHERE BNO=a.BNO)   
  9. 假若平日按书名查询图书新闻,请建立适合的目录  
    –达成代码:  
    CREATE CLUSTERED INDEX IDX_BOOKS_BNAME ON BOOKS(BNAME)  
    11.
    在BO奥迪Q3ROW表上建立贰个触发器,完成如下效果:假如读者借阅的书名是”数据库技术及采纳”,就将该读者的借阅记录封存在BO揽胜ROW_SAVE表中(注ORROW_SAVE表结构同BO劲客ROW表)  
    –达成代码:  
    CREATE TRIGGER TR_SAVE ON BORROW  
    FOR INSERT,UPDATE  
    AS  
    IF @@ROWCOUNT>0 
    INSERT BORROW_SAVE SELECT i.*  
    FROM INSERTED i,BOOKS b  
    WHERE i.BNO=b.BNO  
        AND b.BNAME=N’数据库技术及应用’   
  10. 确立二个视图,展现”力01″班学生的借书信息(只须要出示姓名和书名)  
    –达成代码:  
    CREATE VIEW V_VIEW  
    AS  
    SELECT a.NAME,b.BNAME  
    FROM BORROW ab,CARD a,BOOKS b  
    WHERE ab.CNO=a.CNO  
        AND ab.BNO=b.BNO  
        AND a.CLASS=N’力01′ 
    13.
    询问当前还要借有”总结方法”和”组合数学”两本书的读者,输出其借书卡号,并按卡号升序排序输出  
    –完毕代码:  
    SELECT a.CNO  
    FROM BORROW a,BOOKS b  
    WHERE a.BNO=b.BNO  
        AND b.BNAME IN(N’计算方法’,N’组合数学’)  
    GROUP BY a.CNO  
    HAVING COUNT(*)=2 
    ORDER BY a.CNO DESC   
  11. 只要在建BOOKS表时没有定义主码,写出为BOOKS表追加定义主码的说话  
    –实现代码:  
    ALTER TABLE BOOKS ADD PRIMARY KEY(BNO)   
    15.1 将NAME最大列宽扩大到11个字符(假定原为伍个字符)  
    –完结代码:  
    ALTER TABLE CARD ALTER COLUMN NAME varchar(10)   
    15.2 为该表增添1列NAME(系名),可变长,最大21个字符  
    –完毕代码:  
    ALTER TABLE CARD ADD 系名 varchar(20)  
    难题讲述:  
    为治本岗位业务培养和练习新闻,建立一个表:  
    S (S#,SN,SD,SA)   S#,SN,SD,SA
    分别表示学号、学员姓名、所属单位、学员年龄  
    C (C#,CN )       C#,CN       分别代表课程编号、课程名称  
    SC ( S#,C#,G )    S#,C#,G    
    分别表示学号、所选修的学科编号、学习战绩  
    须要贯彻如下陆个处理:  
      1. 使用正规SQL嵌套语句询问选修课程名称为’税收基础’的上学的小孩子学号和人名  
      2. 施用专业SQL嵌套语句询问选修课程编号为’C2’的学习者姓名和所属单位  
      3. 用到专业SQL嵌套语句询问不选修课程编号为’C5’的学习者姓名和所属单位  
      4. 选拔标准SQL嵌套语句询问选修全体科目标学习者姓名和所属单位  
      5. 询问选修了课程的学员人数  
      6. 查询选修课程超过5门的学生学号和所属单位  
  12. 采纳规范SQL嵌套语句询问选修课程名称为’税收基础’的学生学号和姓名   
    –实现代码:  
    SELECT SN,SD FROM S  
    WHERE [S#] IN(  
        SELECT [S#] FROM C,SC  
        WHERE C.[C#]=SC.[C#]  
            AND CN=N’税收基础’)  
  13. 接纳正规SQL嵌套语句询问选修课程编号为’C2’的学生姓名和所属单位  
    –完毕代码:  
    SELECT S.SN,S.SD FROM S,SC  
    WHERE S.[S#]=SC.[S#]  
        AND SC.[C#]=’C2′ 
  14. 使用正规SQL嵌套语句询问不选修课程编号为’C5’的上学的小孩子姓名和所属单位  
    –达成代码:  
    SELECT SN,SD FROM S  
    WHERE [S#] NOT IN(  
        SELECT [S#] FROM SC   
        WHERE [C#]=’C5′)  
  15. 动用正式SQL嵌套语句询问选修全部学科的学习者姓名和所属单位  
    –达成代码:  
    SELECT SN,SD FROM S  
    WHERE [S#] IN(  
        SELECT [S#] FROM SC   
            RIGHT JOIN C ONSC.[C#]=C.[C#]  
        GROUP BY [S#]  
        HAVING COUNT(*)=COUNT(DISTINCT [S#]))  
  16. 查询选修了课程的学习者人数  
    –完成代码:  
    SELECT 学员人数=COUNT(DISTINCT [S#]) FROM SC  
  17. 查询选修课程当先5门的学员学号和所属单位  
    –达成代码:  
    SELECT SN,SD FROM S  
    WHERE [S#] IN(  
        SELECT [S#] FROM SC   
        GROUP BY [S#]  
        HAVING COUNT(DISTINCT [C#])>5)  
    if not object_id(‘cj’)is null   
       drop table cj  
    go  
    create table cj(stuName nvarchar(10),KCM
    nvarchar(10),cjnumeric(5,2))   
    insert into cj select ‘张三’,’语文’,98   
    union select ‘李四’,’语文’,89   
    union select ‘王五’,’语文’,67   
    union select ‘周攻’,’语文’,56   
    union select ‘张三’,’数学’,89 
    union select ‘李四’,’数学’,78   
    union select ‘王五’,’数学’,90   
    union select ‘周攻’,’数学’,87   
    方法一:  
    select stuname from  
        (select stuName,kcm,(select count(*) from cj
    wherestuname!=a.stuname and kcm=a.kcm and cj>a.cj) cnt from cj a)
    x  
        group by stuname having max(cnt)<=1 
    go  
    方法二:  
    SELECT stuname FROM cj1 a    
    where cj IN(SELECT TOP 2 cj FROM cj1 WHERE kcm=a.kcm ORDER BY cj
    desc)  
    GROUP BY stuname HAVING(count(1)>1)  
    方法三:  
    select distinct stuname from cj a  
        where not exists(select kcm from cj b wherea.stuname=stuname  
                   and (select count(*) from cj where kcm=b.kcm and
    stuname!=a.stuname andcj>b.cj)>1)

复制代码 代码如下:

   
  标准化表明式 1:包蕴关系或逻辑运算符的表明式,代表询问条件。

 

4⑦ 、查询没学过“叶平”老师讲课的任一门学科的学生姓名

     
 2. 外键:如果三个涉及的一个或一组属性引用(参照)了另二个关联的主键,则称那个或那组属性为外码或外键(Foreign key)。

Student(S#,Sname,Sage,Ssex) 学生表
Course(C#,Cname,T#) 课程表
SC(S#,C#,score) 成绩表
金沙国际唯一官网网址,Teacher(T#,Tname) 教师表

select C# as 课程号,count(*) as 人数
from sc
group by C#
order by count(*) desc,c#

       6. 常见SQL 自主权力决定命令和例子。
         1) 把对 Student 和 Course 表的全部权力授予全体用户。
            
 GRANT ALL PRIVILIGES ON TABLE Student,Course TO PUBLIC ;
       
 2) 把对 Student 表的查询权和人名修改权授予用户 U4。
            
 GRANT SELECT,UPDATE(Sname) ON TABLE Student TO U4 ;
       
 3) 把对 SC 表的插入权限授予 U5 用户,并同意他传播该权限。
            
 GRANT INSERT ON TABLE SC TO U5 WITH GRANT OPTION ;
       
 4) 把用户 U5 对 SC 表的 INSE途乐T
权限收回,同时收回被她传播出去的授权。
            
 REVOKE INSERT ON TABLE SC FROM U5 CASCADE ;
       
 5) 创立七个剧中人物 奥迪Q71,并使其对 Student
表具有数据查询和换代权限。
            
 CREATE ROLE R1;
            
 GRANT SELECT,UPDATE ON TABLE Student TO R1;
       
 6) 对修改 Student 表结构的操作实行审计。
            
 AUDIT ALTER ON Student ;

 

1玖 、按各科平均成绩从低到高和及格率的比例从高到低依次

12)HAVING

该重庆大学词能够扶持大家对函数发生的值来设定标准。语法为:
SELECT “栏位1”, SUM(“栏位2”)  FROM
“表格名”  GROUP BY “栏位1”  HAVING (函数条件)  

  use pangu

复制代码 代码如下:

     
      
 [ GROUP BY <属性列表 1> [ HAVING <条件表明式 2 > ] ]

ALL                 Blue               225.00                   

select count(*) from sc;

     
 4. 宽广的数据模型包罗:涉嫌、层次、网状、面向对象、对象关系映射等几种。

 

复制代码 代码如下:

   
  <属性列表 2>: 1个或逗号分隔的多个列名, 种种列名后可跟 ASC 或 DESC, 表示升/降序,缺省为升序。

PDate       111111        222222   333333      ……

4⑥ 、查询任何上学的小孩子都选修的学科的课程号和课程名

1)SELECT

将质地从数据库中的表格内选出,三个首要字:从
(FROM) 数据库中的表格内选出 (SELECT)。语法为
SELECT “栏位名” FROM “表格名”。

 

柒 、查询学过“叶平”老师所教的全体课的同桌的学号、姓名;

   
列级完整性约束
为针对单个列(本列)的完整性约束, 包涵 P逍客IMA安德拉Y KEY、 REFERENCES表名(列名)、UNIQUE、NOT NULL 等。 

 

复制代码 代码如下:

     
 4. 常用存取控制方法包涵独立存取控制(DAC)和要挟存取控制(MAC)两种。

      历史 = SUM(CASEb.FSubName WHEN ‘历史’ THEN c.FScore END)

复制代码 代码如下:

      贰 、主要知识点

 

select S# from SC where C# in (select C# from SC where S#=’1002′)
group by S# having count(*)=(select count(*) from SC where
S#=’1002′);

     
 6. 参照完整性: 用于维护实体之间的引用关系。 它供给三个提到的外键要么为空, 要么取与被参照关系对应的主键值,即外键值必须是主键中已存在的值

(一)

select S#,Sname
from Student
where S# in (select S# from SC ,Course ,Teacher where
SC.C#=Course.C# and Teacher.T#=Course.T# and Teacher.Tname=’叶平’
group by S# having count(SC.C#)=(select count(C#) from Course,Teacher
where Teacher.T#=Course.T# and Tname=’叶平’));

            F —— 属性间的数额正视关系集合

2. 写sql语句达成下列查询
(表)t
a b(列)
1 2
1 3
1 4
2 1
2 2
3 1
4 1
5 3
5 2
查询结果须要
a b
1 2
2 1
3 1
4 1
5 2

复制代码 代码如下:

第三节

  1. 将”C01″班同学所借图书的还期都延长七日
    –达成代码:
    UPDATE b SET RDATE=DATEADD(Day,7,b.RDATE)
    FROM CARD a,BORROW b
    WHERE a.CNO=b.CNO
        AND a.CLASS=N’C01′

     

  2. 从BOOKS表中删除当前无人借阅的书籍记录
    –完毕代码:
    DELETE A FROM BOOKS a
    WHERE NOT EXISTS(
        SELECT * FROM BORROW
        WHERE BNO=a.BNO)

     

  3. 就算平日按书名查询图书音讯,请建立适当的目录
    –完成代码:
    CREATE CLUSTERED INDEX IDX_BOOKS_BNAME ON BOOKS(BNAME)

     

复制代码 代码如下:

      <列名列表>:三个或逗号分隔的八个列名,各样列名后可跟 ASC 或 DESC,表示升/降序,缺省为升序。多列时则按为浩如烟海排序。

如:

SELECT DISTINCT top 3
SC.S# As 学生学号,
Student.Sname AS 学生姓名 ,
T1.score AS 企管,
T2.score AS 马克思,
T3.score AS UML,
T4.score AS 数据库,
ISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) +
ISNULL(T4.score,0) as 总分
FROM Student,SC LEFT JOIN SC AS T1
ON SC.S# = T1.S# AND T1.C# = ‘001’
LEFT JOIN SC AS T2
ON SC.S# = T2.S# AND T2.C# = ‘002’
LEFT JOIN SC AS T3
ON SC.S# = T3.S# AND T3.C# = ‘003’
LEFT JOIN SC AS T4
ON SC.S# = T4.S# AND T4.C# = ‘004’
WHERE student.S#=SC.S# and
ISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) +
ISNULL(T4.score,0)
NOT IN
(SELECT
DISTINCT
TOP 15 WITH TIES
ISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) +
ISNULL(T4.score,0)
FROM sc
LEFT JOIN sc AS T1
ON sc.S# = T1.S# AND T1.C# = ‘k1’
LEFT JOIN sc AS T2
ON sc.S# = T2.S# AND T2.C# = ‘k2’
LEFT JOIN sc AS T3
ON sc.S# = T3.S# AND T3.C# = ‘k3’
LEFT JOIN sc AS T4
ON sc.S# = T4.S# AND T4.C# = ‘k4’
ORDER BY ISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) +
ISNULL(T4.score,0) DESC);

第四节

CUBE 生成的结果集突显了所选列中值的有着组成的成团。

六 、查询学过“001”并且也学过数码“002”课程的同班的学号、姓名;

 二 、重点知识点

P0002  2002-10-10 7

复制代码 代码如下:

     
 4. 涉嫌情势: 简单地说,关系格局正是对涉及的型的定义, 包蕴涉及的品质构成、各属性的数据类型、 属性间的依靠、 元组语义及完整性约束等。 关系是关系形式在某一随时的地方或内容, 关系模型是型, 关系是值, 关系模型是静态的、 稳定的, 而关系是动态的、随时间不断变动的,因为涉及操作在不停地创新着数据库中的数据。

 

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#;

数据库知识总计(2)范式

 壹 、相关概念和知识点

       1.数额依赖:反映一个关联里面属性与个性之间的自律关系,是切实世界属性间相互关系的肤浅,属于数据内在的天性和语义的反映。
       2. 规范化理论:是用来设计精美的涉及形式的核心思论。它经过分解关系方式来撤销在那之中不相宜的多少注重,以缓解插入极度、删除极度、更新非凡和数目冗余难点。
       3. 函数依赖:不难地说,对于涉及情势的三个属本性集X和Y,若X的任一取值能唯一明确Y的值,则称Y函数正视于X,记作X→Y。
       4. 非平日函数正视:对于涉及格局的几个属天性集X和Y,若是X→Y,但Y!⊆X,则称X→Y为非平常函数重视;假使X→Y,但Y⊆X,则称X→Y为非平日函数依赖。
       5. 全然函数依赖:对于涉嫌情势的多少个属本性集X和Y,借使X→Y,并且对于X的其余3个真子集X’,都尚未X’→Y,则称Y对X完全函数依赖。
       6. 范式:指符合某一种级其他关系方式的聚合。在设计关周到据库时,依据知足正视关系须求的分歧定义为分化的范式。
       7. 规范化:指将叁个低顶尖范式的涉及格局,通过形式分解转换为多少个高一流范式的关系方式的成团的进度。
       8. 1NF:若关系情势的具备属性都以不可分的着力数据项,则该关系格局属于1NF。
       9. 2NF:1NF事关形式一旦还要知足每3个非主属性完全函数信赖于码,则该关系格局属于2NF。
       10. 3NF:若关系情势的每七个非主属性既不有的重视于码也不传递正视于码,则该关系情势属于3NF。
       11. BCNF:若二个关乎方式的每2个控制因素都包罗码,则该关系情势属于BCNF。
       12. 数据库设计:是指对于一个加以的应用环境,构造优化的数据库逻辑形式和物理结构,并为此建立数据库及其应用种类,使之能够使得地囤积和管制数据,满足各个用户的选取需要,包涵新闻保管须求和数目操作要求。
       13. 数据库设计的多少个大旨步骤:须要分析,概念结构划设想计,逻辑结构划设想计,物理结构划设想计,数据库实施,数据库运转和护卫。
       14. 定义结构设计:指将须要分析获得的用户需要抽象为消息结构即概念模型的历程。也等于通过对用户需求实行总结、归结与虚无,形成3个独门于现实DBMS的概念模型。
       15. 逻辑结构划设想计:将定义结构模型(基本E-本田CR-V图)转换为有个别DBMS产品所支撑的数据模型相契合的逻辑结构,并对其进行优化。
       16. 大体结构设计:指为叁个加以的逻辑数据模型选择3个最符合应用环境的情理构造的进度。包罗安排数据库的存款和储蓄结构与存取方法。
       17. 架空:指对实际的人、物、事和概念实行人工处理,抽取所关注的一起特点,忽略非本质的底细,并把那几个特色用各样概念精确地加以描述,这几个概念组成了某种模型。

     
 18. 数据库设计必须比照结构划设想计和行事设计相结合的规格。

     
 19. 数目字典首要不外乎数据项、数据结构、数据流、数据存款和储蓄和处理进程多少个部分。
       20. 二种常用抽象方法是分类、聚集和总结。
       21. 部分 E-Lacrosse 图之间的争持主要呈以往性质争辨、命名争持和结构争论多少个地点。

       22.
数据库常用的存取方法包涵索引方法、聚簇方法和
HASH方法二种。
       23. 规定数据存放地方和仓库储存结构亟待考虑的要素至关心重视要有: 存取时间、
存款和储蓄空间利用率和护卫代价等。

贰 、细说数据库三范式

2.1 第3范式(1NF)无重复的列

       第③范式(1NF)中多少库表的每一列都以不可分割的主干数据项
       同一列中不能够有多少个值
     
 即实体中的某些属性无法有多少个值可能不可能有重新的个性。
     
 简单的讲,第1范式就是无重复的列。

     
 在其余1个关全面据库中,第③范式(1NF)是对关联情势的着力供给,不知足第贰范式(1NF)的数据库就不是关周详据库。

2.2 第叁范式(2NF)属性完全依靠于主键[清除部分子函数注重]

     
满意第③范式(2NF)必须先满足第①范式(1NF)。

     
第3范式(2NF)要求数据库表中的种种实例或行必须能够被惟一地有别于。

     
为兑现区分日常需求为表加上一个列,以存款和储蓄各种实例的旷世标识。 
     
第②范式(2NF)供给实体的品质完全依靠于主关键字。所谓完全重视是指不可能存在仅依靠主关键字一部分的习性,即使存在,那么这一个天性和主关键字的这一局地应该分离出来形成三个新的实体,新实体与原实体之间是一对多的关联。为实现区分经常需求为表加上贰个列,以存款和储蓄各类实例的绝世标识。简单来讲,第③范式就是性质完全依靠于主键。
2.3 第一范式(3NF)属性不注重于别的非主属性[排除传递注重]

     
满意第壹范式(3NF)必须先满足第一范式(2NF)。

     
一言以蔽之,第①范式(3NF)必要一个数据库表中不含有已在其余表中已盈盈的非主关键字音信。

     
例如,存在多少个单位消息表,个中每一个单位有部门编号(dept_id)、部门名称、部门简介等音讯。那么在的职员和工人新闻表中列出机关编号后就无法再将单位名称、部门简介等与部门有关的音讯再参加职员和工人新闻表中。如若不存在机构音讯表,则基于第②范式(3NF)也应当创设它,否则就会有雅量的数据冗余。简而言之,第一范式正是性质不借助于于任何非主属性。

2.4
具体实例分析

     
下边罗列3个该校的学员系统的实例,以示多少个范式的行使。

     
 在统一筹划数据库表结构在此以前,我们先分明一下要规划的内容囊括那三个。学号、学生姓名、年龄、性别、课程、课程学分、系别、学科战绩,系办地址、系办电话等音信。为了简单我们权且只考虑这么些字段音信。我们对此那么些消息,说关切的难点有如下多少个地点。

     
 1)学生有那些基本消息 
       2)学生选了这一个课,战表是如何 
       3)每一种课的学分是不怎么 
       4)学生属于卓殊系,系的骨干音讯是如何。

       第2第叁范式(1NF):数据库表中的字段都是单一属性的,不可再分。这几个单一属性由中央类型构成,包含整型、实数、字符型、逻辑型、日期型等。在当前的其余关周全据库管理种类(DBMS)中,不容许你把多少库表的一列再分为二列或多列,因此做出的都是切合第叁范式的数据库。 

       咱俩再考虑第壹范式,把富有那几个音信放到多少个表中(学号,学生姓名、年龄、性别、课程、课程学分、系别、学科成绩,系办地址、系办电话)下边存在如下的借助关系。 
       1)(学号)→ (姓名, 年龄,性别,系别,系办地址、系办电话) 
       2) (课程名称) → (学分) 
       3)(学号,课程)→ (学科成绩)

听大人讲注重关系大家得以把选课关系表SelectCourse改为如下多少个表: 

     
 学生:Student(学号,姓名, 年龄,性别,系别,系办地址、系办电话); 
       课程:Course(课程名称, 学分); 
       选课关系:SelectCourse(学号, 课程名称, 战表)。

     
 事实上,对照第叁范式的渴求,那便是知足第①范式的数据库表,若不满足第①范式,会发出如下难题 
数码冗余: 同一门科目由n个学生选修,”学分”就再一次n-3次;同3个学生选修了m门课程,姓名和年龄就再也了m-3次。

更新格外: 1)若调整了某门课程的学分,数据表中全体行的”学分”值都要翻新,否则会出现同样门课程学分分化的情景。 
               
 2)假如要实行一门新的教程,权且还一贯不人选修。那样,由于还没有”学号”关键字,课程名称和学分也无力回天记录入数据库。

删除分外 : 借使一批学生已经到位课程的选修,那几个选修记录就应当从数据库表中删除。然而,与此同时,课程名称和学分消息也被剔除了。很强烈,那也会促成插入相当。

       大家再考虑怎么将其改成满意第2范式的数量库表,接着看上边的学员表Student(学号,姓名, 年龄,性别,系别,系办地址、系办电话),关键字为单一关键字”学号”,因为存在如下决定涉及:

     
(学号)→ (姓名, 年龄,性别,系别,系办地址、系办电话) 
唯独还设有上边包车型地铁支配涉及 
       (学号) → (所在高校)→(高校地方, 高校电话) 
       
即存在非关键字段”高校地方”、”大学电话”对重要字段”学号”的传递函数正视。 
     
 它也会设有数据冗余、更新相当、插入格外和删除卓殊的景观(那里就不具体分析了,参照第一范式中的分析)。根据第②范式把学生关系表分为如下多个表就足以满意第①范式了:

     
 学生:(学号, 姓名, 年龄, 性别,系别); 
       系别:(系别, 系办地址、系办电话)。

SQL语句计算

SQL语句中常用关键词及其表明如下:

④ 、在Transact-SQL语法中,SELECT语句的共同体语法较复杂,但起码包蕴的一些(1___),使用主要字(2___)能够把重复行屏
蔽,将四个查询结果回到叁个结果集合的演算符是(3___),如果在SELECT语句中使用聚合函数时,一定在背后使用(4___)。
    ⑴ A、SELECT,INTO             B、SELECT,FROM
      C、SELECT,GROUP           D、仅SELECT
  ⑵ A、DISTINCT                         B、UNION
        C、ALL                                 C、TOP
  ⑶ A、JOIN                               B、UNION
        C、INTO                             C、LIKE
  ⑷ A、GROUPBY                     B、COMPUTE BY
        C、HAVING                         D、COMPUTE

SELECT SUM(CASE WHEN C# =’001′ THEN score ELSE 0 END)/SUM(CASE C# WHEN
‘001’ THEN 1 ELSE 0 END) AS 企管平均分
,100 * SUM(CASE WHEN C# = ‘001’ AND score >= 60 THEN 1 ELSE 0
END)/SUM(CASE WHEN C# = ‘001’ THEN 1 ELSE 0 END) AS
企管及格百分数
,SUM(CASE WHEN C# = ‘002’ THEN score ELSE 0 END)/SUM(CASE C# WHEN
‘002’ THEN 1 ELSE 0 END) AS 马克思平均分
,100 * SUM(CASE WHEN C# = ‘002’ AND score >= 60 THEN 1 ELSE 0
END)/SUM(CASE WHEN C# = ‘002’ THEN 1 ELSE 0 END) AS 马克思及格百分数
,SUM(CASE WHEN C# = ‘003’ THEN score ELSE 0 END)/SUM(CASE C# WHEN
‘003’ THEN 1 ELSE 0 END) AS UML平均分
,100 * SUM(CASE WHEN C# = ‘003’ AND score >= 60 THEN 1 ELSE 0
END)/SUM(CASE WHEN C# = ‘003’ THEN 1 ELSE 0 END) AS UML及格百分数
,SUM(CASE WHEN C# = ‘004’ THEN score ELSE 0 END)/SUM(CASE C# WHEN
‘004’ THEN 1 ELSE 0 END) AS 数据库平均分
,100 * SUM(CASE WHEN C# = ‘004’ AND score >= 60 THEN 1 ELSE 0
END)/SUM(CASE WHEN C# = ‘004’ THEN 1 ELSE 0 END) AS 数据库及格百分数
FROM SC

第一节

 

复制代码 代码如下:

2)DISTINCT

在上述
SELECT 关键词后增加1个 DISTINCT
就足以去除选用出来的栏位中的重复,从而形成求得那么些表格/栏位内有啥样区别的值的功用。语法为
SELECT DISTINCT “栏位名” FROM
“表格名”。

  • 70]
            ,SUM(CASE WHEN score BETWEEN 60 AND70 THEN 1 ELSE 0 END) AS [70
  • 60]
            ,SUM(CASE WHEN score < 60 THEN 1ELSE 0 END) AS [60 -]
        FROM SC,Course
        where SC.C#=Course.C#
        GROUP BY SC.C#,Cname;  

select SC.S#,Student.Sname,count(C#) AS 选课数
from SC ,Student
where SC.S#=Student.S# group by SC.S# ,Student.Sname having
count(C#)=1;

     
      
 SELECT [ALL|DISTINCT] <算术表明式列表> FROM <表名或视图名列表>

2003-02-09   03:35:25    03:36:25     03:37:25    ……

1肆 、查询和“1002”号的同学学习的课程完全相同的其余同学学号和人名;

       1.
Data:数据,是数据库中存款和储蓄的为主指标,是描述事物的符号记录。
       2.
Database:数据库,是深刻储存在计算机内、有协会的、可共享的雅量数码的汇集。
       3.
DBMS:数据库管理种类,是身处用户与操作系统里面包车型大巴一层数据管理软件,用于科学地组织、存款和储蓄和保管数据、高效地收获和维护数据。
       4.
DBS:数据库系统,指在微型总计机种类中引入数据库后的系统,一般由数据库、数据库管理系列、应用种类、数据库管理员(DBA)构成。
       5.
数据模型:是用来抽象、表示和拍卖具体世界中的数据和新闻的工具,是对切实世界的模拟,是数据库系统的主导和底蕴;其重组成分有数据结构、数据操作和完整性约束。
       6.
概念模型:也称音信模型,是按用户的见解来对数据和消息建模,首要用来数据库设计。
       7.
逻辑模型:是按电脑类别的意见对数码建立模型,用于DBMS实现。
       8.
物理模型:是对数码最尾部的悬空,描述数据在系统里面包车型地铁表示方法和存取方法,在磁盘或磁带上的囤积形式和存取方法,是面向计算机种类的。
       9.
实体和品质:客观存在并可互相区分的东西称为实体。实体所负有的某一性格称为属性。
     
 10.E-奥迪Q5图:即实体-关系图,用于描述现实世界的东西及其相互关系,是数据库概念模型设计的机要工具。
     
 11.涉嫌方式:从用户意见看,关系情势是由一组关系构成,各类关系的数据结构是一张规范化的二维表。
     
 12.型/值:型是对某一类数据的结构和性质的表达;值是型的二个现实赋值,是型的实例。
     
 13.数据库方式:是对数据库中全体数据的逻辑结构(数据项的名字、类型、取值范围等)和特色(数据里面包车型大巴沟通以及数额有关的安全性、完整性供给)的叙说。
     
 14.数据库的三级系统结构:外情势、形式和内情势。
     
 15.数据库内方式:又叫做存款和储蓄格局,是对数据库物理构造和存款和储蓄方式的讲述,是多少在数据库内部的象征方法。二个数据库唯有叁个内形式。
     
 16.数据库外形式:又称为子格局或用户格局,它是数据库用户能够看见和行使的一部分数据的逻辑结构和脾性的讲述,是数据库用户的数额视图。常常是格局的子集。一个数据库可有多个外形式。
     
 17.数据库的二级影像:外方式/格局影像、形式/内格局影像。

 

复制代码 代码如下:

金沙国际唯一官网网址 6

           ELSE ISNULL(Color, ‘UNKNOWN’)

20、查询如下课程平均战表和及格率的比重(用”1行”展现):
企管(001),马克思(002),OO&UML (003),数据库(004)

            
 [,<表级完整性约束> ] ) ;

 

SELECT S# as 学生ID
,(SELECT score FROM SC WHERE SC.S#=t.S# AND C#=’004′) AS 数据库
,(SELECT score FROM SC WHERE SC.S#=t.S# AND C#=’001′) AS 企管
,(SELECT score FROM SC WHERE SC.S#=t.S# AND C#=’006′) AS 英语
,COUNT(*) AS 有效课程数, AVG(t.score) AS 平均战表
FROM SC AS t
GROUP BY S#
ORDER BY avg(t.score)

=====================================

Student(S#,Sname,Sage,Ssex) 学生表   
Course(C#,Cname,T#) 课程表   
SC(S#,C#,score) 成绩表   
Teacher(T#,Tname) 教师表   
问题:   
壹 、查询“001”课程比“002”课程成绩高的享有学生的学号;   
  select a.S# from (select s#,score from SC where C#=’001′)
a,(selects#,score   
  from SC where C#=’002′) b   
  where a.score>b.score and a.s#=b.s#;   
② 、查询平均成绩超过57分的校友的学号和平均战表;   
    select S#,avg(score)   
    from sc   
    group by S# having avg(score) >60;   
叁 、查询全部同学的学号、姓名、选课数、总战表;   
  selectStudent.S#,Student.Sname,count(SC.C#),sum(score)   
  from Student left Outer join SC on Student.S#=SC.S#   
  group by Student.S#,Sname   
肆 、查询姓“李”的导师的个数;   
  select count(distinct(Tname))   
  from Teacher   
  where Tname like ‘李%’;   
伍 、查询没学过“叶平”老师课的同校的学号、姓名;   
    select Student.S#,Student.Sname   
    from Student    
    where S# not in (select distinct( SC.S#) fromSC,Course,Teacher
where  SC.C#=Course.C# and Teacher.T#=Course.T#
andTeacher.Tname=’叶平’);   
六 、查询学过“001”并且也学过数码“002”课程的同班的学号、姓名;   
  select Student.S#,Student.Sname from Student,SC where
Student.S#=SC.S#and SC.C#=’001’and exists( Select * from SC as SC_2
where SC_2.S#=SC.S# andSC_2.C#=’002′);   
⑦ 、查询学过“叶平”老师所教的全部课的同室的学号、姓名;   
  select S#,Sname   
  from Student   
  where S# in (select S# from SC ,Course ,Teacher where
SC.C#=Course.C#and Teacher.T#=Course.T# and Teacher.Tname=’叶平’
groupby S# having count(SC.C#)=(select count(C#) from Course,Teacher 
whereTeacher.T#=Course.T# and Tname=’叶平’));   
⑧ 、查询课程编号“002”的成就比课程编号“001”课程低的享有同学的学号、姓名;   
  Select S#,Sname from (select Student.S#,Student.Sname,score
,(selectscore from SC SC_2 where SC_2.S#=Student.S# and
SC_2.C#=’002′)score2   
  from Student,SC where Student.S#=SC.S# and C#=’001′) S_2 where
score2<score;   
玖 、查询全部科目成绩小于57分的同学的学号、姓名;   
  select S#,Sname   
  from Student   
  where S# not in (select Student.S# from Student,SC where
S.S#=SC.S# andscore>60);   
⑩ 、查询没有学全全数课的校友的学号、姓名;   
    select Student.S#,Student.Sname   
    from Student,SC   
    where Student.S#=SC.S# group by Student.S#,Student.Sname having
count(C#) <(select count(C#) fromCourse);   
1一 、查询至少有一门课与学号为“1001”的同学所学相同的同窗的学号和姓名;   
    select S#,Sname from Student,SC where Student.S#=SC.S# andC# in
select C# from SC where S#=’1001′;   
1贰 、查询至少学过学号为“001”同学全体一门课的别的同学学号和姓名;   
    select distinct SC.S#,Sname   
    from Student,SC   
    where Student.S#=SC.S# and C# in (select C# from SC
whereS#=’001′);   
1叁 、把“SC”表中“叶平”老师教的课的成就都改变为此课程的平分战绩;   
    update SC set score=(selectavg(SC_2.score)   
    from SC SC_2   
    where SC_2.C#=SC.C# ) from Course,Teacher whereCourse.C#=SC.C#
and Course.T#=Teacher.T# and Teacher.Tname=’叶平’);   
1肆 、查询和“1002”号的同室学习的学科完全相同的其余同学学号和姓名;   
    select S# from SC where C# in (select C# from SC
whereS#=’1002′)   
    group by S# having count(*)=(select count(*) from SC
whereS#=’1002′);   
1⑤ 、删除学习“叶平”老师课的SC表记录;   
    Delect SC   
    from course ,Teacher    
    where Course.C#=SC.C# and Course.T#= Teacher.T# and
Tname=’叶平’;   
1⑥ 、向SC表中插入一些记下,这个记录供给符合以下标准:没有上过编号“003”课程的同学学号、二 、   
    号课的平均成绩;   
    Insert SC select S#,’002′,(Selectavg(score)   
    from SC where C#=’002′) from Student where S# not in (SelectS#
from SC where C#=’002′);   
1⑦ 、按平均战绩从高到低展现全体学生的“数据库”、“企管”、“葡萄牙共和国(República Portuguesa)语”三门的科目战绩,按如下方式显得:
学生ID,,数据库,企管,立陶宛共和国(Republic of Lithuania)语,有效课程数,有效平均分   
    SELECT S# as 学生ID   
        ,(SELECT score FROM SC WHERESC.S#=t.S# AND C#=’004′) AS
数据库   
        ,(SELECT score FROM SC WHERESC.S#=t.S# AND C#=’001′) AS
企管   
        ,(SELECT score FROM SC WHERESC.S#=t.S# AND C#=’006′) AS
英语   
        ,COUNT(*) AS 有效课程数, AVG(t.score) AS 平均战绩   
    FROM SC AS t   
    GROUP BY S#   
    ORDER BY avg(t.score)    
1捌 、查询各科战表最高和最低的分:以如下情势显得:课程ID,最高分,最低分   
    SELECT L.C# As 课程ID,L.score AS 最高分,R.score AS 最低分   
    FROM SC L ,SC AS R   
    WHERE L.C# = R.C# and   
        L.score = (SELECTMAX(IL.score)   
                     FROM SC AS IL,Student AS IM   
                     WHERE L.C# = IL.C# and IM.S#=IL.S#   
                     GROUP BY IL.C#)   
        AND   
        R.Score = (SELECTMIN(IR.score)   
                     FROM SC AS IR   
                     WHERE R.C# = IR.C#   
                 GROUP BY IR.C#   
                   );   
1九 、按各科平均成绩从低到高和及格率的百分比从高到低依次   
    SELECT t.C# AS
课程号,max(course.Cname)AS课程名,isnull(AVG(score),0) AS 平均成绩   
        ,100 * SUM(CASE WHEN isnull(score,0)>=60 THEN 1 ELSE 0
END)/COUNT(*) AS 及格百分数   
    FROM SC T,Course   
    where t.C#=course.C#   
    GROUP BY t.C#   
    ORDER BY 100 * SUM(CASE WHEN  isnull(score,0)>=60THEN 1 ELSE 0
END)/COUNT(*) DESC   
20、查询如下课程平均战表和及格率的比重(用”1行”突显):
企管(001),马克思(002),OO&UML (003),数据库(004)   
    SELECT SUM(CASE WHEN C# =’001′ THEN score ELSE 0END)/SUM(CASE C#
WHEN ‘001’ THEN 1 ELSE 0 END) AS 企管平均分   
        ,100 * SUM(CASE WHEN C# = ‘001’ ANDscore >= 60 THEN 1 ELSE
0 END)/SUM(CASE WHEN C# = ‘001’ THEN 1 ELSE 0 END)AS
企管及格百分数   
        ,SUM(CASE WHEN C# = ‘002’ THEN scoreELSE 0 END)/SUM(CASE C#
WHEN ‘002’ THEN 1 ELSE 0 END) AS 马克思平均分   
        ,100 * SUM(CASE WHEN C# = ‘002’ ANDscore >= 60 THEN 1 ELSE
0 END)/SUM(CASE WHEN C# = ‘002’ THEN 1 ELSE 0 END)AS
马克思及格百分数   
        ,SUM(CASE WHEN C# = ‘003’ THEN scoreELSE 0 END)/SUM(CASE C#
WHEN ‘003’ THEN 1 ELSE 0 END) AS UML平均分   
        ,100 * SUM(CASE WHEN C# = ‘003’ ANDscore >= 60 THEN 1 ELSE
0 END)/SUM(CASE WHEN C# = ‘003’ THEN 1 ELSE 0 END)AS UML及格百分数   
        ,SUM(CASE WHEN C# = ‘004’ THEN scoreELSE 0 END)/SUM(CASE C#
WHEN ‘004’ THEN 1 ELSE 0 END) AS 数据库平均分   
        ,100 * SUM(CASE WHEN C# = ‘004’ ANDscore >= 60 THEN 1 ELSE
0 END)/SUM(CASE WHEN C# = ‘004’ THEN 1 ELSE 0 END)AS
数据库及格百分数   
  FROM SC   
2① 、查询分裂老师所教区别学科平均分从高到低展现   
  SELECT max(Z.T#) AS 教授ID,MAX(Z.Tname) AS 讲师姓名,C.C# AS
课程ID,MAX(C.Cname) AS 课程名称,AVG(Score) AS 平均战绩   
    FROM SC AS T,Course AS C ,Teacher AS Z   
    where T.C#=C.C# and C.T#=Z.T#   
  GROUP BY C.C#   
  ORDER BY AVG(Score) DESC   
2二 、查询如下课程战表第 3 名到第 6
名的学习者成绩单:企管(001),马克思(002),UML
(003),数据库(004)   
    [学生ID],[学员姓名],企管,Marx,UML,数据库,平均战表   
    SELECT  DISTINCT top 3   
      SC.S# As 学生学号,   
        Student.Sname AS 学生姓名 ,   
      T1.score AS 企管,   
      T2.score AS 马克思,   
      T3.score AS UML,   
      T4.score AS 数据库,   
      ISNULL(T1.score,0) + ISNULL(T2.score,0) +ISNULL(T3.score,0) +
ISNULL(T4.score,0) as 总分   
      FROM Student,SC  LEFT JOIN SC AST1   
                     ON SC.S# = T1.S# AND T1.C# = ‘001’   
            LEFT JOIN SCAS T2   
                     ON SC.S# = T2.S# AND T2.C# = ‘002’   
            LEFT JOIN SCAS T3   
                     ON SC.S# = T3.S# AND T3.C# = ‘003’   
            LEFT JOIN SCAS T4   
                     ON SC.S# = T4.S# AND T4.C# = ‘004’   
      WHERE student.S#=SC.S# and   
      ISNULL(T1.score,0) + ISNULL(T2.score,0) +ISNULL(T3.score,0) +
ISNULL(T4.score,0)   
      NOT IN   
      (SELECT   
           DISTINCT   
            TOP 15 WITHTIES   
           ISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0)

复制代码 代码如下:

     
 3. 关全面据库: 根据关系模型建立的数据库称为关周密据库。 它是在有个别应用领域的富有涉及的聚合。

 

复制代码 代码如下:

     
 5. . 实体完整性:用于标识实体的唯一性。它须求着力关系必供给有三个可见标识元组唯一性的主键,主键不可能为空,也不足取重复值

5 怎样求表中相邻的两条记下的某字段的值之差

复制代码 代码如下:

7)LIKE

LIKE
是另三个在 WHERE  子句中会用到的通令。基本上, LIKE
 能让大家依据贰个格局(pattern) 来找出大家要的素材。语法为:
SELECT “栏位名”  FROM “表格名”
 WHERE “栏位名” LIKE {模式} 

ROLLUP 生成的结果集体现了所选列中值的某一层次结构的集聚。

Select S#,Sname from (select Student.S#,Student.Sname,score ,(select
score from SC SC_2 where SC_2.S#=Student.S# and SC_2.C#=’002′)
score2
from Student,SC where Student.S#=SC.S# and C#=’001′) S_2 where
score2 <score;

5)IN


SQL 中,在多少个情景下会用到 IN  这么些命令;这一页将介绍在那之中之一:与 WHERE
有关的这几个情况。在那几个用法下,大家事先已领略至少2个大家要求的值,而笔者辈将那么些知道的值都放入
IN  那一个子句。语法为:
SELECT “栏位名”  FROM “表格名”
 WHERE “栏位名” IN (‘值一’, ‘值二’, …)  

 

五 、查询没学过“叶平”老师课的同窗的学号、姓名;

 

复制代码 代码如下:

 

2四 、查询学一生均成绩及其排行

 

1捌 、查询各科成绩最高和最低的分:以如下方式呈现:课程ID,最高分,最低分

 

2⑥ 、查询每门学科被选修的学习者数

ALL                 Red                 433.00                   

11、查询至少有一门课与学号为“1001”的同班所学相同的校友的学号和人名;

2003-01-28   18:30:00

SELECT t.C# AS 课程号,max(course.Cname)AS 课程名,isnull(AVG(score),0)
AS 平均战表
,100 * SUM(CASE WHEN isnull(score,0)>=60 THEN 1 ELSE 0
END)/COUNT(*) AS 及格百分数
FROM SC T,Course
where t.C#=course.C#
GROUP BY t.C#
ORDER BY 100 * SUM(CASE WHEN isnull(score,0)>=60 THEN 1 ELSE 0
END)/COUNT(*) DESC

  select firm_id,p_id,sum(o_price_quantity)as sum_values

select S#
from sc
group by s#
having count(*) > = 2

 

3陆 、查询任何一门科目成绩在六贰13分以上的姓名、课程名称和分数;

222222    2003-01-2804:31:09     

select c# from sc where scor e <60 order by C# ;

4五 、检索至少选修两门课程的学生学号

insert into @AAA values(‘A’,100)

select Student.S#,Student.Sname
from Student
where S# not in (select distinct( SC.S#) from SC,Course,Teacher where
SC.C#=Course.C# and Teacher.T#=Course.T# and
Teacher.Tname=’叶平’);

SQL SE讴歌RDXVE奥迪Q5能做出如此的汇总吗…

复制代码 代码如下:

 

select Sname,count(*) from Student group by Sname having
count(*)>1;

select 商品名称,sum(商品总量)剩余数量 from (select * from @aaa union
all select 商品名称,-出库数量 from @bbb) a group by 商品名称

select Sname,SC.S# ,avg(score)
from Student,SC
where Student.S#=SC.S# group by SC.S#,Sname having
avg(score)>85;

7.
询问当前借了”计算方法”但不曾借”总结办法习题集”的读者,输出其借书卡号,并按卡号降序排序输出
–达成代码:
SELECT a.CNO
FROM BORROW a,BOOKS b
WHERE a.BNO=b.BNO AND b.BNAME=N’总括格局’
    AND NOT EXISTS(
        SELECT * FROM BORROW aa,BOOKS bb
        WHERE aa.BNO=bb.BNO
            ANDbb.BNAME=N’总计格局习题集’
            ANDaa.CNO=a.CNO)
ORDER BY a.CNO DESC

4① 、查询各类学科及相应的选修人数

姓名  英语  数学 语文  历史

select S#,avg(isnull(score,0)) from SC where S# in (select S# from SC
where score <60 group by S# having count(*)>2)group by S#;

 

④ 、查询姓“李”的师资的个数;

2三 、总结列印各科战表,各分数段人数:课程ID,课程名称,[100-85],[85-70],[70-60],[
<60]
    SELECT SC.C# as 课程ID, Cname as 课程名称
        ,SUM(CASE WHEN score BETWEEN 85 AND100 THEN 1 ELSE 0 END) AS
[100 – 85]
        ,SUM(CASE WHEN score BETWEEN 70 AND85 THEN 1 ELSE 0 END) AS [85

复制代码 代码如下:

Item               Color               QtySum                   

复制代码 代码如下:

  group by firm_id,p_id

select Student.Sname,score
from Student,SC,Course C,Teacher
where Student.S#=SC.S# and SC.C#=C.C# and C.T#=Teacher.T# and
Teacher.Tname=’叶平’ and SC.score=(select max(score)from SC where
C#=C.C# );

 

3五 、查询全部学员的选课景况;