IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 呕心沥血三千字 《SQL server》《T-SQL》知识点梳理大全超级详细! -> 正文阅读

[大数据]呕心沥血三千字 《SQL server》《T-SQL》知识点梳理大全超级详细!

连接条件关键字
and并且 ?or或者 ? not非

查询
select * from 表名 where 条件
添加
insert into 表名?values(值)
或 insert into 表名(列名)values(值)列和值一一对应
注意:不允许给标识列赋值
一次添加多列
或 insert 表名(列名)values(值),(值)
直接后面跟括号即可
修改
update 表名 set 列名='值' where 条件
注意值为要修改的值
删除
delete from 表名 where 条件
Truncate table 表名 清空表,会重置标识列(慎用)

使用order by 进行排序
语句 select * from 表名 order by 需要排序的列
可以排序多列,但前提是出现相同的值,才会进行第二组的排序

模糊查询 四个通配符(%,_,[值],[^值])
都需要配合like关键字使用
%匹配任意字符串使用
_匹配一个任意字符
[]括号中的任意一个字符
[^]不在括号中的任意一个字符

聚合函数
sum()求和
max()最大值
min()最小值
avg()平均分
count()个数

使用group by进行分组
select * from 表名 group by 列名
一般使用使用时会配合着聚合函数一起使用
例如
select sex,count(*) from 表名 group by sex
根据性别就行分组,并且显示人数

使用having进行筛选
select sex,count(*) from 表名 group by sex having count(*)>1(筛选调人数少于1个人的性别(排除人妖,哈哈哈))

看到这里依旧会发现我们的查询语言有很多分支,会有一个执行的先后顺序
Select *?
from 表名
Where 条件
Group by 列名
Having 聚合函数>60
Order by 聚合函数
先分组再筛选,最后进行排序

表连接
select ?* from 表名 inner join 另一张表 on 表名.列名=另一张表.列名(博主写的比较通俗易懂,就将就将就吧)
注意:两张表连接时的列名的数据类型应该是一致的
内连接:两张表相关数据(inner join)
外连接:两张表的相关数据和另一张表的不相关数据(left join ,right join)左外连接和右外连接

(在实际工作中,很少会手动创建数据库和表,主要还是兼容性的问题,高版本可以兼容低版本,但低版本不能兼容高版本)
通过代码创建数据库和表
create database 数据库
on primary
(
? ?Name='名称'
? ?FileName='文件创建地址'
? ?Size=文件初始大小
? ?MaxSize=文件最大值
? ?FileGrowth=文件增长量
? ?注意:这个是数据文件
)
log on
(
? ?日志文件(和数据文件一样)
)
创建表
create table 表名
(
? ?列名 ?数据类型 ?约束
)
删除数据库和表(慎用,哈哈哈)
drop database 数据库名称
drop table 表名称
约束
check()检查约束
unique()唯一约束
primary key 主键约束
foreign key(列名) references 表名(列名)外键约束
identity 自增列
default 默认值

定义变量 declare关键值
可以同时定义多个变量
select和set为赋值
但set只能赋值一个,而select语句可以赋多个值
输出语句二个select 和print
显示不同,select以网格形式显示,而print以文本形式显示

数据类型转换
cast(表达式 as 数据类型)
convert(表达式,数据类型,参数)
可以去看看帮助文档选中按F1

begin-end语句相当于程序里的大括号
if-else 判断语句
while循环,注意循环条件和循环操作
case when then else end 判断分支语句相当于编程语句的switch语句
when 分数>60 then '良好' when 分数>80 then '优秀' else '该努力了' end
注意:要使用end进行结尾

使用子查询(比较运算符)
select * from 表名 where 分数>(select 分数 from 表名 where 条件)
子查询(in和not in)
select * from 表名 where 分数 in(select 分数 from 表名 where 条件)
not in 就是取反,很简单的子查询
大家肯定有点疑惑用比较运算符好还是in关键字好呢?
在特定的情况使用不同的子查询,很简单,子查询返回一个值使用比较运算符,多个值时使用in关键字
注意:子查询可以出现在sql语言的任何地点(可以看出子查询的强大能力)

使用exists关键字进行判断
博主理解吧,exists大部分是判断数据库是否存在或者是表是否存在
判断数据库是否存在语句
if exists(select * from sys.databases where name='数据库的名称')
这个当然也有not exists关键字也是取反

事务
事务:显示事务,隐式事务,自动提交事务
开始事务:begin transaction
提交事务:commit transaction
撤销事务(回滚):rollback transaction
平常会配合全局变量@@ERROR来进行配合使用,进行判断是否出错,如果出现错误将进行回滚,把执行的错误操作进行回滚,没有出错就提交保存

视图
create view 视图名称
as
查询语句
视图会把查询出来的信息放在一张新的表中(视图,便于理解),但在修改视图里的值时,表中的值也会进行修改
删除视图:drop view 视图名称
判断视图是否存在:if exists(select * from sys.objects where name='视图名称')

索引
注意:大大提高查询速度,重点适当使用,使用不恰当就会起到反作用,和填充因子有关系,可以去百度去看看,博主就不过多的解释了
create 索引类型 index 索引名称
on 表名(列名) with fillfactor=值
fillfactor表示填充因子
使用索引进行查询
select * from 表名 with(index=索引名称) where 条件
判断索引是否存在
if exists(select * from sys.indexes where name='索引名称')
删除索引
drop index 表名.索引名称
索引分为六大类型
唯一索引
主键索引
聚集索引
非聚集索引
复合索引
全文索引

下面是一些扩展
向表里添加一列
语法:alter table 表名 add 列名 数据类型
从数据库随机读取数据
select top 10 * from student order by newid()
获取数据库中所有的表名
SELECT * FROM SYSOBJECTS WHERE TYPE='U'
获取指定表的所有列名
SELECT * FROM Result WHERE ID=OBJECT_ID('TableName')
获取全部信息,1=1表示全部选择 1=2表示全部不选择
select * from student where 1=1
根据姓氏笔画进行排序
Select * From Student Order By StudentName Collate Chinese_PRC_Stroke_ci_as
清除名称两端空格
update Student set StudentName=TRIM(StudentName)?

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-10-17 12:03:34  更:2021-10-17 12:05:48 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 2:59:59-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码