-------   Windows Phone 7手机开发、.Net培训、期待与您交流! -------

经过一天的奋斗,终于总结出这些常用的T-SQL语句。

--创建数据库
CREATE DATABASE SQLTest
ON
(NAME=SQLTest_date,FILENAME='E:\数据库\SQLTest.mdf',SIZE=3,FILEGROWTH=1
)
LOG ON
(NAME=SQLTest_log,FILENAME='E:\数据库\SQLTest.ldf',SIZE=1,FILEGROWTH=1
)
GO--删除数据库
DROP DATABASE SQLTest--修改数据库(重命名)
ALTER DATABASE SQLTest
MODIFY name=Test--备份数据库
BACKUP DATABASE SQLTest TO DISK ='E:\数据库\SQLTest.bak'--还原数据库
RESTORE DATABASE SQLTest FROM DISK='E:\数据库\SQLTest.bak'--创建数据库中的表
USE SQLTest
CREATE TABLE Teacher
(
Id INT IDENTITY(1,1) NOT NULL,
Name VARCHAR(20) NOT NULL,
Sex CHAR(2) NULL,
Phone VARCHAR(20) NOT NULL,
Address VARCHAR(100) NULL,
Email VARCHAR(30) NULL
)--删除数据库中的表
DROP TABLE Teacher--更新数据库中的表
--添加字段
ALTER TABLE Teacher
ADD Sallary smallmoney null--删除字段
ALTER TABLE Teacher
DROP COLUMN Sallary--修改字段
ALTER TABLE Teacher
ALTER COLUMN Phone VARCHAR(12) NULL--数据安全性
--创建规则
CREATE RULE SEX_RULE AS @Sex IN('男','女')
GO--使用规则
EXECUTE sp_bindrule 'SEX_RULE','Teacher.Sex'--解除规则
EXECUTE sp_unbindrule 'Teacher.Sex'--删除规则
DROP RULE SEX_RULE--数据添加
INSERT INTO Teacher VALUES('Tom','男','145656789','sdkjagfi','jkgsdhlfuihl',2000)
INSERT INTO Teacher (Name,Sex) VALUES('Juery','男')--数据删除(无条件会删除所有元组)
DELETE FROM Teacher WHERE Id='02'--数据更新(无条件会更新所有元组)
UPDATE Teacher SET Sex='女' WHERE Name='Jack'--数据查询
--查询所有列
SELECT * FROM Teacher--查询指定列
SELECT Name,Sex FROM Teacher--在查询指定列中使用表达式
SELECT Name,Sex,Sallary*1.2 AS Sallary FROM Teacher--重新命名结果列名
SELECT Name AS 姓名 FROM Teacher
SELECT 姓名=Name FROM Teacher--将查询的表生成一个新表
SELECT Name,Sex INTO NEWTeacher FROM Teacher--取出查询结果的部分内容
SELECT TOP 10 * FROM Teacher--使用逻辑表达式进行查询
SELECT * FROM Teacher WHERE Sallary<=1000 OR Sallary>=3000
SELECT * FROM Teacher WHERE Sallary>1000 AND Sallary<3000
SELECT * FROM Teacher WHERE NOT(Sallary>3000)--使用通配符进行模糊查询
SELECT * FROM Teacher WHERE Name LIKE '_ac%'
SELECT * FROM Teacher WHERE Name LIKE '[J,T]%'--使用BETWEEN...AND关键字进行查询
SELECT * FROM Teacher WHERE PostDate BETWEEN '2012-12-01' AND DATEADD (DAY ,3, '2012-12-01')--使用IN关键字进行查询
SELECT * FROM Teacher WHERE Sex IN ('男','女')
SELECT * FROM Teacher WHERE Sex IN (SELECT Sex FROM Teacher GROUP BY Sex)--使用NULL关键字进行查询
SELECT * FROM Teacher WHERE Name IS NOT NULL--排序查询
SELECT * FROM Teacher ORDER BY Sallary ASC
SELECT * FROM Teacher ORDER BY Sallary DESC--分组查询
SELECT Email FROM Teacher GROUP BY Email
SELECT Sex, COUNT(Name) AS Count FROM Teacher GROUP BY Sex HAVING Sex='男'--使用聚集函数查询
SELECT COUNT(*) AS 总个数 FROM Teacher --"*"包括空值行
SELECT SUM(Sallary) AS 总和 FROM Teacher
SELECT AVG(Sallary) AS 平均数 FROM Teacher
SELECT MAX(Sallary) AS 最大值 FROM Teacher
SELECT MIN(Sallary) AS 最小值 FROM Teacher--多表连接查询
--内连接
SELECT Teacher.Name,Course.Name FROM Teacher,Course WHERE Teacher.Id=Course.TeacherId
SELECT Teacher.Name,Course.Name FROM Teacher INNER JOIN Course ON Teacher.Id=Course.TeacherId--外连接
SELECT Teacher.Name,Course.Name FROM Teacher FULL OUTER JOIN Course ON Teacher.Id=Course.TeacherId
SELECT Teacher.Name,Course.Name FROM Teacher LEFT OUTER JOIN Course ON Teacher.Id=Course.TeacherId
SELECT Teacher.Name,Course.Name FROM Teacher RIGHT OUTER JOIN Course ON Teacher.Id=Course.TeacherId--循环控制语句
--WHILE语句
DECLARE @num int
SELECT @num=0
WHILE @num<10
BEGIN
SELECT @num=@num+1
SELECT @num
END--GOTO语句
BEGIN
SELECT Name FROM Teacher
GOTO SKIP
SELECT * FROM Teacher
SKIP:
PRINT 'SELECT * FROM Teacher did not get excuted'
END--IF...ELSE语句
DECLARE @X INT, @Y INT,@Z INT
SELECT @X=2,@Y=5,@Z=4
IF @X>@Y
PRINT 'X>Y'
ELSE IF @Y>@Z
PRINT 'Y>Z'
ELSE
PRINT 'Z>Y'--CASE语句
SELECT Sallary,
CASE
WHEN Sallary>=3000 THEN 'VERYGOOD'
WHEN Sallary>=2000 THEN 'GOOD'
ELSE 'BAD'
END
FROM Teacher--WHILE语句
DECLARE @I INT
SET @I=5
WHILE @I>-1
BEGIN
PRINT @I
SET @I=@I-1
IF @I=1
BREAK
END--WAITFOR语句
SELECT * FROM Teacher WAITFOR DELAY '00:00:10'--10秒后执行
SELECT * FROM Teacher WAITFOR TIME '00:00:10'--直到00:00:10才执行--常用函数
--CHARINDEX函数
SELECT CHARINDEX ('a','I have many friends')
SELECT CHARINDEX('a','I hava many friends',5)--LEFT函数
SELECT LEFT('I hava many friends',10)--RIGHT函数
SELECT RIGHT('I have many friends',10)--LEN函数
SELECT LEN('I have many friends')--LTRIM函数
SELECT LTRIM('  I have many friends')--RTRIM函数
SELECT RTRIM('I have many friends   ')--LOWER函数
SELECT LOWER('I Have Many Friends')--UPPER函数
SELECT UPPER('I have many friends')--PATINDEX函数(字符串中的第一个a)
SELECT PATINDEX('%a%','I have many friends')--REPALCE函数(替换)
SELECT REPLACE ('He is a student','student','teacher')--REVERSE函数(反转)
SELECT REVERSE('ABCDEFG')--STR函数
SELECT STR(123.45)
SELECT STR(123.45,6,2)--SUBSTRING函数
SELECT SUBSTRING('I have many friends',1,LEN('I have many friends')/2)--DATEADD函数
SELECT DATEADD(DAY,2,'2012-12-05')--DATENAME函数
SELECT DATENAME(WEEKDAY,'2012-12-05') AS 星期几--DATEPART函数
SELECT DATEPART(WEEKDAY,'2012-12-05') AS 星期的第几天--DAY函数
SELECT DAY('2012-12-05') AS 天--MONTH函数
SELECT MONTH('2012-12-05') AS 月--YEAR函数
SELECT YEAR('2012-12-05') AS 年--GETDATE函数
SELECT GETDATE() AS 目前时间
SELECT YEAR (GETDATE())--CAST函数(数据类型转换)
SELECT CAST('010101' AS DATETIME) AS 日期年月日
SELECT CAST('010101' AS FLOAT) AS '0不见了'--CONVERT函数(数据格式转换)
SELECT CONVERT(VARCHAR(8),GETDATE(),1) AS 日期
SELECT CONVERT(VARCHAR(8),GETDATE(),8) AS 时间--事务
--显示事务
USE SQLTest
BEGIN TRANSACTION TA
INSERT INTO Teacher (Name,Sex) VALUES ('LILEI','男')
INSERT INTO Teacher (Sex) VALUES('女')
ROLLBACK TRANSACTION
SELECT * FROM Teacher--隐式事务
SET IMPLICIT_TRANSACTIONS ON --隐式事务不需要BEGIN TRANSACTION
INSERT INTO Teacher (Name,Sex) VALUES ('LILEI','男')
COMMIT TRANSACTION
INSERT INTO Teacher (Name,Sex) VALUES ('LILI','女')
ROLLBACK TRANSACTION
SELECT * FROM Teacher
SET IMPLICIT_TRANSACTIONS OFF --自动处理事务
INSERT INTO Teacher (Name,Sex) VALUES ('LILEI','男')
COMMIT TRANSACTION
BEGIN TRANSACTION --不再是隐式事务
INSERT INTO Teacher (Name,Sex) VALUES ('LILI','女')
ROLLBACK TRANSACTION
SELECT * FROM Teacher--事务案例
BEGIN TRANSACTION
INSERT INTO Teacher (Name,Sex) VALUES ('LILI','女')
INSERT INTO Teacher (Name,Sex) VALUES ('LILI','女')
INSERT INTO Teacher (Name,Sex) VALUES ('LILI','女')
INSERT INTO Teacher (Name,Sex) VALUES ('LILI','女')
DECLARE @COUNT INT
SET @COUNT=(SELECT COUNT(Name) FROM Teacher WHERE Name='LILI')
IF @COUNT>4
BEGIN
ROLLBACK TRANSACTION
PRINT '数据过多,失败!'
SELECT * FROM Teacher
END
ELSE
BEGIN
COMMIT TRANSACTION
PRINT '数据添加成功!'
SELECT * FROM Teacher
END--锁
--查看系统锁
EXECUTE sp_lock--锁定表的某一行
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SELECT * FROM Teacher ROWLOCK WHERE Id=5--锁定整个表
SELECT * FROM Teacher TABLOCK WHERE 1=1--排它锁
BEGIN TRANSACTION TRAN1
UPDATE Teacher SET Phone='5842156624' WHERE Name='LILI'
WAITFOR DELAY '00:00:10'
COMMIT TRANSACTION
BEGIN TRANSACTION TRAN2
SELECT * FROM Teacher WHERE Name='LILI'
COMMIT--共享锁
BEGIN TRANSACTION TRAN1
SELECT * FROM Teacher WITH(HOLDLOCK)
WAITFOR DELAY '00:00:10'
COMMIT TRANSACTION
BEGIN TRANSACTION TRAN2
SELECT Name,Sex FROM Teacher
UPDATE Teacher SET Phone='111111111' WHERE Name='LILI'
COMMIT TRANSACTION--死锁
BEGIN TRANSACTION TRAN1
UPDATE Teacher SET Phone='33333333' WHERE Name='LILEI'
WAITFOR DELAY '00:00:10'
UPDATE Teacher SET Phone='44444444' WHERE Name='LILI'
COMMIT TRAN
BEGIN TRAN TRAN2
UPDATE Teacher SET Phone='44444444' WHERE Name='LILI'
WAITFOR DELAY '00:00:10'
UPDATE Teacher SET Phone='33333333' WHERE Name='LILEI'
COMMIT TRANSACTION--存储过程
--创建存储过程
CREATE PROCEDURE SELECTBYSEX
@COUNTS INT OUTPUT
AS
BEGIN
SET NOCOUNT ON
SET @COUNTS=(SELECT COUNT(*) FROM Teacher WHERE Sex='女')
END
GO--执行存储过程
DECLARE @COUNTS INT
EXECUTE SELECTBYSEX @COUNTS OUTPUT
PRINT @COUNTS
GO--查看存储过程
EXECUTE sp_help SELECTBYSEX
GO--删除存储过程
DROP PROCEDURE SELECTBYSEX
GO

  

