sql server 常用语法

时间:2022-04-26 15:01:18

--1 创建数据库

 DROP DATABASE  mydb1
 CREATE     DATABASE mydb1 ON ( NAME ='mydb1',FILENAME='D:\mydb1.mdf')
 LOG ON (NAME='mydb1_log' ,FILENAME='D:\mydb1_log.ldf')

--示例

 CREATE     DATABASE 高校管理系统数据库 ON ( NAME ='mydb1',FILENAME='D:\高校管理系统数据库.mdf',SIZE=5MB,
 MAXSIZE =UNLIMITED,FILEGROWTH=1MB)
 %)

--2 自定义函数

 create function 函数名(形参名 as 数据类型)
 returns 返回类型
 as
 begin
 --函数体
 return 表达式
 end

--示例

 CREATE     DATABASE Demo数据库 ON ( NAME ='mydb1',FILENAME='D:\Demo数据库.mdf',SIZE=5MB,
 MAXSIZE =UNLIMITED,FILEGROWTH=1MB)
 %)

--3 创建表的同时指定所有的约束

 CREATE TABLE TestTable
 (
 id INT PRIMARY KEY NOT NULL,--主键
 id_identity ,) NOT NULL,--自增长列
 id_GUID UNIQUEIDENTIFIER ROWGUIDCOL NOT NULL DEFAULT (NEWID()) ,--全球唯一标识符
 id_unquel INT UNIQUE,--唯一约束
 stuid INT  NOT NULL FOREIGN KEY REFERENCES stu(id),--外键
  ) --约束检查
 )

--4 删除某个约束的方法

 ALTER TABLE 表名 DROP CONSTRAINT 约束名 

--5 添加主键

ALTER TABLE  表名 ADD  CONSTRAINT 主键名 primary key(列名)

--6 查询语法

SELECT[ALL | DISTINCT ]  [TOP n [PERCENT] ] select_list 

FROM{<表资源>}[,…n]             

[WHERE]<搜索条件>

[GROUP BY]{<分组表达式>}[,…n][HAVING]<搜索条件>

[ORDER BY]{<字段名[ASC|DESC]>}[,…n]

--7 创建视图语法

CREATE VIEW 视图名
AS
 SELECT 语句
GO
 --创建
 CREATE VIEW TestView
 AS
  SELECT *  FROM dbo.test
 GO
 --调用(像查询表一样)
 SELECT * FROM TestView
 --修改
 ALTER VIEW TestView
 AS
    SELECT * FROM dbo.test
 GO
 --删除
 DROP VIEW TestView

--8 创建存储过程语法

 CREATE PROC 储存过程名
 @参数in  数据类型=默认值,
 @参数out 数据类型 OUT
 AS
     SQL 语句
 GO
 --创建
 CREATE PROC TestProc
 @stuId INT,--输入参数
 @count INT OUT ,--输出参数
 )='zhangsan' --输入参数带默认值
 AS
 BEGIN
    SELECT * FROM dbo.Students WHERE stuid =@stuId AND name=@name
    SELECT @count =COUNT(@stuId) FROM Students
    END
 GO

 --调用
 DECLARE @cou INT
 ,@count=@cou OUTPUT,@name='zhangsan'
 PRINT @cou
 GO
 --修改删除同试图

--9 创建触发器

 CREATE TRIGGER 触发器名 ON {TABLE|view} [WITH <dml_trigger_option>[,....n]]
 {for|after|INSTEAD of}[delete,insert,update]
 AS
    SQL 语句
 GO

--10 事务

--T-SQL 定义事务的语句有
       --开始事务 Begin Tran
       --提交事务 Commit Tran
       --回滚事务 Rollback Tran

--示例

  --开始事务
  BEGIN TRANSACTION
  PRINT '转账事务前的余额:'
  SELECT * FROM back
  GO
  --定义变量,用于累计事务执行过程中的错误
  DECLARE @errors INT

  --转账
   WHERE currentName='张三'
  --累计错误
  SET @errors=@errors+@@ERROR
  PRINT '转账事务过程中的余额'
  SELECT * FROM back

 --判断是否有错误
 --有错误
 BEGIN PRINT '交易失败'
 ROLLBACK TRANSACTION
 END
 ELSE
 BEGIN
 PRINT'交易成功'
 COMMIT TRANSACTION
 END
 GO