SQL语句大全(3)

2019-06-02 14:20

用 rs(\别名\获取统的计值,其它函数运用同上。

(6) 数据表的建立和删除:

CREATE TABLE 数据表名称(字段1 类型1(长度),字段2 类型2(长度) …… )

例:CREATE TABLE tab01(name varchar(50),datetime default now())

DROP TABLE 数据表名称 (永久性删除一个数据表)

在ASP编程时,下面这些语句是必须知道的:

1.连接数据库

a. ASP与Access数据库连接: <%@ language=VBs cript%> <%

dim conn,mdbfile

mdbfile=server.mappath(\数据库名称.mdb\set conn=server.createobject(\

conn.open \={microsoft access driver (*.mdb)};uid=admin;pwd=数据库码;dbq=\&mdbfile %>

b. ASP与SQL数据库连接:

<%@ language=VBs cript%> <%

dim conn

set conn=server.createobject(\

con.open \=SQLOLEDB;DATA SOURCE=SQL服务器名称或IP址;UID=sa;PWD=数据库密码;DATABASE=数据库名称 %>

建立记录集对象:

set rs=server.createobject(\rs.open SQL语句,conn,3,2

2. 记录集对象的方法:

rs.movenext 将记录指针从当前的位置向下移一行 rs.moveprevious 将记录指针从当前的位置向上移一行 rs.movefirst 将记录指针移到数据表第一行

rs.movelast 将记录指针移到数据表最后一行

rs.absoluteposition=N 将记录指针移到数据表第N行 rs.absolutepage=N 将记录指针移到第N页的第一行 rs.pagesize=N 设置每页为N条记录

rs.pagecount 根据 pagesize 的设置返回总页数 rs.recordcount 返回记录总数

rs.bof 返回记录指针是否超出数据表首端,true表示是,false为否 rs.eof 返回记录指针是否超出数据表末端,true表示是,false为否 rs.delete 删除当前记录,但记录指针不会向下移动 rs.addnew 添加记录到数据表末端 rs.update 更新数据表记录 附:

常数 常数值 说明

--------------------------------

adLockReadOnly 1 缺省值,Recordset对象以只读方式启动,无法运行AddNew、Update及Delete等方法

adLockPrssimistic 2 当数据源正在更新时,系统会暂时锁住其他用户的动作,以保持数据一致性。

adLockOptimistic 3 当数据源正在更新时,系统并不会锁住其他用户的动作,其他用户可以对数据进行增、删、改的操作。

adLockBatchOptimistic 4 当数据源正在更新时,其他用户必须将CursorLocation属性改为adUdeClientBatch才能对数据进行增、删、改的操作。

MSSQL经典语句 1.按姓氏笔画排序:Select * From TableName Order By CustomerName Collate Chinese_PRC_Stroke_ci_as

2.数据库加密:select encrypt('原始密码') select pwdencrypt('原始密码')

select pwdcompare('原始密码','加密后密码') = 1--相同;否则不相同 encrypt('原始密码') select pwdencrypt('原始密码')

select pwdcompare('原始密码','加密后密码') = 1--相同;否则不相同

3.取回表中字段:declare @list varchar(1000),@sql nvarchar(1000)

select @list=@list+','+b.name from sysobjects a,syscolumns b where a.id=b.id and a.name='表A' set @sql='select '+right(@list,len(@list)-1)+' from 表A' exec (@sql)

4.查看硬盘分区:EXEC master..xp_fixeddrives

5.比较A,B表是否相等:if (select checksum_agg(binary_checksum(*)) from A) =

(select checksum_agg(binary_checksum(*)) from B) print '相等' else

print '不相等' 6.杀掉所有的事件探察器进程:DECLARE hcforeach CURSOR GLOBAL FOR SELECT 'kill '+RTRIM(spid) FROM master.dbo.sysprocesses

WHERE program_name IN('SQL profiler',N'SQL 事件探查器') EXEC sp_msforeach_worker '?'

7.记录搜索:开头到N条记录 Select Top N * From 表 ------------------------------- N到M条记录(要有主索引ID)Select Top M-N * From 表 Where ID in (Select Top M ID From 表) Order by ID Desc ---------------------------------- N到结尾记录

Select Top N * From 表 Order by ID Desc

8.如何修改数据库的名称:sp_renamedb 'old_name', 'new_name'

9:获取当前数据库中的所有用户表select Name from sysobjects where xtype='u' and status>=0

10:获取某一个表的所有字段select name from syscolumns where id=object_id('表名')

11:查看与某一个表相关的视图、存储过程、函数select a.* from sysobjects a, syscomments b where a.id = b.id and b.text like '%表名%'

12:查看当前数据库中所有存储过程select name as 存储过程名称 from sysobjects where xtype='P' 13:查询用户创建的所有数据库select * from master..sysdatabases D where sid not in(select sid from master..syslogins where name='sa') 或者

select dbid, name AS DB_NAME from master..sysdatabases where sid <> 0x01 14:查询某一个表的字段和数据类型select column_name,data_type from information_schema.columns where table_name = '表名'

[n].[标题]:Select * From TableName Order By CustomerName

[n].[标题]:Select * From TableName Order By CustomerName

from:http://tb.blog.csdn.net/TrackBack.aspx?PostId=585515

触发器-MSSQL常用操作

不再新开文章.

这里只打算讲解四部分了,也就最简单、最常用的四部分。

1、触发器。

定义: 何为触发器?在SQL Server里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序。触发器是一个特殊的存储过程。

常见的触发器有三种:分别应用于Insert , Update , Delete 事件。(SQL Server 2000定义了新的触发器,这里不提)

我为什么要使用触发器?比如,这么两个表:

Create Table Student( --学生表 StudentID int primary key, --学号 .... )

Create Table BorrowRecord( --学生借书记录表 BorrowRecord int identity(1,1), --流水号 StudentID int , --学号

BorrowDate datetime, --借出时间 ReturnDAte Datetime, --归还时间 ... )

用到的功能有:

1.如果我更改了学生的学号,我希望他的借书记录仍然与这个学生相关(也就是同时更改借书记录表的学号);

2.如果该学生已经毕业,我希望删除他的学号的同时,也删除它的借书记录。 等等。

这时候可以用到触发器。对于1,创建一个Update触发器:

Create Trigger truStudent On Student for Update As

if Update(StudentID) begin

Update BorrowRecord Set StudentID=i.StudentID

From BorrowRecord br , Deleted d ,Inserted i Where br.StudentID=d.StudentID end

理解触发器里面的两个临时的表:Deleted , Inserted 。注意Deleted 与Inserted分别表示触发事件的表―旧的一条记录‖和―新的一条记录‖。

一个Update 的过程可以看作为:生成新的记录到Inserted表,复制旧的记录到Deleted表,然后删除Student记录并写入新纪录。

对于2,创建一个Delete触发器 Create trigger trdStudent On Student for Delete As

Delete BorrowRecord

From BorrowRecord br , Delted d Where br.StudentID=d.StudentID

从这两个例子我们可以看到了触发器的关键:A.2个临时的表;B.触发机制。 这里我们只讲解最简单的触发器。复杂的容后说明。

事实上,我不鼓励使用触发器。触发器的初始设计思想,已经被―级联‖所替代.

MSSQL数据库导出和导入

SQL Server导出导入数据方法


SQL语句大全(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:光立方成功制作资料累积 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: