第四章SQL数据库查询语句
例50. 查询学生的修课情况,包 括修了课程的学生和没有修课的 学生。
右外连接
SELECT Student.Sno, Sname, Cno, Grade FROM Student LEFT OUTER JOIN SC ON Student.Sno = SC.Sno
SELECT Student.Sno, Sname, Cno, Grade FROM SC RIGHT OUTER JOIN student ON Student.Sno = SC.Sno
Cno C001 C002 C001 C002 C001 C003 C004
Grade 90 86 90 88 85 91 74
Cno C001 C002
Sno 151201 151202 152103 151201 152103 152103 152103
Count(Sno) 3 2
Cno C001 C001 C001 C002 C002 C003 C004
HAVING用于对分组自身进行限制,它有点象 WHERE子句,但它用于组而不是对单个记录。
第三节 多表连接查询
若一个查询同时涉及两个或两个以上的表, 则称之为连接查询。
连接查询是关系数据库中最主要的查询 连接查询包括内连接、外连接和交叉连接等。
一般格式为: [<表名1.>][<列名1>] <比较运算符> [<表名2.>][<列名2>]
例41.查询每个学生及其 选课的详细信息
例42.去掉例41中的重复 列
SELECT *from student inner join sc on student.sno=sc.sno
SELECT Sno, AVG(Grade) 平均成绩, COUNT(*) 修课门数 FROM SC GROUP BY Sno HAVING avg(grade) >= 80
5 对查询结果进行分组计算
作用:可以控制计算的级别:对全表还是对 一组。 目的:细化计算函数的作用对象。 分组语句的一般形式: [GROUP BY <分组条件>] [HAVING <组过滤条件>]
(1)使用GROUP BY
例33.统计每门课程 的选课人数,列出课 程号和人数。 SELECT Cno as 课程号, COUNT(Sno) as 选课人数 FROM SC GROUP BY Cno 例34.查询每名学 生的选课门数和平 均成绩。 SELECT Sno as 学 号, COUNT(*) as 选课 门数, AVG(Grade) as 平 均成绩 FROM SC GROUP BY Sno
注意:对查询结 果按Cno的值分 组,所有具有相 同Cno值的元组 为一组,然后再 对每一组使用 COUNT计算, 求得每组的学生 人数。
(1)使用GROUP BY
例35.统计每个系的 学生人数和平均成绩 SELECT Sdept, count(*)as student,avg (sage)FROM student GROUP BY Cno 例36.带where子 句分组。统计每个 系的女生人数 SELECT Sdept , COUNT(*) 女生 人数 FROM Student Where Ssex=‘女’ GROUP BY Sdept
例46.用有分组的多表连接查询。统计每个 系学生考试平均成绩。
SELECT Sdept,AVG(grade) as averagegrade FROM Student S JOIN SC ON S.Sno = SC. Sno GROUP BY Sdept
例47.用有分组的多表连接查询。统计计算机系学生每 门课程的选课人数、平均成绩、最高成绩、最低成绩。 SELECT Sno,COUNT(*)as Total,AVG(Grade) as Avgrade,MAX(Grade) as MAXgrade,MIN(Grade) as MINgrade FROM Student S JOIN SC ON S.Sno = SC. Sno WHERE=Sdept=‘计算机系’ GROUP BY cno
第四节 使用top限制结果集
• N为非负数 • Top n:表示取查询结构的前n行 • Top n percnet:表示取查询结构的前n%行数据 • With ties:表示包括并列的结果。 (top 写在select后面,若有distinc,则在distinc之后)
一般格式: TOP N [PERCENT] [WITH TIES]
例题32.查询 “1512101”学生的 选课门数、已考试课程 门数考试最高分、最低 分和平均分 SELECT count (*) 选课门数,count (grade)考试门数, MAX(Grade) 最高分 , MIN(Grade) 最低分 FROM SC WHERE sno=‘1512101'
注意:计算函数不能出现在WHERE子句中 。
asc
desc
Join on
Exists
5
第二节 单表查询
3 对查询结果进行排序
可对查询结果进行排序。
排序子句为:ORDER BY <列名> [ASC | DESC ] [,<列名> … ]
说明:按<列名>进行升序(ASC或者省略)或降序(DESC)排 序。
例25.查询选修了‘c002’号 课程的学生的学号及其成绩, 查询结果按成绩降序排列。
例40.统计每个系的男生 人数,只列出男生人数大 于等于2的系
SELECT Sdept, count(*)人数 From student Where ssex =‘男’ Group by sdept Having count(*) >=2
SELECT Sno ,count (*)FROM SC GROUP BY Sno HAVING COUNT(*) > 3
Grade 90 90 85 86 88 91 74
C003
C04
1
1
(2) 使用HAVING
例38.查询修了3门以上课 程的学生的学号和选课门数 例39.查询修平均成绩超过 80的学生的学号、选课门数 和平均成绩
SELECT Sno, AVG(Grade) 平均成绩, COUNT(*) 修课门数 FROM SC GROUP BY Sno HAVING avg(grade) >= 80
例45.查询所有修了java课程的学生的修课 情况,要求列出学生姓名和所在的系。
SELECT Sname, Sdept FROM Student S JOIN SC ON S.Sno = SC. Sno JOIN Course C ON o = o WHERE Cname = ‘java'
例52.查询年龄最大的三个学生 的姓名、年龄及所在系 。
例37,按多列分组。统计每 个系的男生人数和女生人数, 以及男生的最大年龄和女孩 最大年龄 SELECT Sdept, ssex, count(*)人数。 Max(sage)最大年 龄 FROM Student GROUP BY Sdept, ssex Order by sdept
Sno 151201 151201 151202 152103 152103 152103 152103
• ANSI方式的外连接的语法格式为: FROM 表1 LEFT | RIGHT [OUTER] JOIN 表2 ON <连接条件> • theta方式的外连接的语法格 式为:
• 左外连接: FROM 表1, 表2 WHERE [表 1.]列名(+) = [表2.]列名 • 右外连接: FROM 表1, 表2 WHERE [表 1.]列名= [表2.]列名(+)
例49,查询与数据结构学风 相同的课程的课程名和学分 SELECT ame, C2.Credit FROM Course C1 JOIN Course C2 ON Course C1.Credit=C2.Credit WHERE ame=‘数据 结构’
3 外连接
• 只限制一张表中的数据必须满 足连接条件,而另一张表中数 据可以不满足连接条件。
4 使用计算函数汇总数据
SQL提供的计算函数有: COUNT( * ):统计表中元组个数; COUNT([DISTINCT] <列名> ):统计本列列值个数; SUM([DISTINCT] <列名> ):计算列值总和; AVG([DISTINCT] <列名> ):计算列值平均值; MAX([DISTINCT] <列名> ):求列值最大值; MIN([DISTINCT] <列名> ):求列值最小值。 上述函数中除COUNT(*)外,其他函数在计算过程中均忽略 NULL值。
例26.查询全体学生的信 息,查询结果按所在系的系 名升序排列,同一系的学生 按年龄降序排列
SELECT Sno, Grade FROM SC WHERE Cno='c002' ORDER BY Grade DESC
SELECT * FROM Student ORDER BY Sdept, Sage DESC
1 内连接
SQL-92 内连接语法如下: SELECT … FROM 表名 [INNER] JOIN 被连接表 ON 连接条件
执行连接操作的过程:
• 首先取表1中的第1个元组,然后从头开始扫描表2,逐一 查找满足连接条件的元组, • 找到后就将表1中的第1个元组与该元组拼接起来,形成 结果表中的一个元组。 • 表2全部查找完毕后,再取表1中的第2个元组,然后再从 头开始扫描表2, … • 重复这个过程,直到表1中的全部元组都处理完毕为止。
SQL数据查询
Loading……
段浩07 陈鑫04 李立堂11
标准数据库
SQL数据库查询语句范例
SQ基础查询(一) 选择列表选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。
1、选择所有列例如,下面语句显示testtable表中所有列的数据:Select * FROM testtable2、选择部分列并指定它们的显示次序查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。
例如:Select nickname,email FROM testtable3、更改列标题在选择列表中,可重新指定列标题。
定义格式为:列标题=列名列名列标题如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列标题:Select 昵称=nickname,电子邮件=email FROM testtable4、删除重复行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和cityta ble表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定:Select username,citytable.cityid FROM usertable,citytableWhere usertable.cityid=citytable.cityid在FROM子句中可用以下两种格式为表或视图指定别名:表名 as 别名表名别名例如上面语句可用表的别名格式表示为:Select username,b.cityid FROM usertable a,citytable b Where a.cityid=b.cityidSelect不仅能从表或视图中检索数据,它还能够从其它查询语句所返回的结果集合中查询数据。
第4章_结构化查询语言SQL-6学时
说明1:
SELECT S••F联Tro接Um条D短件E语:N:两T后.个学面表接号进多行,姓个联表名接时查,,性询两别的个前,表成提之是绩间一用;定逗有号“隔相开同。” FROM STUDENT,S的C字O段R名E。; WHERE 成•联绩接>的8方0法A:如N:D表“名Ss1Tt.u字Ud段eDn名tE.学=N表号T名=.学s2c.字o号r段e.=学名S号C”ORE.学号
无条件查询小结:
6)结果排序 【例】查询显示COURSE表中的所有信息,并按学分 升序排序。
SELECT * FROM COURSE ORDER BY 学分
2、单表条件查询----SELECT … FROM …WHERE …
【格式】SELECT [ALL | DISTINCT] <字段列表> FROM <表> [WHERE <条件表达式> ]
1975~1979,IBM San Jose Research Lab的关系数据库管 理系统原型System R实施了这种语言
SQL-86是第一个SQL标准
(ANSI)
SQL-89、SQL-92(SQL2)、SQL-99(SQL3) (ANSI)
●现状:大部分DBMS产品都支持SQL,成为操作数据库的标 准语言
第四章 结构化查询语言SQL
本章主要内容
4.1 数据查询 4.2 数据操作 4.3 数据定义 本章作业
SQL语言的基本概述
●SQL:Structured Query Language 缩写
结构化查询语言,目前关系型数据库的通用语言。
●SQL的发展
1974年,由Boyce和Chamberlin提出
关系数据库标准语言SQ
WHERE (职工.仓库号=仓库.仓库号) AND (工资>1230)
例4.7 找出工作在面积大于400的仓库的职工 号以及这些职工工作所在的城市. 分析 条件:面积>400 联接条件:(职工.仓库号=仓库.仓库号) 查询涉及表:仓库,职工 查询结果字段:职工号,城市 语句:SELE 职工号,城市 FROM 仓库,职工 WHERE;
(面积>400) AND (职工.仓库号=仓库.仓库号)
3、嵌套查询
外查询的条件来自内查询的结果
在SQL语句中,一个SELECT-FROM-WHERE语句称 为一个查询块。将一个查询块嵌套在另一个查询块的 WHERE子句或HAVING短语的条件中的返回多个值 NOT IN :属于关系 联接条件:公共字段名 IN SELE 公共字段名 (相当于联接中条件:表1.公共字段名=表2.公共字 段名)
6、简单的计算查询
SQL不仅具有一般的检索能力,而且还有计 算方式的检索 用于计算检索的函数: COUNT()--- ------计数 SUM()--------------求和 AVG()---------求平均值 MAX()---------求最大值 MIN()----------求最小值
查询产生新字段
例4.10 找出和职工E4工资相同的所有职工. SELE 职工号 FROM 职工 WHERE 工资 =(SELE 工资 FROM 职工 WHERE 职工号 =“E4”) 注意:= 与 IN 之间的关系,等号可以用IN 来 替换,而IN不能用=替换 =:返回的值是一个具体的值 IN:返回的是多个值
4、几个特殊运算符
第四章 关系数据库标准语言SQL
罗盛
一、SQL概述
数据库第4章 SQL语言基础及数据定义功能
第4章SQL语言基础及数据定义功能用户使用数据库时需要对数据库进行各种各样的操作,如查询数据,添加、删除和修改数据,定义、修改数据模式等。
DBMS必须为用户提供相应的命令或语言,这就构成了用户和数据库的接口。
接口的好坏会直接影响用户对数据库的接受程度。
数据库所提供的语言一般局限于对数据库的操作,它不是完备的程序设计语言,也不能独立地用来编写应用程序。
SQL(Structured Query Language,结构化查询语言)是用户操作关系数据库的通用语言。
虽然叫结构化查询语言,而且查询操作确实是数据库中的主要操作,但并不是说SQL只支持查询操作,它实际上包含数据定义、数据查询、数据操作和数据控制等与数据库有关的全部功能。
SQL已经成为关系数据库的标准语言,所以现在所有的关系数据库管理系统都支持SQL。
本章将主要介绍SQL语言支持的数据类型以及定义基本表和索引的功能。
4.1 SQL语言概述SQL语言是操作关系数据库的标准语言,本节介绍SQL语言的发展过程、特点以及主要功能。
4.1.1 SQL语言的发展最早的SQL原型是IBM的研究人员在20世纪70年代开发的,该原型被命名为SEQUEL (Structured English QUEry Language)。
现在许多人仍将在这个原型之后推出的SQL语言发音为“sequel”,但根据ANSI SQL委员会的规定,其正式发音应该是“ess cue ell”。
随着SQL语言的颁布,各数据库厂商纷纷在其产品中引入并支持SQL语言,尽管绝大多数产品对SQL语言的支持大部分是相似的,但它们之间还是存在一定的差异,这些差异不利于初学者的学习。
因此,我们在本章介绍SQL时主要介绍标准的SQL语言,我们将其称为基本SQL。
从20世纪80年代以来,SQL就一直是关系数据库管理系统(RDBMS)的标准语言。
最早的SQL标准是1986年10月由美国ANSI(American National Standards Institute)颁布的。
数据库SQL查询语句
一、简单查询语句1. 查看表结构SQL>DESC emp;2. 查询所有列SQL>SELECT * FROM emp;3. 查询指定列SQL>SELECT empmo, ename, mgr FROM emp;SQL>SELECT DISTINCT mgr FROM emp; 只显示结果不同的项4. 查询指定行SQL>SELECT * FROM emp WHERE job='CLERK';5. 使用算术表达式SQL>SELECT ename,sal*13+nvl(comm,0) FROMemp;nvl(comm,1)的意思是,如果comm中有值,则nvl(comm,1)=comm; comm中无值,则nvl(comm,1)=0。
SQL>SELECT ename, sal*13+nvl(comm,0) year_sal FROM emp; (year_sal为别名,可按别名排序)SQL>SELECT * FROM emp WHERE hiredate>'01-1月-82';6. 使用like操作符(%,_)%表示一个或多个字符,_表示一个字符,[charlist]表示字符列中的任何单一字符,[^charlist]或者[!charlist]不在字符列中的任何单一字符。
SQL>SELECT * FROM emp WHERE ename like 'S__T%';7. 在where条件中使用InSQL>SELECT * FROM emp WHERE job IN ('CLERK','ANAL YST');8. 查询字段内容为空/非空的语句SQL>SELECT * FROMemp WHERE mgr IS/IS NOT NULL;9. 使用逻辑操作符号SQL>SELECT * FROM emp WHERE (sal>500 or job='MANAGE') and ename like 'J%';10. 将查询结果按字段的值进行排序SQL>SELECT * FROM emp ORDER BY deptno, sal DESC; (按部门升序,并按薪酬降序)二、复杂查询1. 数据分组(max,min,avg,sum,count)SQL>SELECT MAX(sal),MIN(age),A VG(sal),SUM(sal) from emp;SQL>SELECT * FROM emp where sal=(SELECT MAX(sal) from emp));SQL>SELEC COUNT(*) FROM emp;2. group by(用于对查询结果的分组统计)和having子句(用于限制分组显示结果)SQL>SELECT deptno,MAX(sal),A VG(sal) FROM emp GROUP BY deptno;SQL>SELECT deptno, job, A VG(sal),MIN(sal) FROM emp group by deptno,job having A VG(sal)<2000;对于数据分组的总结:a. 分组函数只能出现在选择列表、having、order by子句中(不能出现在where中)b. 如果select语句中同时包含有group by, having, order by,那么它们的顺序是group by, having, order by。
数据库应用第4章 SQL复杂查询
连接的分类
连接分为4种类型:内连接,外连接, 连接分为 种类型:内连接,外连接, 种类型 交叉连接,自然连接。 交叉连接,自然连接。 内连接:使用关键字inner,仅显示两个 内连接:使用关键字 , 连接表中匹配的行, 可以省略。 连接表中匹配的行,inner可以省略。 可以省略 外连接:使用关键字outer,有左外连接、 外连接:使用关键字 ,有左外连接、 右外连接和完全外连接三种。 右外连接和完全外连接三种。
左外连接:left outer,结果集中包含左 左外连接: , 表中所有行及右表中匹配的行。 表中所有行及右表中匹配的行。 右外连接: 右外连接:right outer,结果集中包含 , 右表中所有行及左表中匹配的行。 右表中所有行及左表中匹配的行。 完全外连接: 完全外连接:full outer,结果集中包括 , 连接表中的所有行,不管它们是否匹配。 连接表中的所有行,不管它们是否匹配。
use xscj 学号,姓名,专业名, select 学号,姓名,专业名,总学分 into communication_xs from xs 专业名='通信工程' ='通信工程 where 专业名='通信工程'
Exe3:在xscj数据库中, Exe3:在xscj数据库中,查询选修了 数据库中 101号课程 成绩大于等于80 号课程, 80分的计 101号课程,成绩大于等于80分的计 算机专业的学生情况, 算机专业的学生情况,并将查询结 果放入xs_101表中。 xs_101表中 果放入xs_101表中。
MAX: MAX:求最大值 MIN: MIN:求最小值 SUM: SUM:求和 求选修101 101课程的学生平均成绩 例4-8 求选修101课程的学生平均成绩
关系数据库查询语言SQL
关系数据库查询语⾔SQL授课⽅式:以下所有的例⼦都在sql server 中进⾏现场调试其执⾏结果,或者让学⽣上讲台练习,让学⽣体会其具体的含义第四章关系数据库查询语⾔SQL(8学时)第1节关系数据库标准语⾔SQL ——查询部分⼀、SQL概述1.SQL标准SQL(Structured Query Language):结构化数据库查询语⾔。
SQL作为⼀个ANSI标准,现在最新的标准是SQL99!是介于关系代数和关系演算之间的结构化查询语⾔,功能包括数据查询(Data Query )、数据操纵(Data Manipulation)、数据定义(Data Definition)、数据控制(Data Control)2.SQL的特点1)综合统⼀SQL语⾔集数据定义语⾔DDL、数据操纵语⾔DML、数据控制语⾔DCL功能于⼀体,语⾔风格统⼀。
可独⽴完成数据库⽣命周期中的全部活动,包括:定义关系模式、建⽴数据库、插⼊数据、查询、更新、维护、数据库重构、数据库安全性控制等⼀系列操作要求,为数据库应⽤系统开发提供了良好的环境。
由于关系模型中实体间连续军⽤关系表⽰,这种数据结构单⼀性带来了数据操作的统⼀,查找、插⼊、删除、修改等每⼀种操作只需要⼀种操作符,从⽽克服了⾮关系系统由于信息表⽰⽅式多样性带来的操作复杂性。
2)⾼度⾮过程化SQL语⾔只要提出“做什么”,⽆须指明“怎么做”!!⽤户⽆须了解存取路径,存取路径的选择及SQL语句的操作过程由系统⾃动完成。
减轻了⽤户的负担,提⾼了数据独⽴性。
3)⾯向集合的操作⽅式Sql 语⾔采⽤集合操作⽅式,不仅操作对象、查询结果可以是元组集合,⽽且⼀次插⼊、删除、更新操作的对象可是元组的集合。
4)以同⼀种语法结构提供两种使⽤⽅式既是⾃含式语⾔,⼜是嵌⼊式语⾔。
⾃含式语⾔:能独⽴的⽤于联机交互的使⽤⽅式,⽤户可以在终端键盘上直接键⼊SQL 命令对数据库进⾏操作。
在SQL SERVER 2000种现场演⽰SQL语句的操作。
vf第四章
4.2 SQL的定义
4.2.1表的定义
1、定义表结构语句
格式: CREATE TABLE|DBF <表名> [FREE] (<字段名1> <字段类型> [(宽度[,小数位数])][<字段有效性规则>] (<字段名2> <字段类型> [(宽度[,小数位数])][<字段有效性规则>]„) |FROM ARRAY <数组名>
12
功能:修改<表名>所指定的表结构。可以添加(ADD)指 定的新字段,或修改(ALTER)指定的已存在字段的字段 类型、宽度、有效性规则、错误信息,定义主关键字和联 系等属性。该格式不能用来修改字段名,不能用来删除字 段,也不能用来删除已定义的规则。
13
例4.3 在命令窗口中执行以下命令: ALTER TABLE 学生 ALTER 姓名 C(8) ALTER 性别 C(2) DEFAULT “女” CHECK 性别=“男”; OR 性别="女" ALTER TABLE 学生 ADD 联系电话 C(11)
28
例4.10用UPDATE命令将“选修”表中学号为 “09010001”学生的“C001”号课程的成绩调整为 95分。
UPDATE 选修 SET 成绩=95 WHERE 学号 ="09010001" AND 课程号="C001" Replace all 成绩 with 95 for 学号="09010001" AND 课程号="C001"
29
4.3.2 删除数据
格式: DELETE FROM TableName [WHERE Condition] 说明: FROM 指定从哪个表中删除数据, WHERE指定被删除记录所满足的条件,若不是 用WHERE子句,则删除该表中的全部记录 例如: delete from 职工 where 仓库号= "WH7" 或 USE 职工 delete for 仓库号= "WH7"
SQL教程(四)
数据查询-空行常量列 数据查询 空行常量列
查询空行 SELECT SName FROM Students WHERE SEmail IS NULL
思考:非空行怎么查?
使用常量列 SELECT 姓名=SName,地址= SAddress,'河北新龙' AS 学校 名称 FROM Students
7/38
7
数据查询-基础 数据查询 基础
查询全部的行和列 SELECT * FROM Students 查询部分行 SELECT SCode,SName,SAddress FROM Students WHERE SAddress = '河南新乡' SELECT SCode,SName,SAddress FROM Students WHERE SAddress <> '河南新乡'
2/38
2
目标
理解查询的机制 使用SELECT语句进行条件查询 使用 语句进行条件查询 在查询中返回限制行, 在查询中返回限制行,进行查询排序 在查询中使用表达式, 在查询中使用表达式,运算符和函数
3/38
3
什么是查询? 什么是查询?
SELECT * FROM SALES
查询请求 查询结果集 Application Logic SQL SERVER
17/38 17
系统函数
函数名 CONVERT 描述 用来转变数据类型 举例 SELECT CONVERT (VARCHAR (5), 12345) 返回:字符串12345 SELECT CURRENT_USER 返回:你登录的用户名 SELECT DATALENGTH ('中国A盟') 返回:7 SELECT HOST_NAME() 返回:你所登录的计算机的名字 SELECT SYSTEM_USER 返回:你当前所登录的用户名 SELECT USER_NAME(1) 返回:从任意数据库中返回"dbo"
数据库原理及应用-第4章-SQL语言
建立学生表student,由学号、姓名、性别、年龄 、系别5个属性组成.
CREATE TABLE student
(Sno char(8) primary key, Sname char(20) not null ,
Ssex char(1) default ‘男’, Sage int check(Sage>=0 and Sage <=120),
Transact-SQL命令格式的约定
在Transact-SQL语言的命令格式中,
[ ]括起来的内容表示是可选的;
[,…n]表示重复前面的内容;
< >括起来表示在实际编写语句时,用相应的内容替代;
{ }括起来表示是必选的; 类似A|B的格式:表示A和B只能选择一个,不能同时都 选。
数据类型
系统数据类型 SQL Server预先定义好的,可以直接使用。
选择表中的若干行
1)消除重复的行:DISTINCT
1. 查询所有选修过课的学生的学号 SELECT Sno FROM SC
等价于:
SELECT ALL Sno FROM SC
结果中保留了重复的行
SELECT DISTINCT Sno FROM SC
结果中消除了重复的行
2)查询满足条件的元组
通过WHERE子句实现 常用的查询条件
约束 constraint
约束是SQL Server提供的自动保持数据库完整 性的一种方法 。
主键约束 primary key 主键能够唯一地确定表中的每一条记录,主键不能取空值。 主键约束可以保证实体的完整性。
唯一性约束 unique •唯一性约束用于指定一个或多个列的组合值具有唯一 性,以防止在列中输入重复的值。 •使用唯一性约束的字段允许为空值; •一个表中可以允许有多个唯一性约束; •可以把唯一性约束定义在多个字段上;
