目录

  • 前言
  • 变量
    • 局部变量的声明和赋值
  • 通配符
  • 常用的字符串函数
    • substring
    • 日期函数
  • 转换数据类型函数
    • convert(a,b):强制类型转换
  • 聚合函数
    • avg,max,sum,count(*)
  • 流程控制语句
  • 数据的插入
  • 数据的更新
  • 数据的删除
  • 数据的查询
    • 去掉重复值
    • 返回前 n 行(百分比)的数据
    • 返回合并的多张表的结果集(表的数据类型必须一致)
    • 条件筛选
    • 按照指定序列排序
    • 分组
    • having 子句对分组结果再选择
    • 连接查询
    • 自连接
  • 子查询(嵌套查询)

前言

代码所用表(表名:first,second,new_table)



本篇不是详细介绍 T-SQL 的语法,而是总结常用的 T-SQL 语句

变量

局部变量的声明和赋值

declare @id int --声明
set @id = 11 --赋值
select @id as showId

通配符

% 表示匹配零个或者多个字符

select cname from first where cname like '张%'

被查询的表

查询的结果

_ 表示匹配一个字符

select cname from first where cname like '张_'

查询的结果

[ ] 表示在某一个范围内的字符

select cid from first where cid like '[0-3]'

查询的结果

[ ^] 表示不在某一个范围内的字符

select cid from first where cid like '[^0-3]'

查询的结果

常用的字符串函数

substring

select cname = substring(cname,1,1) from first

日期函数

datediff():返回日期之差

select cname as 名字,年龄 = datediff(year,cbirthday,getdate()) from first

查询结果

转换数据类型函数

convert(a,b):强制类型转换

a 是要转换的数据类型,b 是被转换的数据类型

declare @number int
set @number = 3
select convert(char(1),@number) as 转换后

聚合函数

avg,max,sum,count(*)

select count(*) as 行数,avg(convert(int,cage)) as 平均年龄,max(cbirthday) as
最晚出生年月,sum(cid) as id的和 from first

流程控制语句

if … else …

declare @number_1 int ,@number_2 int
select @number_1 = 1,@number_2 = 2
if @number_1 > @number_2
print @number_1
else
print @number_2

while

declare @x int
select @x = 3
while @x = 3
begin
print @x
end

数据的插入

insert 语句:向某个表中插入数据

insert into first values(9,'insert_into',8888,'2005-10-10')
--因为出生日期是 date 类型,需要插入字符类型隐式转换

select into:把一张表的内容插入一张新表(该表未被创建)

select *
into new_table
from first
where cid > 0select * from new_table

new_table 表被创建

新表的内容

insert into:从一张表向另一张表(该表已经存在)插入数据
PS:两张表的属性类型必须一样

insert into new_table
select *
from firstselect * from new_table

因为之前插入过数据(在 select into 中插入过,所以再次插入是两倍的相同数据)

数据的更新

update first
set cid = 100
where cid = 2

数据的删除

delete from first where cid = 100
select cid from first

数据的查询

去掉重复值

select distinct cname,* from first
-- 去掉了 cname 中重复的元素

返回前 n 行(百分比)的数据

select top 3 * from first
select top 3 percent * from first

返回合并的多张表的结果集(表的数据类型必须一致)

select * from first
union
select * from new_table

条件筛选

使用 in 来筛选

select * from first where cid in (1,2)

按照指定序列排序

select * from first order by cage asc

分组

PS:group by 在 order by 前面

select cname from first group by cname

having 子句对分组结果再选择

select cname from first group by cname having cname like '张%'

连接查询

内连接

select * from first inner join second on first.cid = second.cid

外连接(此处演示左连接,此外还有右连接和完全外连接)

select * from first left join second on first.cid = second.cid

自连接

select a.cid ,b.cage from first a join first b on a.cid = b.cage

自连接的实现:通过 from 子句构造同一个表的两个实例 a,b,通过 a,b来调用相关列

SQL 之 自连接

子查询(嵌套查询)

select cid from first where cid = (select cid from second where cid =1)

