当前位置:首页 » 编程语言 » sql列号查询

sql列号查询

发布时间: 2024-09-19 14:58:07

‘壹’ 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查询某一个表的第N列的列名

select name from syscolumns where id=object_id('表名') and colid=N值

‘叁’ 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) FROM emp;

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条件中使用In

SQL>SELECT * FROM emp WHERE job IN ('CLERK','ANALYST');

8. 查询字段内容为空/非空的语句

SQL>SELECT * FROM emp 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),AVG(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),AVG(sal) FROM emp GROUP BY deptno;

SQL>SELECT deptno, job, AVG(sal),MIN(sal) FROM emp group by deptno,job having AVG(sal)<2000;

对于数据分组的总结:

a. 分组函数只能出现在选择列表、having、order by子句中(不能出现在where中)

b. 如果select语句中同时包含有group by, having, order by,那么它们的顺序是group by, having, order by。

c. 在选择列中如果有列、表达式和分组函数,那么这些列和表达式必须出现在group by子句中,否则就是会出错。

使用group by不是使用having的前提条件。

3. 多表查询

SQL>SELECT e.name,e.sal,d.dname FROM emp e, dept d WHERE e.deptno=d.deptno order by d.deptno;

SQL>SELECT e.ename,e.sal,s.grade FROM emp e,salgrade s WHER e.sal BETWEEN s.losal AND s.hisal;

4. 自连接(指同一张表的连接查询)

SQL>SELECT er.ename, ee.ename mgr_name from emp er, emp ee where er.mgr=ee.empno;

5. 子查询(嵌入到其他sql语句中的select语句,也叫嵌套查询)

5.1 单行子查询

SQL>SELECT ename FROM emp WHERE deptno=(SELECT deptno FROM emp where ename='SMITH');查询表中与smith同部门的人员名字。因为返回结果只有一行,所以用“=”连接子查询语句

5.2 多行子查询

SQL>SELECT ename,job,sal,deptno from emp WHERE job IN (SELECT DISTINCT job FROM emp WHERE deptno=10);查询表中与部门号为10的工作相同的员工的姓名、工作、薪水、部门号。因为返回结果有多行,所以用“IN”连接子查询语句。

