没有合适的资源?快使用搜索试试~ 我知道了~
简单数据库查询语句(word文档良心出品).doc
0 下载量 17 浏览量
2024-04-21
15:12:37
上传
评论
收藏 133KB DOC 举报
温馨提示
试读
20页
简单数据库查询语句(word文档良心出品).doc
资源推荐
资源详情
资源评论
数据查询语言(SELECT 语句)
数据操纵语言(INSERT, UPDATE, DELETE 语句)
数据定义语言(如 CREATE, DROP 等语句)
数据控制语言(如 COMMIT, ROLLBACK 等语句
超详细的 SQL 语句语法 2008-07-11 14:25 简单的 Transact-SQL 查询只包括选择列表、
FROM 子句和 WHERE 子句
一、 简单查询
简单的 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
9、说明:in 的使用方法
select * from table1 where a [not] in (‘值 1’,’值 2’,’值 4’,
’值 6’)
10、说明:两张关联表,删除主表中已经在副表中没有的信息
delete from table1 where not exists ( select * from table2
where table1.field1=table2.field1 )
11、说明:四表联查问题:
select * from a left inner join b on a.a=b.b right inner join
c on a.a=c.c inner join d on a.a=d.d where .....
12、说明:日程安排提前五分钟提醒
SQL: select * from 日程安排 where datediff('minute',f 开始时
间,getdate())>5
13、说明:一条 sql 语句搞定数据库分页
select top 10 b.* from (select top 20 主键字段,排序字段 from 表
名 order by 排序字段 desc) a,表名 b where b.主键字段 = a.主键字
段 order by a.排序字段
14、说明:前 10 条记录
select top 10 * from table1 where 范围
15、说明:选择在每一组 b 值相同的数据中对应的 a 最大的记录的所有信息(
类似这样的用法可以用于论坛每月排行榜,每月热销产品分析,按科目成绩排
名,等等.)
select a,b,c from tablename ta where a=(select max(a) from
tablename tb where tb.b=ta.b)
16、说明:包括所有在 TableA 中但不在 TableB 和 TableC 中的行并消除
所有重复行而派生出一个结果表
(select a from tableA ) except (select a from tableB) except
(select a from tableC)
17、说明:随机取出 10 条数据
select top 10 * from tablename order by newid()
18、说明:随机选择记录
select newid()
19、说明:删除重复记录
Delete from tablename where id not in (select max(id) from
tablename group by col1,col2,...)
20、说明:列出数据库里所有的表名
select name from sysobjects where type='U'
21、说明:列出表里的所有的
select name from syscolumns where id=object_id('TableName')
22、说明:列示 type、vender、pcs 字段,以 type 字段排列,case 可以方便
地实现多重选择,类似 select 中的 case。
select type,sum(case vender when 'A' then pcs else 0
end),sum(case vender when 'C' then pcs else 0 end),sum(case
vender when 'B' then pcs else 0 end) FROM tablename group by
type
显示结果:
type vender pcs
电脑 A 1
电脑 A 1
光盘 B 2
光盘 A 2
手机 B 3
手机 C 3
23、说明:初始化表 table1
TRUNCATE TABLE table1
24、说明:选择从 10 到 15 的记录
select top 5 * from (select top 15 * from table order by id
asc) table_别名 order by id desc
随机选择数据库记录的方法(使用 Randomize 函数,通过 SQL 语句实现)
对存储在数据库中的数据来说,随机数特性能给出上面的效果,但它们
可能太慢了些。你不能要求 ASP“找个随机数”然后打印出来。实际上常见
的解决方案是建立如下所示的循环:
Randomize
RNumber = Int(Rnd*499) +1
While Not objRec.EOF
If objRec("ID") = RNumber THEN
... 这里是执行脚本 ...
end if
objRec.MoveNext
Wend
这很容易理解。首先,你取出 1 到 500 范围之内的一个随机数(假设 500
就是数据库内记录的总数)。然后,你遍历每一记录来测试 ID 的值、检查
其是否匹配 RNumber。满足条件的话就执行由 THEN 关键字开始的那一块代码
。假如你的 RNumber 等于 495,那么要循环一遍数据库花的时间可就长了。
虽然 500 这个数字看起来大了些,但相比更为稳固的企业解决方案这还是个
小型数据库了,后者通常在一个数据库内就包含了成千上万条记录。这时候
不就死定了?
采用 SQL,你就可以很快地找出准确的记录并且打开一个只包含该记录
的 recordset,如下所示:
Randomize
RNumber = Int(Rnd*499) + 1
SQL = "SELECT * FROM Customers WHERE ID = " & RNumber
set objRec = ObjConn.Execute(SQL)
Response.WriteRNumber & " = " & objRec("ID") & " " &
objRec("c_email")
不必写出 RNumber 和 ID,你只需要检查匹配情况即可。只要你对以上代
码的工作满意,你自可按需操作“随机”记录。Recordset 没有包含其他内
剩余19页未读,继续阅读
资源评论
平头哥在等你
- 粉丝: 2
- 资源: 7332
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功