常用的 T-SQL 语言相关推荐

  1. oracle v¥bh,ORACLE数据库sql语言、函数及常用命令

    file=c:\database\ydxt200108170926.dmp log=c:\database\ydxt200108170926.log fromuser=cur touser=cur1 ...

  2. 【DataBase】【SQL语言】【第三天】

    为什么80%的码农都做不了架构师?>>>    贡献作者 -[XJDomain] 博客XJ:  https://my.oschina.net/shengbingli/blog Git ...

  3. Oracle PL/SQL语言入门

    一.背景介绍 结构化查询语言(Structured Query Language,简称SQL)是用来访问关系型数据库一种通用语言,属于第四代语言(4GL),其执行特点是非过程化,即不用指明执行的具体方 ...

  4. oracle数据库sql培训,Oracle数据库SQL语言实战培训教程(全面、详细、案例、精讲)套餐...

    风哥oracle数据库SQL语言实战培训教程(案例.精讲)套餐,DBA必备技能. 套餐介绍: 风哥Oracle数据库SQL语言实战培训教程(案例.精讲)套餐,DBA必备技能. 内容: SQL语言基础入 ...

  5. (Oracle学习笔记) sql语言

    文章目录 一.sql特点 二.sql语言分类 三.表空间 查询表空间 创建表空间 修改表空间名称 增加表空间大小 减小表空间大小 删除表空间 四.用户管理 查询用户 新建用户 修改用户口令 修改默认表 ...

  6. MySQL查询语种关键字_SQL——SQL语言全部关键字详解

    http://blog.csdn.net/quinnnorris/article/details/71056445 数据库中我们做常用的就是SQL基本查询语言,甚至有些人认为数据库就是SQL,SQL就 ...

  7. java sql封装,在Java系统中封装SQL语言的处理方法及系统的制作方法

    在Java系统中封装SQL语言的处理方法及系统的制作方法[ 技术领域: ][0001]本发明涉及计算机数据处理 技术领域: ,特别是涉及一种在Java系统中封装SQL语言的处理方法及系统.[ 背景技术 ...

  8. MySQL 笔记3 -- SQL 语言

    MySQL 笔记3 – SQL 语言 MySQL 系列笔记是笔者学习.实践MySQL数据库的笔记 课程链接: MySQL 数据库基础入门教程 参考文档: MySQL 官方文档 一. SQL语言规范 S ...

  9. sql语言和php,SQL语言快速入门(三)_php

    我们日常使用SQL语言的工作过程中,使用最多的还是从已经建立好的数据库中查询信息.下面,我们就来详细介绍一下如何使用SQL语言实现各种数据库查询操作. SELECT-FROM 为方便讲解,我们在数据库 ...

  10. mysql解释器_atitit.java解析sql语言解析器解释器的实现

    atitit.java解析sql语言解析器解释器的实现 1. 解析sql的本质:实现一个4gl dsl编程语言的编译器 1 2. 解析sql的主要的流程,词法分析,而后进行语法分析,语义分析,构建sq ...

最新文章

  1. java8 jni_Java中JNI的使用详解第八篇:重载的实现
  2. ES批量提交-RestHighLevelClient
  3. HDU - 3081 Marriage Match II(二分+并查集+最大流/匈牙利删边)
  4. 优秀程序员都有哪些编程习惯?
  5. angular2系列之动画-路由转场动画
  6. 互联网支付系统整体架构详解
  7. 电力电缆2021年考试题库
  8. opengl+qt+vs学习笔记1:软件下载安装以及配置
  9. 【SEO网络推广】会被百度K站的原因
  10. intel i5处理器layout及原理图参考
  11. 如何绕开对通用VMware虚拟机检测
  12. 情感故事(我替新郎入了洞房)
  13. 所有手机中的「北斗导航」应用,都是山寨货
  14. 【异常】Session 0x0 for server null, unexpected error, closing socket connection and attempting reconn
  15. VC环境下简单的贪吃蛇
  16. 汪峰为上头条策划求婚 章子怡成炒作工具
  17. 全网最详细CDMP认证看这一篇就够了
  18. 什么是sys文件系统
  19. Centos8 yum安装Nginx
  20. Python使用pandas对CSV进行操作(11种基础操作含源码)

热门文章

  1. 开源和非开源IM即时通讯源码有什么区别,哪个更好
  2. 贝加莱plc用c语言,贝加莱PLC快速入门.pdf
  3. .gen格式文件读取,完成兰伯特和墨卡托投影转换
  4. 视频时序与BT1120的关系 FPGA实现BT.1120编码
  5. 基于FPGA的GV7600驱动控制器设计,按照BT1120协议传输YCbCr数据
  6. 机器人编程和python的区别_乐高机器人编程和计算机编程的区别
  7. JAAS(Java 认证和授权服务)
  8. Folx Pro苹果BT磁力多线程下载工具
  9. R plot图片背景设置为透明_R语言(绘图入门)
  10. 零基础搭建微信小程序商城系统