sql查询语句?
4个回答
展开全部
SELECT <列名列表> [,…n] FROOM <表名>功能:从指定表总选出指定的列
--重复,分组
Select distinct(Separate) from BigClass
--去除表BigClass重复字段Separate
select min(Id) from International_Data group by Years,Moths,Days,DomesticId having count(*)>1
--查询重复字段Years,Moths,Days,DomesticId中Id最小的
select * from BigClass where BigId in (select Max(BigId) from BigClass group by Separate) --子查询
--得到表BigClass中BigId最大的不重复Separate的记录数
SELECT <函数名> <列名> FROM <表名> GROUP BY <列名>
--用于将指定列的值按某种组以指定函数进行运算
SELECT <函数名> <列名> FROM <表名> [GROUP BY ]<列名>HAVING (函数表达式)
--功能:用于选择符合函数表达式的项
select id from id group by cid having count(*)>1
--查询表中id且cid有重复字段
--where条件
SELECT <列名> FROM <表名> WHERE<条件语句>
--功能:从指定表中选出所有符合条件的项
SELECT <列名列表> FROM <表名> WHERE <简单条件>+[AND|OR简单条件]
--功能:同上相似,只是增加查询条件,是查找更精确
SELECT <列名列表> FROM <表名> WHERE <列名> IN<值1,值2,….>
--功能:从指定的表中选择符合给定值的项
select id,mobile,real_name from customers where id between 12749 and 13131
--把customers表中id在12749 and 13131的id,mobile,real_name信息查询出来
select * from pic where dt is not null
--查询表pic中字段dt不为空
select * from pic where dt is null
--查询表pic中字段dt为空
SELECT<列名>FROM<表名>WHERE<列名>IN<sql 字句>
--功能:subquery实现sql字句的嵌套
--ASC,DESC将筛选出来的列按升序或降序排列
SELECT <列名列表> FROM <表名>[WHERE<条件>] ORDER BY<列名>[ASC,DESC]
--功能:将筛选出来的列按升序或降序排列
第一个排序要求:按字段ColName1的值排序.
第二个排序条件是按“ColName2”这个字段
第三个排序条件是按ColName3
select * from TableName ORDER BY CHARINDEX(ColName1,'NY,GB,SN'),ColName2,ColName3
--注:ColName1字段中值有NY、GB、SN等情况,要按先NY,再按GB来排
select * from Freedom_Data order by Cast(ColName1 as int),Cast(ColName2 as int),ColName3 asc
select * from Freedom_Data order by Cast(ColName1 as int) asc,Cast(ColName2 as int) asc,ColName3 asc
--多表联合查询
select LineId,Id,Country from Domestic
union all
select LineId,Id,Country from Freedom
-- 联合查询Domestic,Freedom表的LineId,Id,Country all代表不去除重复
--功能:[SQL语句] UNION [SQL语句]将两个语句中选择的同一列中的不同的值筛选出来
SELECT<表1>.<列名> ,<表2><列名>FROM<表1>OUTER JOIN<表2> ON<表1>.<列>=表2>.<列名>
--功能:实现两个表的外连接
Select Domestic.LineId,Freedom.LineId from Domestic,Freedom where Domestic.Sames=Freedom.Sames
Select Domestic.LineId,Freedom.LineId FROM Domestic inner join Freedom on Freedom.Sames=Domestic.Sames
--功能:实现两个表的内连接 把Domestic,Freedom两个表用Domestic.Sames=Freedom.Sames关联起来显示Domestic.LineId,Freedom.LineId
--通配符
SELECT <列名列表> FROM<表名>WHERE <列名> LIKE{套式}
--功能:从指定表中选择符合套式中的条件的所有项 注:LIKE 通常情况下与通配符分不开,一下是对通配符的介绍:
--1)* 代表多个字符
--例如:a*a 可代表 aba,aBa,ahfklsdha,等
--2)% 代表多个字符
--例如:a%a 可代表aba,aBa,aafdaka,等
--3)?代表单字符
--例如:a?a 可代表 aba,aca,aCa,等
--4)# 代表单数字
--例如:a#a 可代表 a1a,a5a,a0a,等
--5)[charlist] 字符列中的任何单一字符
--例如:[A-Z] 代表a 到 z的26个字母中的任意一个字符 [ALN]代表A或L或N
--6) [!charlist] 或 [^charlist] 代表不再范围之内的任意一个字符
--例如:[!a-z] 代表不再a 到z 范围之内的任意一个字符
select Id,city from Domestic where city like ('%,')
--city结尾为,号在表Domestic中的Id,city字段
select Id,city from Domestic where city not like ('% %')
--city中没有空格在表Domestic中的Id,city字段
SELECT * FROM Persons WHERE City LIKE '[!ALN]%'
--Persons 表中选取City字段不以 "A" 或 "L" 或 "N" 开头的
SELECT * FROM Persons WHERE City LIKE '[ALN]%'
--Persons 表中选取City字段以 "A" 或 "L" 或 "N" 开头的
-- SUM, AVG, COUNT, MAX, MIN 等函数对指定表的列进行操作
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 --最小
--重复,分组
Select distinct(Separate) from BigClass
--去除表BigClass重复字段Separate
select min(Id) from International_Data group by Years,Moths,Days,DomesticId having count(*)>1
--查询重复字段Years,Moths,Days,DomesticId中Id最小的
select * from BigClass where BigId in (select Max(BigId) from BigClass group by Separate) --子查询
--得到表BigClass中BigId最大的不重复Separate的记录数
SELECT <函数名> <列名> FROM <表名> GROUP BY <列名>
--用于将指定列的值按某种组以指定函数进行运算
SELECT <函数名> <列名> FROM <表名> [GROUP BY ]<列名>HAVING (函数表达式)
--功能:用于选择符合函数表达式的项
select id from id group by cid having count(*)>1
--查询表中id且cid有重复字段
--where条件
SELECT <列名> FROM <表名> WHERE<条件语句>
--功能:从指定表中选出所有符合条件的项
SELECT <列名列表> FROM <表名> WHERE <简单条件>+[AND|OR简单条件]
--功能:同上相似,只是增加查询条件,是查找更精确
SELECT <列名列表> FROM <表名> WHERE <列名> IN<值1,值2,….>
--功能:从指定的表中选择符合给定值的项
select id,mobile,real_name from customers where id between 12749 and 13131
--把customers表中id在12749 and 13131的id,mobile,real_name信息查询出来
select * from pic where dt is not null
--查询表pic中字段dt不为空
select * from pic where dt is null
--查询表pic中字段dt为空
SELECT<列名>FROM<表名>WHERE<列名>IN<sql 字句>
--功能:subquery实现sql字句的嵌套
--ASC,DESC将筛选出来的列按升序或降序排列
SELECT <列名列表> FROM <表名>[WHERE<条件>] ORDER BY<列名>[ASC,DESC]
--功能:将筛选出来的列按升序或降序排列
第一个排序要求:按字段ColName1的值排序.
第二个排序条件是按“ColName2”这个字段
第三个排序条件是按ColName3
select * from TableName ORDER BY CHARINDEX(ColName1,'NY,GB,SN'),ColName2,ColName3
--注:ColName1字段中值有NY、GB、SN等情况,要按先NY,再按GB来排
select * from Freedom_Data order by Cast(ColName1 as int),Cast(ColName2 as int),ColName3 asc
select * from Freedom_Data order by Cast(ColName1 as int) asc,Cast(ColName2 as int) asc,ColName3 asc
--多表联合查询
select LineId,Id,Country from Domestic
union all
select LineId,Id,Country from Freedom
-- 联合查询Domestic,Freedom表的LineId,Id,Country all代表不去除重复
--功能:[SQL语句] UNION [SQL语句]将两个语句中选择的同一列中的不同的值筛选出来
SELECT<表1>.<列名> ,<表2><列名>FROM<表1>OUTER JOIN<表2> ON<表1>.<列>=表2>.<列名>
--功能:实现两个表的外连接
Select Domestic.LineId,Freedom.LineId from Domestic,Freedom where Domestic.Sames=Freedom.Sames
Select Domestic.LineId,Freedom.LineId FROM Domestic inner join Freedom on Freedom.Sames=Domestic.Sames
--功能:实现两个表的内连接 把Domestic,Freedom两个表用Domestic.Sames=Freedom.Sames关联起来显示Domestic.LineId,Freedom.LineId
--通配符
SELECT <列名列表> FROM<表名>WHERE <列名> LIKE{套式}
--功能:从指定表中选择符合套式中的条件的所有项 注:LIKE 通常情况下与通配符分不开,一下是对通配符的介绍:
--1)* 代表多个字符
--例如:a*a 可代表 aba,aBa,ahfklsdha,等
--2)% 代表多个字符
--例如:a%a 可代表aba,aBa,aafdaka,等
--3)?代表单字符
--例如:a?a 可代表 aba,aca,aCa,等
--4)# 代表单数字
--例如:a#a 可代表 a1a,a5a,a0a,等
--5)[charlist] 字符列中的任何单一字符
--例如:[A-Z] 代表a 到 z的26个字母中的任意一个字符 [ALN]代表A或L或N
--6) [!charlist] 或 [^charlist] 代表不再范围之内的任意一个字符
--例如:[!a-z] 代表不再a 到z 范围之内的任意一个字符
select Id,city from Domestic where city like ('%,')
--city结尾为,号在表Domestic中的Id,city字段
select Id,city from Domestic where city not like ('% %')
--city中没有空格在表Domestic中的Id,city字段
SELECT * FROM Persons WHERE City LIKE '[!ALN]%'
--Persons 表中选取City字段不以 "A" 或 "L" 或 "N" 开头的
SELECT * FROM Persons WHERE City LIKE '[ALN]%'
--Persons 表中选取City字段以 "A" 或 "L" 或 "N" 开头的
-- SUM, AVG, COUNT, MAX, MIN 等函数对指定表的列进行操作
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 --最小
展开全部
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 Student.SNAME,Course.CNAME,Grade.DEGREE
FROM Student,Course,Grade
WHERE Student.SNO = Grade.SNO,Grade.CNO = Course.CNO;/*连接操作*/
例题:查询"张旭"教师任课的学生成绩。
SELECT CNO,SNO,DEGREE FROM Grade
WHERE CNO=(SELECT Course.CNO FROM Course,Teacher
WHERE Course.TNO=Teacher.TNO and Teacher.TNAME="张旭")
此查询操作为嵌套查询。子查询在上一级查询处理之前求解,即嵌套查询是从里向外处理的,这样,外层查询可以利用内层查询的结果,在此例中首先执行子查询:
SELECT Course.CNO FROM Course,Teacher
WHERE Course.TNO=Teacher.TNO and Teacher.TNAME="张旭"
获得张旭老师讲授课程的课程号(801003),然后执行外查询:
SELECT CNO,SNO,DEGREE FROM Grade
WHERE CNO="801003"
获得"张旭"教师任课的学生成绩。
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 Student.SNAME,Course.CNAME,Grade.DEGREE
FROM Student,Course,Grade
WHERE Student.SNO = Grade.SNO,Grade.CNO = Course.CNO;/*连接操作*/
例题:查询"张旭"教师任课的学生成绩。
SELECT CNO,SNO,DEGREE FROM Grade
WHERE CNO=(SELECT Course.CNO FROM Course,Teacher
WHERE Course.TNO=Teacher.TNO and Teacher.TNAME="张旭")
此查询操作为嵌套查询。子查询在上一级查询处理之前求解,即嵌套查询是从里向外处理的,这样,外层查询可以利用内层查询的结果,在此例中首先执行子查询:
SELECT Course.CNO FROM Course,Teacher
WHERE Course.TNO=Teacher.TNO and Teacher.TNAME="张旭"
获得张旭老师讲授课程的课程号(801003),然后执行外查询:
SELECT CNO,SNO,DEGREE FROM Grade
WHERE CNO="801003"
获得"张旭"教师任课的学生成绩。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select * from 表名 where 条件
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select * from 表名
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询