以下语句 ,在SQL Server 中测试通过,如果你用的别的数据库,可能需要做其他调整
查询女职工平均工资不低于600元的车间名称。
select DNAME
from DEPT
where DEPTDNO in ( select DNO from EMP where SEX = '女' group by DNO having avg(SALARY) >= 600 )
查询各车间中平均工资最低的车间编号
select top 1 DNO
from EMP
group by DNO
order by avg(SALARY)
一、
简单查询
简单的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,citytablecityid
from
usertable,citytable
where
usertable
本篇文章来源于
黑软基地-中国最大的黑客教程计算机安全教程下载基地
原文链接:
>
SELECT语句的基本形式为
SELECT
[ALL|DISTINCT]<目标列表达式>[,<目标列表达式>···]
FROM
<表名或视图名>[,<表名或视图名>···]
[WHERE
<条件表达式>]
语句的功能是根据WHERE子句中的条件表达式,从基本表(或视图)中找出满足条件的元组,按SELECT子句中的目标列,选出元组中的目标列形成结果表。
SQL语句对数据库的 *** 作十分灵活方便,原因在于SELECT语句中的成分丰富多样,有许多可选形式,尤其是目标列和目标表达式,下面用例子来详细说明,例子涉及的是"学生-课程"数据库,其关系模式集如下:
学生信息表Student(SNO,SNAME,SSEX,SBIRTHDAY
CLASS)
教师信息表Teacher(TNO,TNAME,TSEX,TBIRTHDAY,DEPART)
课程信息表Course(CNO,CNAME,TNO)
成绩表Grade(SNO,CNO,DEGREE)
例题:查询Student表所有学生信息。
SELECT
FROM
Student;/选择 *** 作/
例题:查询Student表中所有学生的学号和姓名。
SELECT
SNO,SNAME
FROM
Student;/投影 *** 作/
例题:查询Grade表中成绩在60到80之间的所有记录。
SELECT
FROM
Grade
WHERE
degree
BETWEEN
60
AND
80;/选择 *** 作/
例题:查询Grade表中成绩为85、86、88的记录。
SELECT
FROM
Grade
WHERE
degree
IN(85,86,88);/选择 *** 作/
例题:查询所有学生的SNAME,CNAME和DEGREE。
SELECT
StudentSNAME,CourseCNAME,GradeDEGREE
FROM
Student,Course,Grade
WHERE
StudentSNO
=
GradeSNO,GradeCNO
=
CourseCNO;/连接 *** 作/
例题:查询"张旭"教师任课的学生成绩。
SELECT
CNO,SNO,DEGREE
FROM
Grade
WHERE
CNO=(SELECT
CourseCNO
FROM
Course,Teacher
WHERE
CourseTNO=TeacherTNO
and
TeacherTNAME="张旭")
此查询 *** 作为嵌套查询。子查询在上一级查询处理之前求解,即嵌套查询是从里向外处理的,这样,外层查询可以利用内层查询的结果,在此例中首先执行子查询:
SELECT
CourseCNO
FROM
Course,Teacher
WHERE
CourseTNO=TeacherTNO
and
TeacherTNAME="张旭"
获得张旭老师讲授课程的课程号(801003),然后执行外查询:
SELECT
CNO,SNO,DEGREE
FROM
Grade
WHERE
CNO="801003"
获得"张旭"教师任课的学生成绩。
sql查询语句格式是:
select[列名]
from[表名]
where[条件]
selectfromtable,这种是最基本也是最常用的。
结构化查询语言(StructuredQueryLanguage)简称SQL(发音:/ˈeskjuːˈel/"S-Q-L"),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。
结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统,可以使用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。
1986年10月,美国国家标准协会对SQL进行规范后,以此作为关系式数据库管理系统的标准语言(ANSI
X3
135-1986),1987年得到国际标准组织的支持下成为国际标准。不过各种通行的数据库系统在其实践过程中都对SQL规范作了某些编改和扩充。所以,实际上不同数据库系统之间的SQL不能完全相互通用。
SQL 一词实际上是 "Structured Query Language" 结构式查询语言的缩写,是用于对存放在计算机数据库中的数据进行组织、管理和检索的一种工具;是一种特定类型的数据库 -- 关系数据库。而控制这种数据库的计算机程序就是我们常说的 DBMS-- 数据库管理系统。譬如:SQL Server、Oracle、Sybase、DB2 等等。当用户想要检索数据库中的数据时,就通过 SQL 语言发出请求,接着 DBMS 对该 SQL 请求进行处理并检索所要求的数据,最后将其返回给用户,此过程被称作为数据库查询,这也就是数据库查询语言这一名称的由来。
SQL 并不是象 C、COBOL 和 Fortran 语言那样的完整的计算机语言。SQL 没有用于条件测试的 IF 语句,也没有用于程序分支的 Goto 语句以及循环语句 For 或 Do。确切的讲,SQL 是一种数据库子语言,SQL 语句可以被嵌入到另一种语言中,从而使其具有数据库存取功能。SQL 也非严格的结构式语言,它的句法更接近英语语句,因此易于理解,大多数 SQL 语句都是直述其意,读起来就象自然语言一样明了。SQL 还是一种交互式查询语言,允许用户直接查询存储数据,利用这一交互特性,用户可以在很短的时间内回答相当复杂的问题,而同样问题若让程序员编写相应的报表程序则可能要用几个星期甚至更长时间。
create table users
(
id int identity,
productid nvarchar(50)
)
insert into users values('1000,1001')
insert into users values('1000,1002,1001')
insert into users values('1001')
create table product
(
productid nvarchar(50),
price int
)
insert into product values('1000',10)
insert into product values('1001',20)
insert into product values('1002',15)
go
create function test
(
@str nvarchar(20)
)
returns int
as
begin
declare @price int
set @price=0
declare @temp table(value nvarchar(20))
while(CHARINDEX(',',@str)>0)
begin
insert into @temp values(SUBSTRING(@str,1,charindex(',',@str)-1))
set @str=SUBSTRING(@str,CHARINDEX(',',@str)+1,LEN(@str))
end
insert into @temp values(@str)
select @price = SUM(price) from product inner join @temp on productproductid=[@temp]value
return @price
end
go
select id,dbotest(productid) from users
以上就是关于数据库 SQL 查询语句全部的内容,包括:数据库 SQL 查询语句、SQL数据库语句查询、sql查询语句等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)