微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SQLServer语句 20130226

-数据操作  
SELECT --从数据库表中检索数据行和列 
INSERT --向数据库添加新数据行 
DELETE --从数据库表中删除数据行 
UPDATE --更新数据库表中的数据


-数据定义  
CREATE TABLE --创建一个数据库表 
DROP TABLE --从数据库删除表 
ALTER TABLE --修改数据库表结构 
CREATE VIEW --创建一个视图 
DROP VIEW --从数据库删除视图  
CREATE INDEX --为数据库表创建一个索引 
DROP INDEX --从数据库删除索引  
CREATE PROCEDURE --创建一个存储过程 
DROP PROCEDURE --从数据库删除存储过程 
CREATE TRIGGER --创建一个触发器 
DROP TRIGGER --从数据库删除触发器  
CREATE SCHEMA --向数据库添加一个新模式 
DROP SCHEMA --从数据库删除一个模式 
CREATE DOMAIN --创建一个数据值域 
ALTER DOMAIN --改变域定义  
DROP DOMAIN --从数据库删除一个域

--数据控制  
GRANT --授予用户访问权限 
DENY --拒绝用户访问  
REVOKE --解除用户访问权限   

--事务控制  
COMMIT --结束当前事务 
ROLLBACK --中止当前事务  
SET TRANSACTION --定义当前事务数据访问特征

--程序化sql  
DECLARE --为查询设定游标  
EXPLAN --为查询描述数据访问计划 
OPEN --检索查询结果打开一个游标 
FETCH --检索一行查询结果 
CLOSE --关闭游标  
PREPARE --为动态执行准备sql 语句 
EXECUTE --动态地执行sql 语句 
DESCRIBE --描述准备好的查询

---局部变量  
declare @id char(10) 
set @id = '10010001' 
select @id = '10010001'    

---全局变量  
---必须以@@开头

--IF ELSE  
declare @x int @y int @z int 
select @x = 1 @y = 2 @z=3 
if @x > @y  
print 'x > y' --打印字符串'x > y' 
else if @y > @z 
print 'y > z' 
else print 'z > y' 

--CASE 
update employee set e_wage = 
case  when job_level = '1'
		then e_wage*1.08 
	  when job_level = '2' 
	    then e_wage*1.07 
	  when job_level = '3' 
	    then e_wage*1.06 
	  else e_wage*1.05 
end

--WHILE CONTINUE BREAK 
declare @x int @y int @c int 
select @x = 1 @y=1
 while @x < 3 
 begin  
   print @x --打印变量x 的值 
   while @y < 3 
   begin  
     select @c = 100*@x + @y 
     print @c --打印变量c 的值 
     select @y = @y + 1 
   end  
   select @x = @x + 1 
   select @y = 1 
end

--WAITFOR  --例 等待1 小时2 分零3 秒后才执行SELECT 语句 
waitfor delay  '01:02:03' 
select * from employee 
--例 等到晚上11 点零8 分后才执行SELECT 语句 
waitfor time '23:08:00' 
select * from employee

select stockname from table1  
union [all] ----- union合并查询结果集,all-保留重复行 
select stockname from table2 

delete from table_name where Stockid = 3  
truncate table_name ----------- 删除表中所有行,仍保持表的完整性 
drop table table_name --------------- 完全删除表 

create table table_name (name char(20),age smallint,lname varchar(30))
insert into table_name select ......... ----- 实现删除列的方法(创建新表)

select avg(e_wage) as dept_avgWage
from employee 
group by dept_id
 --MAX  --求工资最高的员工姓名 
select e_name from employee where e_wage = (select max(e_wage) from employee)

----算术函数----    
/***三角函数***/ 
SIN(float_expression) --返回以弧度表示的角的正弦 
COS(float_expression) --返回以弧度表示的角的余弦 
TAN(float_expression) --返回以弧度表示的角的正切 
COT(float_expression) --返回以弧度表示的角的余切 /***反三角函数***/ 
ASIN(float_expression) --返回正弦是FLOAT 值的以弧度表示的角

ACOS(float_expression) --返回余弦是FLOAT 值的以弧度表示的角 
atan(float_expression) --返回正切是FLOAT 值的以弧度表示的角 
atan2(float_expression1,float_expression2)   --返回正切是float_expression1 /float_expres-sion2的以弧度表示的角 
degrees(numeric_expression)  --把弧度转换为角度返回与表达式相同的数据类型可为 --INTEGER/MONEY/REAL/FLOAT 类型  
radians(numeric_expression) --把角度转换为弧度返回与表达式相同的数据类型可为  --INTEGER/MONEY/REAL/FLOAT 类型 
EXP(float_expression) --返回表达式的指数值  
LOG(float_expression) --返回表达式的自然对数值  
LOG10(float_expression)--返回表达式的以10 为底的对数值 
SQRT(float_expression) --返回表达式的平方根 /***取近似值函数***/  
CEILING(numeric_expression) --返回>=表达式的最小整数返回的数据类型与表达式相同可为  --INTEGER/MONEY/REAL/FLOAT 类型  
FLOOR(numeric_expression) --返回<=表达式的最小整数返回的数据类型与表达式相同可为  --INTEGER/MONEY/REAL/FLOAT 类型  
ROUND(numeric_expression) --返回以integer_expression 为精度的四舍五入值返回的数据  --类型与表达式相同可为INTEGER/MONEY/REAL/FLOAT 类型  
ABS(numeric_expression) --返回表达式的绝对值返回的数据类型与表达式相同可为  --INTEGER/MONEY/REAL/FLOAT 类型  
SIGN(numeric_expression) --测试参数的正负号返回0 零值1 正数或-1 负数返回的数据类型  --与表达式相同可为INTEGER/MONEY/REAL/FLOAT 类型 
PI() --返回值为π 即3.1415926535897936  
RAND([integer_expression]) --用任选的[integer_expression]做种子值得出0-1 间的随机浮点数 


