⑴ 在sql中使用子查询需要注意哪些事项
多练习很重要,很多子查询能做的工作用联接也可以做,SELECT语句有时候联结还会好理解一点。不过如果子查询需要用到一些函数的时候联接就不太方便,如MAX(),AVG()这些,如果是INSERT,UPDATE,DELETE的话也不能用
⑵ sql简单查询语句
1、首先打开数据库,建立好表。
⑶ SQL(查询)一些简单的问题
1.select first_name,salary from employees where salary>=7500;
2.select first_name,dept_id from employees where em_id=116;
3.select first_name,salary from employees where salary between 5000 and 12000;
4.select first_name,dept_id from employees where dept_id in(30,90);
5.select first_name,job_id from employees where mgr_id is null;
6.select first_name,salary from employees where comm is not null;
7.select first_name from employees where first_name like '_a%';
8.select first_name,salary,comm,(salary+comm)*12 year_money from employees;
⑷ sql server 2000的查询方式有哪些
这个?
sql查询方式总结
简单查询
1,检索表中所有列
select * from <表名>
2,检索表中特定列
select <列名表列> from <表名>
3,重排列顺序
select cloumn_3,cloumn_1 from <表名>
4,用单引号加入字符串
select cloumn_3,cloumn_1 '所要加的字段名' from<表名>
5,改变列标题
select cloumn_3,cloumn_1 as '新列名' from <表名>
6,消除重复行
select distinct cloumn_3 from <表名>
7,返回有限的结果
select top n [percent]* from <表名>
8,使用算数运算符操纵列
example:
select cloumn_1+'('+cloumn_2+')' [as] '新列名',cloumn_3*cloumn_4 '新列名' from <表名>
9,使用函数操纵列
--常用函数有substring()[取子字符串]、getdate()[返回当前日期和时间]、year(data)[返回日期中的年份]、convert()[类型转换]
example:
select distinct substring(title,1,5) from pubs
又如:返回当前服务器的用户名
select 'login'=suser_sname()
再如查询pubs数据库的titles表中所有书的价格信息,对于书名长度超过38个字符的,将其余部分截掉
use pubs
select convert(char(38),title)+'IS $'+ convert(varchar(10),price) from titles
选择行查询
1,基于比较选择行
example:
select 价格,* from goods where 价格>=1000
2,基于范围选择行
select * from goods where 价格 between 20 and 2000
--3,基于列表选择行
select * from goods where 品名 not in('方正A','联想')
4,基于字符串选择行
--百分号(%):代表任意多个字符
--下划线(_):代表单个字符
--中括号([]):代表指定范围内的单个字符
--复合符号([^]):代表不在指定范围内的单个字符
--5,基于未知选择行
--使用IS NULL IS not NULL
select 姓名,职业 from students where 联系电话 IS null
--6,基于多个搜索条件选择行
select 姓名,职业,联系电话,地址 from students
where (联系电话 like '%3%'or 联系电话 like '%5%')
and (地址 like '河南')
--7,结果排序
select * from goods
select 价格 from goods
order by 价格 ASC
生成总结查询
使用SQL查询语言,用户可以方便地为查询到的结果进行分组、计算或对其进行过滤等,从而得到总结性的数据结果集。
1,使用集合函数进行统计
(1)AVG 该函数用于计算查询结果的平均值。其语法格式如下:
AVG([all | distinct] 算数表达式) 其中各参数的意义如下:
all:全部数据都参与计算,为默认的选项。
distinct:消除重复的数据,只计算不同的值的平均值。
算数表达式:该表达式即可以只涉及一列,也可涉及多列
example:要计算Sales数据库中Goods表中的所有货品的平均价格
use Sales
select avg(价格) from goods
(2)min、max 这两个函数用于查询最小值和最大值,语法格式如下:
min([all | distinct] 算数表达式)
(3)sum 该函数用于计算查询到的数据值得总和
example:计算Pubs数据库中的titles表中所有商业类书籍的平均预付款和本年度迄今为止的全部销售额。
use pubs
select avg(advance),sum(ytd_sales) from titles where type='business'
(4)count 该函数可以计算查询到的结果的数目
example:查询sales数据库中customers表中客户地址的数量。
use sales
select count(distinct 地址) from customers
2,数据分组
(1)group by子句
在SQL Sever中,可以按照一定的条件对查询到的结果进行分组,然后对每一组数据计算统计信息。
说明:1,使用group by 子句能按列或表达式分组,一般与集合函数一起使用,每组差生一个值。
2,在包含group by子句的查询语句中,select语句后的所有字段列表,除集合函数外,都应该包含 在group by子句中,否则会出错。
3,对数据进行分组时,也可以用条件进行选择,这就是having子句。
(2)having子句
having子句可以用来向使用Group by子句的查询中添加过滤准则,即检查分组之后的各组是否满足条件。having子句语法与where子句一样,但两者之间还是存在一定区别,具体如下:
1,where子句的作用是检查每条记录是否满足条件,而having子句是检查分组之后的各组是否满足条件。
2,having子句是针对Group by子句的,没有Group by子句时不能使用having子句。
3,having子句可以在条件中包含集合函数,但where子句不行
exam:显示sales数据库中Goods表中存货量大于70的货品及库存数量,具体代码如下:
use sales
----select 品名,库存数量 from Goods where 库存数量>70
select 品名,库存数量=sum(库存量) from Goods group by 品名 having sum(库存量)>7
①where子句排出不满足条件的行
②group by子句收集满足where子句的搜索行,并将这些行分组
③having子句排出不符合其条件的组
此外,使用group by all能够显示所有的组,即便是被where子句排除的组也将会显示出来
3,计算汇总数据
(1)compute子句
可以使用该子句计算汇总数据,该汇总数据将作为附加的汇总列出现在结果集的最后
exam:在pubs数据库的titles表中查询类型是以cook结尾的书的价格和总价
use pubs
select type,price from titles where type like '%cook'
order by type,price
compute sum(price)
(2)compute by 子句
在查询中使用该子句可以按给定的条件将查询结果分组,并为每种结果计算汇总数据。
exam:在pubs数据库的titles表中查询类型是以cook结尾的书的价格和每种类型的总价
use pubs
select type,price from titles where type like '%cook'
order by type,price
compute sum(price) by type
(3)计算汇总数据时的注意事项
在使用compute子句和compute by 子句时,应注意下面的限制条件:
1,关键字distinct不允许同集合函数一起使用
2,compute子句中的列必须在select后面的选择列表
3,select into 不能和compute子句一块使用
4,若使用compute by子句,则必须使用order by子句。此时,compute by子句后出现的列必须与order by后出现的列相同,最少也应该是其子集,而且必须具有相同的从左到右的顺序并且以相同的表达式开头,不能跳过任何表达式。
http://hi..com/wmaple/blog/item/6de746d0d3ba708aa1ec9c1b.html
⑸ 怎样从简单数据库用sql语句查询数据
查询是SQL语言的核心,SQL语言只提供唯一一个用于数据库查询的语句,即SELECT语句。用于表达SQL查询的SELECT语句是功能最强也是最复杂的SQL语句,它提供了很多选项和使用方法。SELECT语句的命令格式如下:
SELECT查询语句是由七个子句构成,其中SELECT和FROM子句是一个完整SELECT查询语句必须要有的,其它的子句可以根据具体需要任选。上述的每个子句功能说明如下:
(1)SELECT子句
列出所有要求SELECT语句进行检索的数据项,这些项可能取自数据库中关系表的列,也可以是SQL在执行查询时进行计算的表达式。这里的ALL和DISTINCT选项,表示查询出的结果中是否容许有内容重复的行出现,缺省时是ALL项,表示容许有重复的行出现,而*则表示查询出所指定关系表中所有的列。
(2)FROM子句
FROM子句列出包含所要查询的数据关系表。
(3)WHERE子句
WHERE子句告诉SQL只查询某些关系表中满足一定要求的行的数据,查询要求由WHERE子句中的查询条件确定。
(4)GROUP BY子句
GROUP BY子句指定当前查询是汇总查询,即不是对根据每行产生一个查询结果,而是对相似的行进行分组,然后再对每组产生一个汇总查询的结果。
(5)HAVING子句
HAVING子句告诉SQL只对由GROUP BY所得到的某些行组的结果进行过滤,选择出满足分组条件的分组。
(6)ORDER BY子句
ORDER BY子句确定是否将查询出的结果按一列或多列中的数据进行排序,缺省时是不排序的。
(7)INTO子句
INTO子句确定是否将查询出的结果存入一张新的关系表中,缺省时只将查询出现的结果显示在屏幕上。这是非标准SELECT语句中的子句,但目前绝大多数实际应用的SQL数据库系统的SQL语言提供了这一选项。
下面是一些使用SELECT查询语句进行数据查询的示例。
例1:列出销售额超过6000元的销售人员的姓名、销售目标和超过销售目标的销售额。
SELECT NAME,QUOTA,(SALES_QUOTA)
FROM SALESREPS
WHERE SALES>6000
例2:查出1999年最后一个季度的订单情况。
SELECT ORDER_NUM,ORDER_DATE,PRODUCT,AMOUNT
FROM ORDERS
WHERE ORDER_DATE BETWEEN "01-OCT-99" AND "31-DEC-99"
例3:查出名称是以ABC开头的产品订单情况。
SELECT ORDER_NUM,ORDER_DATE,PRODUCT,AMOUNT
FROM ORDERS
WHERE PRODUCT LIKE "ABC%"
例4:列出所有的销售处,按区域名字母顺序排列。
SELECT CITY,REGION
FROM OFFICE
ORDER BY REGION ASC
在这里ASC表示升序,如果表示降序可用DESC。
例5:列出每个销售人员以及他们工作的城市和区域的情况。
SELECT NAME,CITY,REGION
FROM SALESREPS,OFFICE
WHERE REP_OFFICE=OFFICE
例6:查出有多少销售员的销售额超过了其目标额,以及他们的销售额总和。
SELECT COUNT(NAME),SUM(SALES)
FROM SALESREPS
WHERE SALES>QUOTA
⑹ 关于SQL查询问题
1,
select 'S1' + CONVERT(varchar(8), GETDATE(), 112) + convert(varchar(4),convert(int,1000 + rand()*9000)) + '@jbit.com'
2,
在查询分析器中,输入上边的代码,直接点保存,在弹出的窗口里输入文件的名称“使用函数查询学生相关信息.sql”,点确定,就行了。
⑺ 一般在写SQL时需要注意哪些问题,可以提高查询的效率
1.尽量使用索引,索引很多情况下可以提高查询效率
2.避免使用or语句
3.避免使用not in语句
4.可以使用exists和not exists代替in和not in语句
……
还有很多种情况 你网上可以很容易查到
⑻ 在编写SQL查询语句时关于性能方面有哪些需要注意的
用字段名代替*;尽量不用distinct,用分组代替;少用子查询;合理添加索引,定期删除碎片。
⑼ sql数据库问题,简化查询语句
一、
简单查询
简单的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,citytable.cityid
FROM
usertable,citytable
WHERE
usertable.
本篇文章来源于
黑软基地-中国最大的黑客教程计算机安全教程下载基地
原文链接:
http://www.hackvip.com/article/sort056/sort058/kkkcc.com-2297.html
⑽ sql中多表联合查询关键部分应该注意什么
1
select a.name from a where a.name not in (select b.name from b)
或者
1
select a.name from a where not exists(select 1 from b where b.name=a.name)
或者
1
select a.name from a left join b on a.name=b.name where b.name is null