简单实用 “易忘” 的SQL 语句语法,新老皆宜

时间:2021-05-26 14:27:56

--创建数据库

create database 数据库名

on primary

(

name='数据库名_data',  filename='数据库储存路径',

size=数据库初始大小(MB),  maxsize=数据库增长的最大值(MB),

filegrowth=数据库文件的增长率,(%)

)

log on

(

--日志文件  name='日志文件名_log',

fileName='日志文件存储路径',

size='日志文件大小',

fileGrowth='日志文件增长率'

)

--创建表

create table 表名

(

id int primary key identity(1,1) not null,    --设置 Id 为主键 (primary key 标识列为inentity(1,1))

accp date default(getdate()),    --设置默认日期 default(getdate())为当前

pid int foreign key references 表名(pid)    --设pid 为某张表的外键 (foreign key references 表(pid))

)

--向表中插入数据

insert into 表名 values('插入的列数据'……)

--向表中插入多条数据

insert into 表名 (列名……)

serect  列名值…… union    --插入最后一个不用union

--查询表

select 列名…… from 表名 where (查询条件)

select * from 表名

--删除表

delete 表名  --删除表数据

drop 表名 --删除整个表以及数据

--修改表

update 表名 set 修改 where 修改条件

--创建存储过程

create proc usp_存储过程名

declare @变量名 变量数据类型(int……)[out/put](输入输出)

as

sql语句块

--事务处理

begin transaction     --开启事务

rollback transaction   --回滚事务

Commit Transaction --提交事务

简单的实例 :

例如银行储户   A  要给银行储户  B   转账

储户表结构:  储户帐号(ID)  储户身份证号(IDCard)  现有余额(balance)

则:    A:      01               A身份证号                1000

       B:        02               B身份证号                2000

在 A 给 B 转账的同时   两个人的账户余额,都要进行响应的改变,如果出现A帐号转账金额大于余额

,也就是余额不足的情况下,转账交易则不成立,假设转账金额为300元

这里一般结合存储过程来用:

create proc usp_zhuanzhang

declare @money int=300    --转账金额参数为300元

as

begin transaction   --开启事务

update  表A    set  balance=balance-@money  where ID=01

update  表B    set  balance=balance+@money  where ID=02

if  @@Error<> 0   goto  xx    --如果其中出现错误, 就到 命名为 xx 的地方处理

commit  transaction   --否则就提交

xx:

rollback  transaction    --出现错误,就回滚 (错误原因有: A账户的余额不足,当余额不足,交易不成立)

SQL Server中的全局变量

@@Error        最后一个T-sql错误的错误号

@@Identity     最后一次插入的标识值

@@Language      当前使用的语言名称

@@Max_Connections    可以创建的同时连接的最大数目

@@Rowcount      受上一个SQL语句影响的行数

@@ServerName    本地服务器名称

@@ServiceName    该计算机上的Sql服务名称

@@TimeTicks 当前计算机上每刻度微妙数

@@TranScount 当前连接打开的事务数

@@Version SQL Server的版本信息