数据库中常用的sql语句有哪些

发布网友

我来回答

3个回答

懂视网

begin

if 2*@A+4*(35-@A)=96

begin

print ‘鸡的数量‘+cast(@A as char(5))

print ‘兔的数量‘+cast(35-@A as char(5))

end

set @A=@A+1

end

--游标的原理:是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。



--====================数据库开发经典


--(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)生成本地表

select * into 表 from openrowset( ‘SQLOLEDB ‘, ‘sql服务器名 ‘; ‘用户名 ‘; ‘密码 ‘,数据库名.dbo.表名)


 

--(4)把本地表导入远程表

insert openrowset( ‘SQLOLEDB ‘, ‘sql服务器名 ‘; ‘用户名 ‘; ‘密码 ‘,数据库名.dbo.表名)



                                      经 典 sql 


(1)创建一张带动态时间的表


--效果: DATA_aa2013-5-14

--用到技术:存储过程,系统函数


IF EXISTS(SELECT * FROM sys.objects where name = ‘DATA_aa‘ and type = ‘P‘)

DROP PROCEDURE [dbo].[SelectT_PolicyCommon]

GO

-- 使用说明:EXEC [dbo].[DATA_aa]

CREATE PROC [dbo].[DATA_aa]


AS

BEGIN


--创建数据库:AA

--use AA


declare @tablename nvarchar(100) set  @tablename=‘表名‘ +convert(char(8),getdate(),112)  --动态生成一张带当前时间的表

if exists(select * from sysobjects where name=@tablename)  --如果这张表存在就bengin 删除

begin

declare @dropTable nvarchar(1000) set @dropTable =‘drop table ‘+@tablename

execute sp_executesql @dropTable

end  ---否则就添加这张动态表 (id 为主键要加:primary key )

declare @createTable nvarchar(1000) set @createTable =‘create table ‘+@tablename+‘( int AA .....全是这张表的字段 )‘ 

execute sp_executesql @createTable

END

GO





(2)将相同的列,数据用逗号分开合并成一列

---用到技术:函数法


----原本的表

--it                   it1

--it                   it2

--it                   it3

--it2                  aa

--it2                  aac


---应该要得到的表

--it            it1,it2,it3

--it2           aa, aac


-----------------------函数法

select * from sysobjects where name=‘fun‘

--删除 fun 表

drop function fun


--新建表 fun

Create function [dbo].[fun](@type nvarchar(10),@Cabin_Name nvarchar(10))

returns nvarchar(200)

as

begin


declare @re nvarchar(200)

declare @code nvarchar(200)

set @re=‘‘

set @code=‘‘

select @re=@re+Id+‘,‘  from S_Cabin where Comp_ID=@type and Cabin_Name=@Cabin_Name group by Id

select @re=left(@re, len(@re)-1)

--返回@re

return @re

end


--查询fun 表

select Comp_ID,dbo.fun(Comp_ID,Cabin_Name),Cabin_Name from (select  Comp_ID,Cabin_Name from S_Cabin group by Comp_ID,Cabin_Name) A



--查询表S_Cabin的结果

select Cabin_Name from S_Cabin




(3)快速删除一张表sql

      truncate table 要删除的表名









本文出自 “金典sql” 博客,转载请与作者联系!

常用SQL

标签:sql

热心网友

1.检索数据
SELECT prod_nameFROM Procts;
#检索单列

SELECT prod_id, prod_name, prod_priceFROMProcts;
#检索多列

SELECT * FROM Procts;
#检索所有列

SELECT DISTINCTvend_id FROMProcts;
#检索不同的值

SELECTprod_name FROM Procts LIMIT 5;
#返回不超过5行数据

SELECTprod_name FROM Procts LIMIT 5 OFFSET 5;
#返回从第5行起的5行数据。LIMIT指定返回的行数,LIMIT带的OFFSET指定从哪儿开始。
2.排序检索数据
SELECTprod_name
FROMProcts
ORDER BYprod_name;
#排序数据

SELECT prod_id, prod_price, prod_name
FROMProcts
ORDER BY prod_price, prod_name;
#按多个列排序

SELECT prod_id, prod_price, prod_name
FROMProcts
ORDER BY 2, 3;
#按列位置排序,第三行表示先按prod_price, 再按prod_name进行排序

SELECT prod_id, prod_price, prod_name
FROMProcts
ORDER BY prod_priceDESC, prod_name;
#prod_price列以降序排序,而prod_name列(在每个价格内)仍然按标准的升序排序

3.过滤数据
SELECT prod_name, prod_price
FROMProcts
WHERE prod_price< 10;
#检查单个值

SELECT prod_name, prod_price
FROMProcts
WHERE vend_id <> ‘DLL01’;
#不匹配检查

SELECT prod_name, prod_price
FROMProcts
WHERE prod_priceBETWEEN 5 AND 10;
#范围值检查

SELECT cust_name
FROMCUSTOMERS
WHERE cust_emailIS NULL;
#空值检查

4.高级数据过滤
SELECTprod_id, prod_price, prod_name
FROMProcts
WHERE vend_id = ‘DLL01’ANDprod_price <= 4;
#AND操作符

SELECTprod_name, prod_price
FROMProcts
WHEREvend_id=’DLL01’ OR vend_id=’BRS01’;
#OR操作符

SELECTprod_name, prod_price
FROMProcts
WHERE (vend_id = ’DLL01’ORvend_id=’BRS01’)
ANDprod_price >= 10;
#求值顺序 AND的优先级高于OR

SELECTprod_name, prod_price
FROMProcts
WHERE vend_idIN (‘DLL01’,’BRS01’)
ORDER BY prod_name;
#IN操作符

SELECT prod_name
FROMProcts
WHERE NOTvend_id = ‘DLL01’
ORDER BY prod_name;
#NOT 操作符

SELECT prod_name
FROMProcts
WHEREvend_id <> ‘DLL01’
ORDER BY prod_name;
#NOT 操作符

热心网友

select
into
from语句
要求目标表table_4不存在,因为在插入时会自动创建表table_4,并将table_3中指定字段数据复制到table_4中。
可以考虑使用如下语句:
insert
into
dbo.table_4
(sname,
semail)
(select
sname,
semail
from
table_3);

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com