sql一些语句

1.按姓氏笔画排序: Select * From TableName Order By CustomerName Collate Chinese_PRC_Stroke_ci_as

2.数据库加密: select encrypt('原始密码') select pwdencrypt('原始密码') select pwdcompare('原始密码','加密后密码') = 1--相同;否则不相同

3.取回表中字段: declare @list varchar(1000),@sql nvarchar(1000) select @list=@list+','+b.name fromsysobjects 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)     =    (selectchecksum_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 事件探查器') EXECsp_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..sysdatabaseswhere sid <> 0x01

14:查询某一个表的字段和数据类型 select column_name,data_type from information_schema.columns where table_name = '表名'

 

结构化查询语言SQL以其强大的数据库操作功能、口语化、易学易用等特点,受到广泛的应用,成为数据库应用程序开发的一柄利剑。在数据库应用程序开发过程中,巧妙地使用SQL语句,可以简化编程,起到事半功倍的效果,本书中有些实例也大量使用了SQL语句。它由两部分组成,数据定义语言(DDL)和数据操作语言(DML)。

 (1) 数据定义语言(DDL) 数据定义语言用来定义数据库的各级模式。

常用关键字有:Create(建立数据表)、Alter(更改数据表)、Drop(删除数据表)。

 建立数据表   

CREATE TABLE table_name(   column1 DATATYPE [NOT NULL] [NOT NULL PRIMARY KEY],   column2 DATATYPE [NOT NULL],   ...   )   

说明:上面的DATATYPE 指的是字段的类型,NUT NULL 指是否为空,PRIMARY KEY 指本表的主键。   

建立索引    

CREATE INDEX index_name ON table_name (column_name)   

说明:为数据表格的某个字段建立索引以增加查询时的速度。   

更改数据表    

ALTER TABLE table_name ADD COLUMN column_name DATATYPE   

说明:增加一个字段。   

ALTER TABLE table_name ADD PRIMARY KEY (column_name)   

说明:将某个字段设为主键。   

ALTER TABLE table_name DROP PRIMARY KEY (column_name)  

说明:将某个字段的主键定义取消。   

删除数据表   

DROP table_name   DROP index_name   

(2) 数据操作语言(DML)   数据操作语言(DML)用于操作数据表,如增加、删除、查询、修改等。常用关键字有:Insert(插入数据)、Delete(删除数据)、Select(查询数据)和Updata(修改数据)。   

插入数据   

INSERT INTO table_name(column1,column2,...) VALUES (value1,value2, ...)   

说明:在插入语句中,若不指明要插入字段则,按表中的字段顺序依次插入。另外,插入数据的类型应和所插入字段的类型相匹配。   

INSERT INTO table_name (column1,column2,...) SELECT columnx,columny,...   FROM another_table   

说明:通过一个子查询将别的表格相应字段的值插入该表格。   

删除数据   

DELETE FROM table_name WHERE conditions   说明:删除符合条件的记录。   

查询数据   SELECT column1,columns2,... FROM table_name   说明:把table_name 的相应字段查询出来。   SELECT * FROM table_name WHERE column1 = x AND column2 > y   说明:这是一个带有条件的查询语句,‘*‘表示查询所有的字段,WHERE 之后是条件表达式。   

SELECT column1,column2 FROM table_name ORDER BY column2 [DESC]   说明:ORDER BY 是指定以某个字段排序,[DESC]是指从大到小排列,若没有指明,则是从小到大排列。   

SELECT * FROM table1,table2 WHERE table1.colum1=table2.column1   说明:这是一个组合查询,查询两个表格中 column1 字段具有相同值的记录。作为两个表中建立关系的字段,其类型必须匹配。   

SELECT COUNT (*) FROM table_name WHERE column_name = x   说明:查询符合条件的记录数。

 SELECT SUM(column1) FROM table_name   说明:计算column1字段的数据总和。除了SUM之外,还可以用AVG()计算平均值 、用MAX()计算最大值、用MIN()计算最小值。   

SELECT * FROM table_name1 WHERE EXISTS (SELECT * FROM table_name2 WHERE   conditions)   说明:这条查询语句用一个子查询语句作为该查询语句的条件。EXISTS指是否存在。   

SELECT * FROM table_name1 WHERE column1 IN (SELECT column1 FROM   table_name2 WHERE conditions )   说明:IN后面接的是一个集合,表示将column1字段的值在集合中的所有记录从table_name1表中选出来。   

SELECT * FROM table_name1 WHERE column1 LIKE ‘x%‘   说明:该语句为模糊查询。这里的“%”是一个通配符,表示将column1字段中以x开头的所有记录选出来。   

SELECT * FROM table_name1 WHERE column1 BETWEEN x AND y   说明:BETWEEN 表示 column1 的值介于 x 和 y之间。   

更改资料   

UPDATE table_name SET column1=‘x‘ WHERE conditions   说明:该语句表示在某种条件下将column1字段的值改为x。若不加条件,则默认该字段全部更改。   以上是最基本的SQL语法知识,若想更深层次的了解,请参阅数据库方面的书籍。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值