20190412 T-SQL语言一

-- T-SQL

----------------------------------------------------
-- 例如1 什么是注释符 单行注释
select *
from kc

/*
select *
from kc
*/

-- 注释的多行

/*
Create By Soar.Pang
The Time : 2019-04-08
Use For : 注释内容
*/

----------------------------------------------------


-- 常量,其实只是针对一些类型的数据
SELECT *
FROM GuidOne

insert into GuidOne
select NEWID(); -- GUID 是不会一样的

-- 常量

-- 例2 变量

DECLARE @name VARCHAR(30)
SET @name='soar.pang'
--SELECT @name AS ChinaName

PRINT @name

-- 案例3 创建一个局部变量


DECLARE @a varchar(3),@b varchar(3),@c varchar(3) -- 声明变量
SET @a='YES' -- 为变量赋值
SET @b='NO' -- 为变量赋值
PRINT '交换前: @a='+ @a +' @b=' + @b


SET @c = @a
SET @a = @b
SET @b = @c
PRINT '交换后:@a='+@a+' @b='+@b

-- 这就是变量的作用
SELECT @@ERROR


-- 全局变量,简单点的理解,就是在SQL SERVER系统使用的变量值 重要的是@@ 符号
SELECT @@CONNECTIONS

SELECT @@ROWCOUNT

SELECT @@VERSION

SELECT @@LANGUAGE -- 当前数据库语言


-- 运算符的例子


-- 创建数据库


-- bit常量
SELECT *
FROM GuidOne -- GUID 是不会 重复的

INSERT INTO GuidOne
VALUES(NEWID(),1); -- bit 针对 开发中用于存储false,true 的对应结果

 

INSERT INTO GuidOne
VALUES(NEWID(),2,3); --这个2 是不会被存放,因为fit的值只有1,0


INSERT INTO GuidOne
VALUES(NEWID(),0,5,11.22); -- 当选择decimal(18, 0) 的时候,查询出来的结果和Int 是比较相似的

-- 这里附带了工具设置,表保护的限制
-- 当设置 decimal(18, 2) 的时候 , 就表示存放两位小数

-- 那么如果我插入4位小数会如何

INSERT INTO GuidOne
VALUES(NEWID(),0,6,11.1123); -- 结果是只会保留两位,那么是否会四舍五入,那么我们来放一个大一点的值


INSERT INTO GuidOne
VALUES(NEWID(),0,7,11.1167); -- 结果就发生了变化

SELECT *
FROM GuidOne

-- 这里可以不做讲解
INSERT INTO GuidOne
VALUES(NEWID(),0,8,11.1167,'101.5E-2'); -- 现在使用科学计数方法去存储数据比较少


INSERT INTO GuidOne
VALUES(NEWID(),0,8,11.1167,'101.5E-2',0.5e-2); --科学计数办法

 


INSERT INTO GuidOne
VALUES(NEWID(),0,8,11.1167,'101.5E-2',0.5e-2,'$123'); -- 钱钱符号

 


-- 字符串

 

INSERT INTO GuidOne
VALUES(NEWID(),0,8,11.1167,'101.5E-2',0.5e-2,'$123','soar.pang');

INSERT INTO GuidOne
VALUES(NEWID(),0,8,11.1167,'101.5E-2',0.5e-2,'$123','soar');

INSERT INTO GuidOne
VALUES(NEWID(),0,8,11.1167,'101.5E-2',0.5e-2,'$123','so');

INSERT INTO GuidOne
VALUES(NEWID(),0,8,11.1167,'101.5E-2',0.5e-2,'$123','sm');

-- 运算符号

DECLARE @su int,@x int,@y int
SET @x=12 --@x=1
SET @y=5 -- @y=3
--SET @su=@x+@y --加法

--SET @su=@x*@y --乘法
SET @su=@x%@y
PRINT @su;


-- 加减也是可以对日期进行计算的


-- 日期
SELECT GETDATE() AS DATATIME;


-- 赋值运算符号
DECLARE @i int
SET @i = 2;

PRINT @i;


-- 按位运算符号
USE xsxk
GO
SELECT *
FROM GuidOne
WHERE IntType=3
GO

SELECT *
FROM GuidOne
WHERE IntType=3 AND BitType=1 -- 同时为真


SELECT *
FROM GuidOne
WHERE IntType=3 OR BitType<>1 -- 一个为真 即可

 

-- 通配符

SELECT *
FROM GuidOne T
WHERE T.VarCharType like 's%' -- 包含零个或者更多字符的任意字符串


SELECT *
FROM GuidOne T
WHERE T.VarCharType like 's_' --获取s到头的字符


INSERT INTO GuidOne
VALUES(NEWID(),0,8,11.1167,'101.5E-2',0.5e-2,'$123','Carsen');

INSERT INTO GuidOne
VALUES(NEWID(),0,8,11.1167,'101.5E-2',0.5e-2,'$123','Larsen');

INSERT INTO GuidOne
VALUES(NEWID(),0,8,11.1167,'101.5E-2',0.5e-2,'$123','Karsen');


SELECT *
FROM GuidOne G WHERE G.VarCharType like '[C-P]arsen' -- 这里其实讲述的只是一个范围


SELECT *
FROM GuidOne G WHERE G.VarCharType like '[^K]arsen' -- 不限制范围,只是即是通配符,有不包括K


---- SELECT
BEGIN
SELECT *
FROM GuidOne
END;


-- IF
DECLARE @A INT ,@B INT

SET @A=1
SET @B=2
IF @B>@A
PRINT 1; -- 只有符合就会执行

PRINT 'OK';

-- IF ... ELSE

DECLARE @aa int,@bb int
SET @aa=1
SET @bb=3

IF (@aa+@bb)>10
PRINT '我饿了'

ELSE IF @aa=1 --如果增加了ELSE IF 进行条件判断
PRINT '还行'

ELSE
PRINT '这是不对的'

 

-- CASE THEN ELSE

上一篇:SQL server 的 instead of与 after触发器区别


下一篇:HJ23 删除字符串中出现次数最少的字符