Transact SQL 语 句 功 能

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()函数返回总体标准差  

分享到:
评论

你可能感兴趣的:(数据结构,sql,C++,c,C#)