数据库语言T-SQL的简单使用

发表于:2016-11-10 10:05

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:niaonao    来源:51Testing软件测试网采编

  一、前言
  语言大都是想通的,高级语言都是简单易懂的。不像汇编语言那么接近底层硬件。像C语言、Java语言 、c++语言、c# .net语言等语言基本语句结构一样,(c语言是基础,大家应该都有所了解了 ^_^ ),学会一种像其他语言发展也不是很难。这里说的T-SQL语言看名字就知道和数据库有关,主要用于为数据库的操作命令而服务的。
  运行环境及界面展示
  (1).运行环境:这里使用的是sql server2012
  (2).通过T-SQL语言写的小程序及控制台结果显示:
  ------------------------------------- next ------------------------------------
  二、简单的小程序
  1.hello world及简单的a+b
  declare @a int,@b int,@num int,@hello varchar(20)
  set @hello = 'Hello World'
  set @a = 1
  set @b = 2
  set @num = @a + @b
  print(@hello)
  print(@num)
  结果如下:
  (1).其中 'declare'关键字用来声明数据变量及数据类型,程序中第一行声明 int型变量 a,b,num及 varchar型变量hello;
  (2).变量需用 '@'符号标识,不使用 '@'标识常量不被识别程序报错。
  (3).'set' 关键字一般用于赋值及运算
  (4).'print' 输出函数,显示内容在控制台。相当于c语言的输出printf()
  (5).注释语句,'--' 相当于C语言的'//','/**/'
  2.基本的语法结构
  (1)选择结构
--三个数的大小
declare @x int, @y int, @z int, @min int, @max int
select @x = 2, @y = 3, @z = 4
set @min = @x
set @max = @y
if @min > @y
set @min = @y
if @min > @z
set @min = @z
if @max < @y
set @max = @y
if @max < @z
set @max = @z
print('三个数中最大的数是:')
print @max
print('三个数中最小的数是:')
print @min
  结果如下:
  其中if 可与else组合使用
  (2)循环结构
--循环结构  求 1/1+ 1/2 +....>10 用了多少步
declare @now float, @time int
set @now = 0.0
set @time = 0
while @now <= 10
begin
set @time = @time + 1
set @now = @now + 1.0/@time
end print('当1/1+ 1/2 +....的值大于10时的程序运算次数为:')
print @time
  结果如下:
  其中begin -- end 相当于{}大括号的作用,包含在begin -- end之间的为一个语句块,同样begin -- end支持嵌套使用。
  顺序结构就没被必要通过 T-SQL再写个小程序了。然后上面的两个小程序只是简单的展示部分语句,同样循环结构支持 for 语句,选择结构支持case等。
  ------------------------------------- then ------------------------------------
  三、T-SQL的实用性
  到这里还没看出来 T-SQL语言有什么用,如果仅仅是写程序的话其他语言都可以,并且基本的 c语言就能实现。
  这里就通过一个实用程序展示一下该语言的用处。该语言支持数据库sql server语句。主要引入程序的思想来解决数据库中对记录,对数据的操作。举个例子,像如果要插入一组数据,数据量很大,单个执行insert 语句是不是要执行多次,而这里循环结构就写几行代码执行即可。
create database zyn     --创建数据库
use zyn
--创建表test
create table test
(
id int,
name varchar(20),
age int,
gender varchar(20)
)
--修改表结构
alter table test add grade int
alter table test alter column gender varchar(15)
--小程序:插入10000条记录到test表
declare @_id int, @_age int, @_grade int , @_gender varchar(20), @_name varchar(20)
--范围:1-10000    17-25        60-99         m   f
declare @i int, @j int ,@k int ,@l int, @n varchar(20)
set @i = 0
while @i < 10000
begin
set @_grade = 0
set @j = 0
set @_id = 0
set @_age = 0
set @k = 0
set @n = ''
while @j < 5
begin
set @n = @n + CHAR(RAND()*25+65)
set @j = @j + 1
end
set @_name = @n
--age
set @_age = RAND()*8+17
--grade
set @_grade = RAND()*39 + 60
--gender
set @k = RAND()*2
if @k = 0
set @_gender = 'famale'
else
set @_gender = 'male'
--id
set @_id = @i + 1
--将生成的数据通过sql语句insert插入表test
insert into test values(@_id,@_name, @_age, @_gender, @_grade)
set @i = @i +1
end
--查询
select * from test
  程序查询结果如下:
  上程序实现了基本的数据库的创建,表的创建与基本操作,通过 T-SQL程序随机生成的 10000条记录通过 insert语句插入表 test中。
  当然该语言的功能不止于此,还可以管理数据库,通过触发器监听对数据进行操作的记录等详细信息到日志文件。可根据用户需求对数据库中的表自由灵活的拆分组合成新的表。T-SQL语言的使用方便了数据库的管理与数据处理。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号