Transact SQL 常用语句以及函数

系统 1330 0

Transact SQL 语句功能
========================================================================

-- 数据操作

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 '

-- -全局变量

-- -必须以@@开头  

-- IFELSE

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
use pangu
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
-- WHILECONTINUEBREAK
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

select * (列名) from table_name(表名) where column_nameoperatorvalueex宿主)
select * from stock_information where stockid = str (nid)
    stockname
= ' str_name '
    stockname
like ' %findthis% '
    stockname
like ' [a-zA-Z]% ' -- -------([]指定值的范围)
    stockname like ' [^F-M]% ' -- -------(^排除指定范围)
-- -------只能在使用like关键字的where子句中使用通配符)
or stockpath = ' stock_path '
or stocknumber < 1000
and stockindex = 24
not stocksex = ' man '
    stocknumber
between 20 and 100
    stocknumber
in ( 10 , 20 , 30 )
order by stockid desc ( asc ) -- -------排序,desc-降序,asc-升序
order by 1 , 2 -- -------by列号
    stockname = ( select stockname from stock_information where stockid = 4 )
-- -------子查询
-- -------除非能确保内层select只返回一个行的值
-- -------否则应在外层where子句中用一个in限定符
select distinct column_nameformtable_name
-- -------distinct指定检索独有的列值,不重复
select stocknumber,"stocknumber + 10 " = stocknumber + 10 from table_name
select stockname,"stocknumber" = count ( * ) from table_name group by stockname
-- -------groupby将表按行分组,指定列中有相同的值
having count ( * ) = 2 -- -------having选定指定的组

select *
from table1,table2
where table1.id *= table2.id -- ------左外部连接,table1中有的而table2中没有得以null表示
    table1.id =* table2.id -- ------右外部连接
select stockname from table1
union [ all ] -- ------union合并查询结果集,all-保留重复行
select stockname from table2 

insert

insert into table_name(Stock_name,Stock_number)value("xxx","xxxx"
  value(
select Stockname,Stocknumber from Stock_table2)
-- -----value为select语句  

update

update table_name set Stockname = "xxx" [ whereStockid=3 ]
  Stockname
= default
  Stockname
= null
  Stocknumber
= Stockname + 4

delete

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

alter table -- ------修改数据库表结构  

alter table database .owner.table_name add column_name char ( 2 ) null ..
  sp_helptable_name
-- ------显示表已有特征
create table table_name(name char ( 20 ),age smallint ,lname varchar ( 30 ))
insert into table_name select -- ------实现删除列的方法(创建新表)
alter table table_name drop constraint Stockname_default
-- -------删除Stockname的default约束




常用函数(
function )  

转换函数

convert (数据类型,值,格式)

  统计函数

AVG -- 求平均值
COUNT -- 统计数目
MAX -- 求最大值
MIN -- 求最小值
SUM -- 求和 

AVG

use pangu
select avg (e_wage) as dept_avgWage
from employee
group by dept_id  

MAX

-- 求工资最高的员工姓名
use pangu
select e_name
from employee
where e_wage =
  (
select max (e_wage)
from employee)  

STDEV ()

-- STDEV()函数返回表达式中所有数据的标准差
-- STDEVP()
-- STDEVP()函数返回总体标准差  

sr

Transact SQL 常用语句以及函数


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论