MSSQL复习1

(一)、T-SQL语句
1、创建数据库:
  exec sp_configure 'show advanced options' , 1
  go
  exec reconfigure
  go
  exec sp_configure 'xp_cmdshell' , 1
  go
  exec xp_cmdshell 'mkdir filename'
  go
  约束:
  alter table 表名
  添加约束:add constraint  约束名  约束类型    具体的约束说明
  删除约束:drop  constraint  约束名
  约束示例:
    alter table Student 
    add  constraint  PK_stuNo primary  key  (StudentNo)
    alter table Student 
    add  constraint  UQ_stuId UNIQUE  (IdentityCard)
    alter table Student 
    add  constraint  DF_stuAddress default ('No details')  for  Address
    alter table Student 
    add  constraint  CK_stuBornDate  check (BornDate >= '1980-01-01')
    alter table Result
    add  constraint  FK_stuNo foreign key (stuNo) references Student (stuNo)
2、SQL编程
  定义变量:declare  @variable_name  DataType
  给变量赋值:set  @variable_name = value  或  select  @variable_name  =  value
  set 不支持同时对多个变量赋值,表达式返回多个值时出错,未返回值时,变量被赋NULL值
  select 支持同时对多个变量赋值,表达式返回多个值时将返回的最后一个值赋给变量,未返回值时,将保持原值
  输出:
    print  局部变量或字符串
    select  局部变量   as  自定义列名
  类型转换:
    cast (变量名  as  数据类型)
    convert (数据类型 ,  变量名)
  逻辑控制语句:
    begin-end语句
      begin 
        语句块
      end
    if-else条件语句
      if (条件)  语句或语句块1
      else 语句或语句块2
    while循环语句
      while (条件)
        begin
          语句或语句块
            [ break | continue ]
        end
    case多分支语句
      case 
        when  条件1  then  结果1
        when  条件2  then  结果2
        [else  其他结果]
      end
  批处理
    go指令:每个批处理之间是相互独立的,标志批处理的结束
3、高级查询
  子查询:将子查询和比较运算符联合使用,必须保证子查询返回的值不能多于一个,适合作为查询的筛选条件
  表连接:适合查看多表的数据
  =^=一般来说,表连接都可以使用子查询完成,但反过来说却不一定=^=
  IN子查询,使主查询匹配子查询返回的多个单列值
  EXISTS关键字能够检测数据是否存在
  子查询注意事项:
    select  (子查询)  from 表名  子查询结果为单行单列,但不必指定列名
    select  *  from  (子查询)  as  表的别名  必须为表指定别名
4、事务、视图和索引
  事务:单个的工作单元
    开始事务:begin  transaction
    提交事务:commit  transaction
    回滚撤销事务:rollback  transaction
  视图:
    创建:
    create  view  view_name
    as
    <select  语句> 
    删除
    drop  view  view_name
  索引:
    创建索引:
    create  [unique]  [clustered | nonclustered]  index  index_name
    on  table_name  (column_name [ , column_name] ... )
    [ with  fillfactor = x ]
    删除索引
    drop  index  table_name.index_name,先删除非聚集索引,后删除聚集索引
    查询
    select  *  from  table_name 
      with  (index = index_name)
      where 条件
5、存储过程
  创建存储过程:
  create  proc[edure]  存储过程名
    [ { @参数1   数据类型 } [= 默认值 ]  output ]
  as
    SQL语句
  删除存储过程:
  drop  proc[edure]  存储过程名
  注意:使用输出参数的时候,需重新定义然后获取输出变量
  处理错误消息:
  raiserror语句
  raiserror ( { msg_id | msg_str } { , severity ,  state } [ with option ])
  msg_id:在sysmessages系统表中指定用户定义错误消息
  msg_str:用户定义的特定消息,最长为255个字符
  severity:用户定义的严重性级别
  state:表示错误状态,是1-127的值
  option:指示是否将错误记录到服务器错误日志中

原文地址:https://www.cnblogs.com/changweihua/p/2226030.html