如何使用SQL查询语句
一、 简单查询 简单的TransactSQL查询只包括选择列表、FROM子句和WHERE子句。
它们分别说明所查询列、查询的表或视图、以及搜索条件等。例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。
SELECT nickname,emailFROM testtableWHERE name=’张三’(一) 选择列表选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。 1、选择所有列例如,下面语句显示testtable表中所有列的数据:SELECT *FROM testtable 2、选择部分列并指定它们的显示次序查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。
例如:SELECT nickname,emailFROM testtable 3、更改列标题在选择列表中,可重新指定列标题。定义格式为:列标题=列名列名 列标题如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列标题:SELECT 昵称=nickname,电子邮件=emailFROM testtable 4、删除重复行SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认为ALL。
使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。 5、限制返回的行数使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n是表示一百分数,指定返回的行数等于总行数的百分之几。
例如:SELECT TOP 2 *FROM testtableSELECT TOP 20 PERCENT *FROM testtable(二)FROM子句 FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。
在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定:SELECT username,citytable。
cityidFROM usertable,citytableWHERE usertable。cityid=citytable。
cityid在FROM子句中可用以下两种格式为表或视图指定别名:表名 as 别名表名 别名(二) FROM子句FROM子句指定SELECT语句查询及与查询相关的表或视图。 在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。
在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定:SELECT username,citytable。
cityidFROM usertable,citytableWHERE usertable。cityid=citytable。
cityid在FROM子句中可用以下两种格式为表或视图指定别名:表名 as 别名表名 别名例如上面语句可用表的别名格式表示为:SELECT username,b。 cityidFROM usertable a,citytable bWHERE a。
cityid=b。cityidSELECT不仅能从表或视图中检索数据,它还能够从其它查询语句所返回的结果集合中查询数据。
例如:SELECT a。au_fname+a。
au_lnameFROM authors a,titleauthor ta(SELECT title_id,titleFROM titlesWHERE ytd_sales>10000) AS tWHERE a。au_id=ta。
au_idAND ta。 title_id=t。
title_id此例中,将SELECT返回的结果集合给予一别名t,然后再从中检索数据。
sql简单查询语句
。
。为点分真不容易1 select * from StuInfo2 select 考号,姓名,语文,数学,英语 from StuMarks3 select s1.考号,s1.姓名,s1.性别,s2.计算机基础,*数据库 from StuInfo s1 left join StuMarks s2 on s1.学号=s2.学号 where 专业名!=’计算机’4 select 姓名,学号 from StuMarks where 语文>60 and 数学>60 and 英语>60 and 计算机基础>60 and SQL数据库>605 select max(语文),min(数学),avg(英语) from StuMarks6 select 姓名,语文,数学,英语 from StuMarks where (语文+数学+英语+计算机基础+SQL数据库)>4007 select 姓名,SQL数据库 from StuMarks order by SQL数据库 desc。
SQL查询语句有哪些
查询语句只有一种SELECT 。
FROM WHERE 。 (GROUP BY 。
ORDER BY 。)只是根据想要的结果不一样,而查询的内容会稍有修改。
比如FROM的表名,可以不是一张表,而是一个SELECT查询的结果作为一张表。同样,查询统计分组汇总,可以增加SUM(), MIN(), MAX()等函数配合group by使用进行分组统计。
WHERE 条件除了简单的连接之外,也有IN, NOT IN, EXISTS, NOT EXISTS等。还有,两个SELECT集合可以使用UNION, UNION ALL, MINUS等进行集合的加或者减的操作。
总之如果是查询,就离不开SELECT 。 FROM 。
WHERE。 这样的基本形式。
SQL查询语句,高手进
1、查询“001”课程比“002”课程成绩高的所有学生的学号;select * from (select sid,score from SC where Cid=’1′) Student,(select Sid,score from SC where Cid=’2′) Course2、查询平均成绩大于60分的同学的学号和平均成绩; select Sid,avg(score) from SC group by Sid having avg(score)>603、查询所有同学的学号、姓名、选课数、总成绩;select Sid,Sname,Cid,score from Student inner join SC on(*=*) inner join Course on (*=*)4、查询姓“李”的老师的个数;select count(*) from Teacher where Tname like ‘李%’5、查询没学过“叶平”老师课的同学的学号、姓名;select Sid,Sname from Student inner join SC on (*=*) inner join Course on(*=*) inner join Teacher on (*=*) where * is null6、查询学过“”并且也学过编号“”课程的同学的学号、姓名;select SID,Sname7、查询学过“叶平”老师所教的所有课的同学的学号、姓名;select Sid,Sname from Student where Sid in (select Sid from SC ,Course ,Teacher where *=* AND *=* AND *=’叶平’ group by Sid having count(*)=(select count(Cid) from Course,Teacher where *=* AND Tname=’叶平’))8、查询课程编号“”的成绩比课程编号“”课程低的所有同学的学号、姓名;9、查询所有课程成绩小于60分的同学的学号、姓名;Select *,* from Student,SC where *=* and *<6010、查询没有学全所有课的同学的学号、姓名; select *,* from Student,SC where *=* group by *,* having count(Cid) <(select count(Cid) from Course) 交个朋友吧!好在大家都是学程序的。
数据库查询语句
没表结构还真不好说,我给你虚构一个吧。
表1名:书。属性:书编号,书名,价格,出版社编号。
表2名:出版社。属性:出版社编号,名称,地址,联系方式。
1 检索所有定价超过20元的书名.select 书名 from 书 where 价格 > 20;2 统计每个出版社, 平均定价 select distinct(出版社编号),avg(价格) from 书 group by 出版社编号;3 出版社书所有定价下调%5 update 书 set 价格 = 价格*95%;4简单的ER 模型 标记连接类型很简单,但是这里不能画图,你画出书和出版社2个实体,他们是一对多关系。一个出版社可能出版一本或者多本书,一本书是由一个出版社出版的。
你根据这个逻辑画出来就行。做出来了吗????。