in与exists的区别: exists() 后面的子查询被称做相关子查询,它是不返回列表的值的。只是返回一个ture或false的结果,其运行方式是先运行主查询一次,再去子查询里查询与其对 应的`结果。如果是ture则输出,反之则不输出。再根据主查询中的每一行去子查询里去查询。in()后面的子查询,是返回结果集的,换句话说执行次序和 exists()不一样。子查询先产生结果集,然后主查询再去结果集里去找符合要求的字段列表去。符合要求的输出,反之则不输出。

5.3 使用ALL

SQL>SELECT ename,sal,deptno FROM emp WHERE sal> ALL (SELECT sal FROM emp WHERE deptno=30);或SQL>SELECT ename,sal,deptno FROM emp WHERE sal> (SELECT MAX(sal) FROM emp WHERE deptno=30);查询工资比部门号为30号的所有员工工资都高的员工的姓名、薪水和部门号。以上两个语句在功能上是一样的,但执行效率上,函数会高 得多。

5.4 使用ANY

SQL>SELECT ename,sal,deptno FROM emp WHERE sal> ANY (SELECT sal FROM emp WHERE deptno=30);或SQL>SELECT ename,sal,deptno FROM emp WHERE sal> (SELECT MIN(sal) FROM emp WHERE deptno=30);查询工资比部门号为30号的任意一个员工工资高(只要比某一员工工资高即可)的员工的姓名、薪水和部门号。以上两个语句在功能上是 一样的,但执行效率上,函数会高得多。

5.5 多列子查询

SQL>SELECT * FROM emp WHERE (job, deptno)=(SELECT job, deptno FROM emp WHERE ename='SMITH');

5.6 在from子句中使用子查询

SQL>SELECT emp.deptno,emp.ename,emp.sal,t_avgsal.avgsal FROM emp,(SELECT emp.deptno,avg(emp.sal) avgsal FROM emp GROUP BY emp.deptno) t_avgsal where emp.deptno=t_avgsal.deptno AND emp.sal>t_avgsal.avgsal ORDER BY emp.deptno;

5.7 分页查询

数据库的每行数据都有一个对应的行号,称为rownum.

SQL>SELECT a2.* FROM (SELECT a1.*, ROWNUM rn FROM (SELECT * FROM emp ORDER BY sal) a1 WHERE ROWNUM<=10) a2 WHERE rn>=6;

指定查询列、查询结果排序等,都只需要修改最里层的子查询即可。

5.8 用查询结果创建新表

SQL>CREATE TABLE mytable (id,name,sal,job,deptno) AS SELECT empno,ename,sal,job,deptno FROM emp;

5.9 合并查询(union 并集, intersect 交集, union all 并集+交集, minus差集)

SQL>SELECT ename, sal, job FROM emp WHERE sal>2500 UNION(INTERSECT/UNION ALL/MINUS) SELECT ename, sal, job FROM emp WHERE job='MANAGER';

合并查询的执行效率远高于and,or等逻辑查询。

5.10 使用子查询插入数据

SQL>CREATE TABLE myEmp(empID number(4), name varchar2(20), sal number(6), job varchar2(10), dept number(2)); 先建一张空表;

SQL>INSERT INTO myEmp(empID, name, sal, job, dept) SELECT empno, ename, sal, job, deptno FROM emp WHERE deptno=10; 再将emp表中部门号为10的数据插入到新表myEmp中,实现数据的批量查询。

5.11 使用了查询更新表中的数据

SQL>UPDATE emp SET(job, sal, comm)=(SELECT job, sal, comm FROM emp where ename='SMITH') WHERE ename='SCOTT';

‘肆’ 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语句如何查询一个表中某一列的相同数据

假设表名是num,列名是a,则查询语句为:

SELECT * FROM num WHERE a IN(

SELECT a FROM num GROUP BY a HAVING COUNT(a)>1

)

其中:

SELECT 语句:SELECT 语句用于从表中选取数据。结果被存储在一个结果表中(称为结果集)。

WHERE 子句:如需有条件地从表中选取数据,可将 WHERE 子句添加到 SELECT 语句。

GROUP BY 语句:GROUP BY 语句用于结合合计函数,根据一个或多个列巧胡对结果集进行分组。

HAVING 子句:在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与合计函数一起使用。

COUNT() 函数:返回匹配指定条件的行数。

(5)sql列号查询扩展阅读:

sql语言特点:

1、一体化:SQL集数据定义DDL、数据操纵DML和数据控制DCL于一体,可以完成数据库中的全部工作。

2、使用方式灵活:它具有两种使用方式,即可以直接以命令方式交互使用;也可以嵌入使用,嵌入到C、C++、FORTRAN、COBOL、JAVA等主语言中使用。

3、非过程化:只提操作要求,不必描述操作步骤,也不需要导航。使用时只需要告诉计算机“做什么”,而不需要告诉它“怎么做”。

4、语言简洁,语法简单,好学好用:在ANSI标准中,只包含了94个英文单词,核心功能只用6个动词,语法接孝凯拦近英语口语。

‘陆’ SQL查询,如何查询一个表中第三行,第三列的数据

其实很简单,只是取第三列的数据时候你需要知道第三列的字段名。
我做了以下方法:
select t.列的字段名 from (select ROWNUM As No , M.* from 表名 M) t
where t.No = '3'
就可以了。
这里的M表和T表是一个表,也即是说如果你的表明为A的话,
select t.列的字段名 from (select ROWNUM As No , M.* from A M) t
where t.No = '3'
就可以了。

‘柒’ 用sql语句怎么查一个表的信息

1、 查询所枝首有列。

sql语句:SELECT * FROMuser。

sql语句:select name as 菜品名,price as 价格 from food where name like '%鸡%';

热点内容
编译不能显示 发布:2024-11-24 23:40:52 浏览:697
人体编程 发布:2024-11-24 23:40:51 浏览:303
谜妹缓存的文件在哪 发布:2024-11-24 23:38:12 浏览:145
服务器自动清理缓存 发布:2024-11-24 23:37:14 浏览:662
中国移动网络如何查密码 发布:2024-11-24 23:37:06 浏览:580
计算机数据库试题 发布:2024-11-24 23:30:17 浏览:173
联想云教室连接不上服务器 发布:2024-11-24 23:24:31 浏览:894
七七源码 发布:2024-11-24 22:47:20 浏览:676
请访问其他页面 发布:2024-11-24 22:46:09 浏览:555
爱丢了编程 发布:2024-11-24 22:32:36 浏览:109