《中英文对照 t-sql语句》由会员分享,可在线阅读,更多相关《中英文对照 t-sql语句(10页珍藏版)》请在金锄头文库上搜索。
1、1/*T-SQL 语言基础列格式:数字:Bigint 大整数型数字,int 标准整型数字,smallint 小整型数字,tinyint 微整型数字,decimal 精确数字,float 近似数字。升序货币:money 长度为 8 字节,smallmoney 长度为 4 字节。日期时间:datetime 年月日小时分钟秒厘,smalltime 年月日小时分钟秒,date 年月日,time 小时分钟秒厘。字符串:char 固定长度,varchar 可变长度,nchar 固定长度 U,nvarchar 可变长度 U,binary 固定长度二进位,varbinary 可变长度二进位,image 存储图
2、表格。格式:大写 T-SQL 关键字, 分隔括号或大括号语法,只能使用其中一项, 可选语法, 必选语法,,n前面的项可重复 n 次,用逗号隔开,n 前面的项可重复 n 次,用空格隔开。Declare 声明, set 为变量赋值, print 输出,declare name nchar(5) set name =王华 print name 。流程控制语句:beginend 开始结束 ,if else,如果,case whenthen 事实 实情,while while beginend 当时候, return 返回,聚合函数:Avg() 平均值,count() 计数,max() 最大值,min(
3、) 最小值,sum() 合计,having,所有,distinct 不同,不重复。日期函数:getdate() 返回现在时间, dateadd(daetpart,number,date) 当前日期加上指定日期,datediff (datepart,startdate,enddate)两个日期之差, datename(datepart,date) 返回指定日期的字符串,datepart(datepart,date) 返回指定日期部分整数。Year 年,quarter 季度,month 月,dayofyear 天(一年中的第 n 天)day 天(一月中的第 n 天)字符串函数:len() 返回字符
4、串个数,substring =mid()(字符串,第几位开始,取几位) 返回字符串的一部分,ltrim() 去左边空格,rtrim() 去右边空格,replace 用一个字符串替换另一个字符串。创建表:create table 表名 (列名 char,列名 nvarchar,列名 int) go,primary key() 主键。修改表:alter table(修改表) 表名 add(加) 列名 drop column(删除列) 列名,alter column 列名。删除表:drop table 表名。重命名表: sp_rename 当前对象名, 新表名。约束:primary key 主键,f
5、oreign key 外键,default 默认值,check 约束,unique 唯一,not null 不能为空。查询:select distinct 列名,列名Into From join 表 on 条件Where Group by Having 没有 group by 不能出现 havingOrder by union 合并 条件:比较 =,范围 between and ,集合 in notin,字符匹配 like _单个字符串,%任意字符, 其中任何单个字符,不匹配其中字符。插入:insert values ,insert 查询每个银行的的总贷款金额,并把结果存入数据库首先在数据库中
6、建立一个新表,其中一列存放银行号,另一列存放相应的总贷款金额Create table 新表名 (行号 格式 , 总贷款金额 格式)然后对贷款表按银行号分组求总贷款金额,再把银行号和总贷款金额存入新表中Insert into 新表名 select 银行号 ,sum(贷款金额) from 贷款表 group by 银行号删除:delete from where 更新:update set= where 创建视图 create view -视图名 as (select _from _where) 2create view v_loan (法人名称 ,银行名称,贷款日期,贷款金额)as select
7、ename,bname,ldate,lamountfrom bankt b join loant l on b.bno=l.bno join legalentityt le on le.eno=l.eno-引用视图创建视图create view v_bankloanasSELECT 法人名称 ,银行名称, 贷款日期, 贷款金额FROM loandb.dbo.v-loanwhere 银行名称 =建设银行上海分行select *from v_bankloanwhere 法人名称 =新意企业策划中心create view v_l_loan (银行代码, 贷款法人数,贷款情况)with encrypt
8、ion asselect b.bno,count(distinct eno),case when count(distinct eno)6 then 多when count(distinct eno)3 then 一般when count(distinct eno)0 then 少else 无法人贷款end from bankt b left join loant l on b.bno=l.bnogroup by b.bno创建存储过程的语句创建带输入参数和输出参数的存储过程:统计指定城市在银行在指定日期以后的总贷款金额和平均贷款金额,将统计结果作为输出参数。create proc p_ino
9、ut_loan -创建存储过程名字city nvarchar (10), -赋与变量输入参数指定银行所在城市date smalldatetime, -输入参数指定贷款日期sum_amount int output , -输出参数总贷款金额不要忘了逗号avg_amount int output -输出参数平均贷款金额as -创建结束语select sum_amount=SUM(lamount),avg_amount=AVG(lamount)-赋与查询变量from bankt b join loant l on b.bno=l.bno where (bname like %+city+%)and
10、(ldatedate) -在条件中城市declare s int ,a int -声明变量声明s与a为整数型exec p_inout_loan 北京 ,2005-12-31,s output ,a output -执行print 北京的银行-12-31之后的总贷款金额为:+ cast(s as char(6)+万元,平均贷款金额为:+ cast(a as char(6)+万元 -cast (a as)(投射)列类型转换3创建使用with encryption 选项的存储过程:统计指定银行贷款且贷款金额高于此银行的平均贷款的法人名称、贷款日期和贷款金额create proc p_e_loan -
11、创建存储过程 过程名 更改用 alter 删除用 drop bname nvarchar(10) -赋与一个输入变量- with encryption -加密存储过程的定义语句as -创建结束语select ename,ldate,lamountfrom bankt b join loant l on b.bno=l.bno join legalentityt l1 on l1.eno=l.eno where bname=bname and lamount -赋与条件变量(SELECT AVG(loant.lamount) AS 平均贷款FROM loant INNER JOIN bankt
12、ON loant.bno = bankt.bnoWHERE (bankt.bname = bname)-如果指定银行为“工商银行北京 B支行”,则执行存储过程的p_e_loan的代码如下:exec p_e_loan 工商银行北京B支行 -执行工商银行北京B支行 的存储过程-创建一个scroll 游标,演示 last、prior、relative、first、next和absolute 的选项使用declare bno char(5),bname nvarchar(15),btel char(8) -先声明一个变量,让查询的结果输入给变量declare Bank_scr scroll curso
13、r for-再声明一个游标(select bno,bname,btel from bankt )-声明(游标名)指定所有提取项游标对哪个查询open bank_scr -打开游标-fetch提取 last 最后一个prior 上一个relative 相对当前行first 第一行next 下一行absolute n 取结果集中的第 n行fetch last from bank_scr into bno,bname,btel -提取 数据 print last:+bno+ +bname+ +btel-从银行表中提取最后一行数据进入(插入)到变量close bank_scr -关闭游标dealloc
14、ate bank_scr -释放资源-定义一个查询上海银行的游标,并使用fetch next逐个提取每行数据并按下列形式输出:“银行代码: B1100 银行名称:工商银行北京分行电话:-3489”declare bno char(5),bname nvarchar(15),btel char(8)declare cur_2 cursor forSELECT BankT.*FROM BankTWHERE (Bname LIKE N%上海% )open cur_2fetch next from cur_2 into bno,bname,btelwhile fetch_status=0beginpr
15、int 银行代码: +bno+ 银行名称:+ bname+ 电话:+ btelfetch next from cur_2 into bno,bname,btelendclose cur_24deallocate cur_2-定义一个查询所有银行的游标,并使用fetch next逐个提取每行数据并按下列形式输出“银行代码:B1100 银行名称工商银行北京分行电话”declare bno char(5), bname nvarchar(15), btel char(8)declare bank_c1 scroll cursor forSELECT bno, bname, btelFROM banktopen bank_c1fetch next from bank_c1 into bno, bname, btelwhile fetch_status=0beginprint