转载于:https://www.cnblogs.com/zhang-z-qiang/archive/2013/04/02/2997063.html

[黑马程序员五]:常用的T-SQL语句相关推荐

  1. 【黑马程序员pink老师前端】网页相关概念

    java 学习笔记指路 基础知识 Python转java补充知识 Java中常见的名词解释 前端 [黑马程序员pink老师前端]HTML [黑马程序员pink老师前端]JavaScript基础大总结 ...

  2. 【黑马程序员pink老师前端】JavaScript对象

    java 学习笔记指路 基础知识 Python转java补充知识 Java中常见的名词解释 前端 [黑马程序员pink老师前端]HTML [黑马程序员pink老师前端]JavaScript基础大总结 ...

  3. 黑马程序员视频教程学习mybatis框架常用注释SQL语句学习笔记?

    mybatis学习笔记 常用注释增删改查SQL语句 常用注释拓展SQL语句 解决实体类属性和数据库表中的属性名称不相同的问题: mybatis注解之一对一查询: mybatis注解之一对多查询: my ...

  4. 黑马程序员C语言基础(第五天)运算符与表达式、程序流程结构、数组和字符串、函数

    https://www.bilibili.com/video/BV15W411K7k6?p=93&spm_id_from=pageDriver 黑马程序员C语言基础(第五天)运算符与表达式.程 ...

  5. MySQL常用图形管理工具 | 黑马程序员

    MySQL性能强劲,是目前使用最广泛的数据库之一,以 MySQL为学习原型也方便之后掌握其他数据库,下面就给大家全面讲解下MySQL8.0的新特性,从零基础到高阶一站式学习,结合实际案例让大家有所收获 ...

  6. 黑马程序员Java教程学习笔记(五)

    学习视频:https://www.bilibili.com/video/BV1Cv411372m 如侵权,请私信联系本人删除 文章目录 黑马程序员Java教程学习笔记(五) 日期时间:Date.Sim ...

  7. HTML+CSS+JavaScript网页制作案例教程-黑马程序员-第五章课后习题(课程介绍专栏效果)

    黑马程序员编著的教材  HTML+CSS+JavaScript网页制作案例教程 第五章:"课程介绍"专栏-课后习题参考代码 题目原型: 请结合给出的素材,运用列表标记,超链接标记以 ...

  8. 【2022黑马程序员】SQL优化

    [黑马程序员]SQL优化笔记 文章目录 [黑马程序员]SQL优化笔记 插入数据优化 大批量插入数据 总结 主键优化 数据组织方式 页分裂 A. 主键顺序插入效果 B. 主键乱序插入效果 页合并 索引设 ...

  9. k8s之Pod详解(五)【Kubernetes(K8S) 入门进阶实战完整教程,黑马程序员K8S全套教程(基础+高级)】

    参考于Kubernetes(K8S) 入门进阶实战完整教程,黑马程序员K8S全套教程(基础+高级) Pod Pod的结构 每个Pod中都可以包含一个或者多个容器 这些容器可以分为两类: 用户自定义用的 ...

