常用的 T-SQL 语言
目录
- 前言
- 变量
- 局部变量的声明和赋值
- 通配符
- 常用的字符串函数
- 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 语言相关推荐
- oracle v¥bh,ORACLE数据库sql语言、函数及常用命令
file=c:\database\ydxt200108170926.dmp log=c:\database\ydxt200108170926.log fromuser=cur touser=cur1 ...
- 【DataBase】【SQL语言】【第三天】
为什么80%的码农都做不了架构师?>>> 贡献作者 -[XJDomain] 博客XJ: https://my.oschina.net/shengbingli/blog Git ...
- Oracle PL/SQL语言入门
一.背景介绍 结构化查询语言(Structured Query Language,简称SQL)是用来访问关系型数据库一种通用语言,属于第四代语言(4GL),其执行特点是非过程化,即不用指明执行的具体方 ...
- oracle数据库sql培训,Oracle数据库SQL语言实战培训教程(全面、详细、案例、精讲)套餐...
风哥oracle数据库SQL语言实战培训教程(案例.精讲)套餐,DBA必备技能. 套餐介绍: 风哥Oracle数据库SQL语言实战培训教程(案例.精讲)套餐,DBA必备技能. 内容: SQL语言基础入 ...
- (Oracle学习笔记) sql语言
文章目录 一.sql特点 二.sql语言分类 三.表空间 查询表空间 创建表空间 修改表空间名称 增加表空间大小 减小表空间大小 删除表空间 四.用户管理 查询用户 新建用户 修改用户口令 修改默认表 ...
- MySQL查询语种关键字_SQL——SQL语言全部关键字详解
http://blog.csdn.net/quinnnorris/article/details/71056445 数据库中我们做常用的就是SQL基本查询语言,甚至有些人认为数据库就是SQL,SQL就 ...
- java sql封装,在Java系统中封装SQL语言的处理方法及系统的制作方法
在Java系统中封装SQL语言的处理方法及系统的制作方法[ 技术领域: ][0001]本发明涉及计算机数据处理 技术领域: ,特别是涉及一种在Java系统中封装SQL语言的处理方法及系统.[ 背景技术 ...
- MySQL 笔记3 -- SQL 语言
MySQL 笔记3 – SQL 语言 MySQL 系列笔记是笔者学习.实践MySQL数据库的笔记 课程链接: MySQL 数据库基础入门教程 参考文档: MySQL 官方文档 一. SQL语言规范 S ...
- sql语言和php,SQL语言快速入门(三)_php
我们日常使用SQL语言的工作过程中,使用最多的还是从已经建立好的数据库中查询信息.下面,我们就来详细介绍一下如何使用SQL语言实现各种数据库查询操作. SELECT-FROM 为方便讲解,我们在数据库 ...
- mysql解释器_atitit.java解析sql语言解析器解释器的实现
atitit.java解析sql语言解析器解释器的实现 1. 解析sql的本质:实现一个4gl dsl编程语言的编译器 1 2. 解析sql的主要的流程,词法分析,而后进行语法分析,语义分析,构建sq ...
最新文章
- java8 jni_Java中JNI的使用详解第八篇:重载的实现
- ES批量提交-RestHighLevelClient
- HDU - 3081 Marriage Match II(二分+并查集+最大流/匈牙利删边)
- 优秀程序员都有哪些编程习惯?
- angular2系列之动画-路由转场动画
- 互联网支付系统整体架构详解
- 电力电缆2021年考试题库
- opengl+qt+vs学习笔记1:软件下载安装以及配置
- 【SEO网络推广】会被百度K站的原因
- intel i5处理器layout及原理图参考
- 如何绕开对通用VMware虚拟机检测
- 情感故事(我替新郎入了洞房)
- 所有手机中的「北斗导航」应用,都是山寨货
- 【异常】Session 0x0 for server null, unexpected error, closing socket connection and attempting reconn
- VC环境下简单的贪吃蛇
- 汪峰为上头条策划求婚 章子怡成炒作工具
- 全网最详细CDMP认证看这一篇就够了
- 什么是sys文件系统
- Centos8 yum安装Nginx
- Python使用pandas对CSV进行操作(11种基础操作含源码)
热门文章
- 开源和非开源IM即时通讯源码有什么区别,哪个更好
- 贝加莱plc用c语言,贝加莱PLC快速入门.pdf
- .gen格式文件读取,完成兰伯特和墨卡托投影转换
- 视频时序与BT1120的关系 FPGA实现BT.1120编码
- 基于FPGA的GV7600驱动控制器设计,按照BT1120协议传输YCbCr数据
- 机器人编程和python的区别_乐高机器人编程和计算机编程的区别
- JAAS(Java 认证和授权服务)
- Folx Pro苹果BT磁力多线程下载工具
- R plot图片背景设置为透明_R语言(绘图入门)
- 零基础搭建微信小程序商城系统