----字符串函数----  
ASCII() --函数返回字符表达式最左端字符的ASCII 码值 
CHAR() --函数用于将ASCII 码转换为字符  --如果没有输入0 ~ 255 之间的ASCII 码值CHAR 函数会返回一个NULL 值 
LOWER() --函数把字符串全部转换为小写 
UPPER() --函数把字符串全部转换为大写 
str() --函数把数值型数据转换为字符型数据
LTRIM() --函数把字符串头部的空格去掉 
RTRIM() --函数把字符串尾部的空格去掉  
LEFT(),RIGHT(),SUBSTRING() --函数返回部分字符串  
CHARINDEX(),PATINDEX() --函数返回字符串中某个指定的子串出现的开始位置  
SOUNDEX() --函数返回一个四位字符码   --SOUNDEX函数可用来查找声音相似的字符串但SOUNDEX函数对数字和汉字均只返回0 值   
DIFFERENCE() --函数返回由SOUNDEX 函数返回的两个字符表达式的值的差异  --0 两个SOUNDEX 函数返回值的第一个字符不同 --1 两个SOUNDEX 函数返回值的第一个字符相同 --2 两个SOUNDEX 函数返回值的第一二个字符相同 --3 两个SOUNDEX 函数返回值的第一二三个字符相同 --4 两个SOUNDEX 函数返回值完全相同 

QUOTENAME() --函数返回被特定字符括起来的字符串 
select quotename('abc','{') 
select quotename('abc')
--运行结果如下
{abc}
[abc]

REPLICATE() --函数返回一个重复character_expression 指定次数的字符串 
select REPLICATE('abc',3)
select REPLICATE('abc',-3)
--运行结果如下
abcabcabc
NULL

REVERSE() --函数将指定的字符串的字符排列顺序颠倒 REPLACE() --函数返回被替换了指定子串的字符串 
select REVERSE('zasdfasdf')
--运行结果如下
fdsafdsaz
select replace('abc123g','123','def') 
--运行结果如下
abcdefg


SPACE() --函数返回一个有指定长度的空白字符串  
STUFF() --函数用另一子串替换字符串指定位置长度的子串


----数据类型转换函数---- CAST() 函数语法如下  
CAST() (<expression> AS <data_ type>[ length ]) 
CONVERT() 函数语法如下  
CONVERT() (<data_ type>[ length ],<expression> [,style])     
select cast(100+99 as char) 
convert(varchar(12),getdate()) 
--运行结果如下 
 199  
 Feb 26 2013 

----日期函数----  
DAY() --函数返回date_expression 中的日期值 
MONTH() --函数返回date_expression 中的月份值 
YEAR() --函数返回date_expression 中的年份值 
DATEADD(<datepart>,<number>,<date>)   --函数返回指定日期date 加上指定的额外日期间隔number 产生的新日期 
DATEDIFF(<datepart>,<date>)  --函数返回两个指定日期在datepart 方面的不同之处  
DATENAME(<datepart>,<date>) --函数以字符串的形式返回日期的指定部分 
DATEPART(<datepart>,<date>) --函数以整数值的形式返回日期的指定部分 
GETDATE() --函数以DATETIME 的缺省格式返回系统当前的日期和时间  

 
----系统函数----  
APP_NAME() --函数返回当前执行的应用程序的名称  
COALESCE() --函数返回众多表达式中第一个非NULL 表达式的值  
COL_LENGTH(<'table_name'>,<'column_name'>) --函数返回表中指定字段的长度值  
COL_NAME(<table_id>,<column_id>) --函数返回表中指定字段的名称即列名 
DATALENGTH() --函数返回数据表达式的数据的实际长度 
DB_ID(['database_name']) --函数返回数据库的编号 
DB_NAME(database_id) --函数返回数据库名称 
 
HOST_ID() --函数返回服务器端计算机的名称 
HOST_NAME() --函数返回服务器端计算机的名称  
IDENTITY(<data_type>[,seed increment]) [AS column_name])  --IDENTITY() 函数只在SELECT INTO 语句中使用用于插入一个identity column列到新表中  
/*select identity(int,1,1) as column_name into newtable from oldtable*/  
ISDATE() --函数判断所给定的表达式是否为合理日期  
ISNULL(<check_expression>,<replacement_value>) --函数将表达式中的NULL 值用指定值替换  
ISNUMERIC() --函数判断所给定的表达式是否为合理的数值 
NEWID() --函数返回一个UNIQUEIDENTIFIER 类型的数值 
NULLIF(<expression1>,<expression2>)  --NULLIF 函数在expression1 与expression2 相等时返回NULL 值若不相等时则返回expression1 的值
 
 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