最新文章

  1. 详解LINUX 的DHCP服务
  2. 剑指offer十一:二进制中1的个数
  3. 共享一些知识点的学习地址
  4. 【NLP】打破BERT天花板:11种花式炼丹术刷爆NLP分类SOTA!
  5. JAVAWEB入门之Sevlet的执行原理
  6. Verizon的SDN策略:不鸣则已,一鸣惊人?
  7. 全新胶囊网络Efficient-CapsNet效果显著!
  8. mysql的建库建表语句_SQL语句(建库、建表、修改语句)
  9. 【Flink】Flink 消费 kafka 实现 限流处理 RateLimiter
  10. js获取html元素并且修改属性,JavaScript中获取和修改元素属性的值
  11. java的VIRT高的问题理解
  12. 2010年3月blog汇总:企业架构、团队管理
  13. Unity 3D 特效学习记录
  14. Pyton爬虫实现豆瓣登陆
  15. Docker下elasticsearch8部署、扩容、基本操作实战(含kibana)
  16. 【智慧农业】温室大棚控制系统如何解决管理粗放问题
  17. 一个单身程序员的新年寄语
  18. 帆软报表列表_帆软入门与报表设计
  19. STM32芯片超时无应答 无法连接(USB转串口有黄色感叹号)
  20. 【Axure教程】多选和批量操作的表格模板

热门文章

  1. Mybatis学习--Mapper.xml映射文件
  2. 对象水平对齐,并且按照竖直方向排列
  3. jquery源码解析:代码结构分析
  4. 说给做管理软件的同行:你们得学会职业规划
  5. MongoDB 常用故障排查工具
  6. Android Glide加载图片成圆形
  7. android 解决listview.notifyDataSetChanged刷新时Imageloader加载图片闪烁问题
  8. [转]微信小程序开发需要注意的29个坑
  9. Java并发编程—说说Runnable与Callable
  10. java.lang包—枚举类Enum