T-SQL查询语句

1、SQL的组成

①DML:数据操纵语句

select、insert、delete、update

②DDL:数据定义语句

create、alter、drop

③DCL:数据控制语句

grant、revoke

2、查询语句:select

select 列名1,列名2,…… [into 新表名称] from 表名 [where 条件表达式]

[order by 列名 排序方式] 排序

[group by 表达式] 分组

[having 条件] 分组搜索

3、比较运算符

< > = >= <= < > !=

小于 大于 等于 大于等于 小于等于 不等于 不等于

between ...... and ...... :在......之间,包含两个边界

is(not) null :是(否)为空

like :模糊匹配

in :在 ...... 之间,指定范围

4、逻辑表达式:

and :并且,两个条件都必须满足

or :或者,两个条件只要满足一个

not :非,取反

5、特殊字符

①top n :前n行

②as :别名,可以省略

③asc|desc :升序|降序 默认为asc

④% :代表任意字符

⑤_ :代表一个字符

⑥[ ] :括号内任选一个字符

⑦[^ ] :括号外任选一个字符

6、聚合函数:

sum :求和 avg :求平均值 min :求最小值

max :求最大值 count :求个数

分组使用 group by

条件使用 having 包含聚合函数

7、表的连接:

内连接:inner join

只返回匹配条件的行

外连接:

左外连接:left join 返回左表所有行和右表有关联的行

右外连接:right join 返回右表所有行和左表关联的行

完整外连接:full join 返回左表和右表所有行(合并表)

交叉连接:cross join

select a.name,a.school,b.name,b.job from a inner|left|right|full join b on a.name=b.name

8、事务

是一个由一组命令组成,不可分割的工作逻辑单元,这组命令要么都执行,要么都不执行。

属性:ACID

原子性(A):事务是不可分割的整体

一致性(C):事务执行前后必须保持一致状态

隔离性(I):每个事务不依赖与其他事务,都是独立的

持久性(D):一旦提交永久保存

9、事务的命令

开始事务:begin transaction 可省略

提交事务:commit tran

回滚(撤销)事务:rollback tran

实际操作中需要使用@@error变量判断事务是成功还是失败来决定提交还是回滚

10、锁:用于多用户环境下保证数据库完整性和一致性,防止事务访问指定资源的手段

锁的模式:

共享锁(S锁):用于读取数据,拥有共享锁的资源,不能被修改,兼容其他S锁。

排他锁(X锁):用于数据修改,与其他任何锁都不兼容。

更新锁(U锁):用于读取和修改,与S锁兼容,不影响读取,与U锁不兼容,避免死锁。形成死锁的条件:

①互斥条件:每个事务独占资源

②请求和等待条件:已有资源请求新资源

③不剥夺条件:获得新资源前不释放旧资源

④环路等待条件:请求资源互相占用

原文发布于微信公众号 - L宝宝聊IT(gh_b0e552aa80db)

原文发表时间:2017-12-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏农夫安全

注入学习之sqli-labs-4(第三关)

前言 说明一下问什么没有less2、less3、less4的讲解? 前两篇如果你弄懂了,第2、3、4关卡原理都是一样的,无非是sql语句的稍微不同 比如: 第一...

3336
来自专栏积累沉淀

Java设计模式(一)----单例模式

单例模式 一、特点: 二.分类 (一)、懒汉式单例 (二)、双重检查锁定 ...

1779
来自专栏行者常至

java中的单例模式浅析

Singleton模式主要作用是保证在java应用程序中,一个类class只有一个实例存在。在很多操作中,比如建立目录、数据库连接都需要这样的单线程操作。

601
来自专栏杨建荣的学习笔记

Oracle中的PUBLIC(r10笔记第14天)

Oracle中的PUBLIC是一种特殊的存在,总是感觉概念比较模糊,我们就简单通过几个测试来理解吧。 首先我们创建一个public的synonym,我们看看这...

2904
来自专栏idba

MySQL 5.7新特性之五

本系列文章基于 5.7.12 版本讲述MySQL的新特性。从安装,文件结构,SQL ,优化 ,运维层面 复制,GITD等几个方面展开介绍 5.7 的新特性和功能...

942
来自专栏PHP在线

介绍mysql中replace方法

今天在编程的时候,学习了replace into的用法,真的很好用,是insert into的增强版。在向表中插入数据时,我们经常会遇到这样的情况:1、首先判断...

2894
来自专栏陈本布衣

SQLite 带你入门

SQLite数据库相较于我们常用的Mysql,Oracle而言,实在是轻量得不行(最低只占几百K的内存)。平时开发或生产环境中使用各种类型的数据库,可能都需要...

3715
来自专栏我爱编程

Day24访问数据库

使用SQLite SQLite是一种嵌入式数据库,它的数据库就是一个文件。由于SQLite本身是C写的,而且体积很小,所以,经常被集成到各种应用程序中,甚至在i...

3704
来自专栏散尽浮华

mysql表名忽略大小写问题记录

问题描述: 一开发同事在linux下调一个程序老是报错说找不到表,但是登陆mysql,show tables查看明明是已经创建了这张表的!!如下: mysql>...

2387
来自专栏PingCAP的专栏

TiDB 源码阅读系列文章(四)Insert 语句概览

本文为 TiDB 源码阅读系列文章的第四篇。上一篇文章简单介绍了整体流程,无论什么语句,大体上是在这个框架下运行,DDL 语句也不例外。

3935

扫码关注云+社区