今天是双11,话说刚刚学习完SQL,自己写的一个SQL笔记

drop database 库名 删库
drop table 表名 删表
delete from 表名 删表,保留字段
truncate table 表名 删表,保留字段(更高效,删除的同时重置了表的自动增长)

--建库
create database 库名
on(    
    name=‘库名‘,
    filename=‘地址\库名.mdf‘            
)

--建表
create table 表名
(
    列名 数据类型 primary key,主键约束
    列名 数据类型 foreign key references 主键名(联接列列名),外键约束
    列名 数据类型 not null,非空约束
    列名 数据类型 unique,唯一约束
    列名 数据类型 identity(开始自增值,自增变量),自增约束
    列名 数据类型 default ‘默认值‘,默认约束
    列名 数据类型 check(约束值或者表达式) 检查约束
)

--增加记录
insert 表名(列名A,列名B) values (‘值A‘,‘值B‘) 值与列名一一对应

--删除记录
delete from 表名 where 条件 删除符合条件的值

--修改记录
update 表名 set 列名=‘修改成为的值‘ where 条件 修改符合条件的值

--查询记录
select * from 表名 “*”号代表所有,可以是列名

--增加列
alter table 表名 add 列名 数据类型

--删除列
alter table drop column 列名

--查询
select    查询的首词
from    查询的外键表(也可以就是外键表)
inner join    查询的主键表(inner可以省略,其次还有left(显示左边表的全部)和right(显示右边表的全部))
on    联接的外键的列名=主键的列名
where    需要什么条件
like    按什么查询
group by    按什么分组
having    分组显示的条件
order by    按什么排列(asc是升序,第一个最小,desc是降序,第一个最大)
--子查询
将子查询的结果做为母表的条件进行查询
用in去检索子查询的结果

--all
<all 表示小于最小值,即小于所有
>all 表示大于最大值,即大于所有

--any和some的查询功能相同
<any|some 表示小于最大值
=any|some 表示与in运算符等价
>ang|some 表示大于最小值

--相关子查询
独立于外部主查询而存在称为非相关子查询
依赖于外部主查询的子查询称为相关子查询
当主查询执行结果行数较大时,相关子查询的效率较低
当子查询执行结果行数较大时,非相关子查询的效率较低

--exists
检查子查询是否至少会返回一行数据
返回为true或false
当子查询的行存在时,则执行主查询表达式,否则不执行
外表大内表小用in
外部小内表大用exists

--T-SQL
--局部变量(自己声明的变量)
1.声明:declare {@名字 类型,@名字 类型=值}(保存单个数据,声明后初始化为NULL)
2.赋值:set @名字=值
    select @名字=值 或select @名字=值 from 表(即将查询出来的结果当值)

--全局变量(系统声明的变量,即系统变量)
@@erroy 返回上一条T-SQL的错误号,无错误为0,即执行完成为0
@@identity 返回最后插入的标志值,即插入后自动增长的主键值,没有则无法
查询
@@rowcount 返回上一条语句所影响的行数
@@servername 返回本地服务器名称
@@servicename 返回运行在注册表中的名称
(用户不能修改全局变量的值,用户也不能建立全局变量,使用一次后恢复默认值)

--打印
print:将字符串输出到消息栏(只能是字符串,系统提供convert(varchar(20),值)将money,decimal类型转换为varchar打印)

--begin end
逻辑执行块,相当于花括弧

--条件
>,<,>=,<=,=,<>(不等于)

--if...else
if 条件
begin
 执行语句
end
else
begin
 执行语句
end
(在sql中没有if...if.else...else)

--while循环
while 条件
begin
end
(break跳出循环,continue跳过本次循环)

--case
case 变量
when 等于值(多个用and) then 输出值
else 输出值(都不满足则输出)
end
或者做if...if.else...else用
case
when 判断(同where一样,多个用and) then 输出值
else 输出值(都不满足则输出)
end

--视图
一张由一张表或多张表生成的虚表

1.创建
create view v_视图名
as
查询的数据

2.查询
select * from v_视图名

--索引
聚集索引:主键索引(自动生成)
非聚集索引:其他索引(按表字段建立)
(聚集索引的建立是为了查询,非聚集索引的建立是为了插入)

创建
create [unique](唯一) [clustered(聚集索引)|nonclustered(非聚集索引)]
index idx_索引名
on 表名(列名A,列名B)

--事务
1.特性
原子性:一个事务或者执行或者不执行,没有执行到一半的道理
一致性:一个事务完成后则一个数据库里所有的表都要保证一致
隔离性:一个事务在查看数据时查看事务完成后的值,不查看事务中间值
持久性:一个事务完成后对数据库的改变是永久的

2.执行一个事务
begin transaction(开始一个事务)
执行内容
判断
true
 commit transaction(提交事务,即完成事务)
false
 rollback transaction(回滚事务,即撤销事务开始到这里执行的内容)

3.分类
显示事务:即用户创建执行的事务
隐式事务:当本事务回滚后则自动开始下一个事务
自动提交事务:每一个T-SQL语句都是一个事务,当语句执行出错则回滚到之前(即不执行)

4.作用
保证数据的一致性和可恢复性

--储存过程:需要多次使用的固定操作编写的程序或查询
1.特点
加快系统运行速度,封装复杂操作,实现模块化程序设计和代码复用,增强安全性,减少网络流量

2.系统储存过程
sp_database:列出所有数据库
sp_helpdb:报告所有数据库或指定数据库的信息
sp_renamedb:更改数据库名称
sp_tables:返回当前环境下可查询的对象列表
sp_columns:查看某个表的所有列信息
sp_help:查看某个表的所有信息
sp_helpconstraint:查看某个表的约束
sp_helpindex:查看某个表的索引
sp_stored_procedures:列出当前环境下的所有储存过程
sp_passward:修改帐号登录名

2.创建
go
if exists(select * from sysobjects where name=‘proc_储存过程名‘)
 begin drop procedure proc_储存过程名 end
(判断是否存在创建的储存过程,若有则删除)
go
create proc[edure](edure可以省略) proc_储存过程名
(@变量名A 类型 (输入的值,给下面的查询判断用)
@变量名B 类型 output (output表示输出变量,即执行后拿出去的数据))
(这里可以也不带参数)
as
select @变量名B=查询值 from where 查询值[email protected]变量名A
(查询为例)

3.查询(即执行储存过程)
go
declare @变量名A 类型 ,@变量名B 类型
exec proc_储存过程名 @变量名A=值或值,@变量名B=值或值 output(注明为输出变量)
(这里的传入的值要注意顺序,乱序则需带上创建的变量名)

4.比较(视图与储存过程)
查询的数据需要进行操作用视图
仅仅进行查询用储存过程

时间: 2024-10-25 20:12:09

今天是双11,话说刚刚学习完SQL,自己写的一个SQL笔记的相关文章

聊聊程序员如何学习英语单词:写了一个记单词的小程序

背景: 关于英文对程序员的重要性,就不多说了! 英语的学习,有很多,今天也不聊多,只聊英语单词! 关于单词的记忆,找过很多方法,下载过很多软件. 如图(其它不好用的都卸载了): 上图算是我以前用过软件,注意,是以前哦~~~ 意思就是没有坚持下来~~~~ 随时间的推移,最后它们还是被我遗忘了~~~ 为什么???不能:坚持!坚持!坚持! 学习思考: 一直在找方法: 1:下载过联想记忆法.背文章记单词,词根,各种视频~~~ 2:连单词的数据库都网上下载了一份了,期望从数据库的直接记忆单词快些~~~ 通

1024 &amp; 双11 | 程序员今天要过节,小小心意请笑纳!

纯福利帖,直接进入正题! 福利一 专题折上8折,学习硬货提前囤 10月24日0:00-24:00,全站专题享受折上8折优惠(少数专题不参与),久久观望的同学这次不要犹豫啦!这可是xiao姐姐好(si)不(pi)容(lai)易(lian)申请下来的堪比"双11"的折扣哦!(此处无专题跳转地址)别急!先看完下面的福利再去选课... 福利二 #举报奖励11111元 即日起至11月11日,若发现51CTO学院平台内课程涨价(原始标价),微博@51CTO学院举报,核实情况属实即可奖励11111元

淘宝双11数据分析与预测汇总

国庆假期留在学校做了一下林子雨博士的大数据实验--淘宝双11数据分析与预测,虽然教程写得很详细,但自己还是踩了很多坑,现在记录下来,希望给别人一点帮助. 淘宝双11数据分析与预测实验链接:http://dblab.xmu.edu.cn/post/8116/ 问题一:安装Hadoop时报错 Starting namenodes on [localhost] localhost: mkdir: 无法创建目录"/usr/local/hadoop/logs": 权限不够 localhost:

第一章 基础设施,1.2 双11背后基础设施软硬结合实践创新

1.2 双11背后基础设施软硬结合实践创新 前言 阿里巴巴作为全球领先的互联网综合业务平台,其遍布全球的数据中心中海量IT硬件设备(服务器和网络)承载了世界上最全的业务体系.一方面各种互联网服务种类之广.应用类型之多.对硬件能力需求之差异,另一方面连续7年的双11狂欢节这类世界级的玩法,对于整个集团整体业务.产品.技术体系的挑战虽不绝后,但一定空前.由此要求与之一体两面的基础设施技术能力必须要解决世界级的问题,建设世界级的架构,掌控核心的关键部件技术. 在广义数据中心总体拥有成本(TCO)模型分

良品铺子如何攻破“双11”最后一公里?

中国互联网有着神奇的现象级魔力,这种魔力除了会引发一定程度的产业变革之外,还会带来一定概率的蝴蝶效应.除此之外,这种魔力在当前的互联网产业领域里创造的价值正日趋体现,尤其是在日前刚刚结束的双11购物庆典节日中,良品铺子依靠三大策略重构物流配送和新型商业服务模型的方法,几乎堪称整个产业典型. 从现在复盘的角度来看,良品铺子之所以能斩获双11物流配送第一体验的桂冠,其主要缘由在于成功运用了三大创新服务策略.并多维度联合出击的方式.这些多元素战略举措的执行,不仅完美地促使良品铺子实现了赶超同行的目标,

双11电商手机大战盘点,大神荣耀各成势力

今年的双11虽然已经落下帷幕,但它带来的网购热情还在延续.可以预见,在未来的一周内,双11网购的各种话题还将持续. 11月12日凌晨00:04,@雷军即在微博宣布了@小米手机的双11战果:"在刚刚结束的双11活动中,小米在天猫平台上创下了崭新的记录:销售手机116万台,销售金额15.6亿人民币,约占天猫当天总额3%,成功卫冕单店第一!@小米公司这是一场大阅兵,小米用钢铁一般坚硬的事实显示了产品.供应链.物流配送和客服等综合实力,还有强大的新业务拓展能力,比如小米电视单品单店第一.小米平板销量第一

双11 背后的全链路可观测性:阿里巴巴鹰眼在“云原生时代”的全面升级

点击下载<不一样的 双11 技术:阿里巴巴经济体云原生实践> 本文节选自<不一样的 双11 技术:阿里巴巴经济体云原生实践>一书,点击上方图片即可下载! 作者: 周小帆(承嗣)? 阿里云中间件技术部高级技术专家 王华锋(水彧)??阿里云中间件技术部技术专家 徐彤(绍宽)??阿里云中间件技术部技术专家 夏明(涯海)??阿里云中间件技术部技术专家 导读:作为一支深耕多年链路追踪技术 (Tracing) 与性能管理服务 (APM) 的团队,阿里巴巴中间件鹰眼团队的工程师们见证了阿里巴巴基

如果我来负责支付宝双11大促保障(五)

接下来我们需要梳理的是核心路径容量模型.首先,需要梳理的是核心路径调用链,就是指核心路径上的调用接口.其次,梳理各接口之间的调用信息,包括调用顺序.调用次数以及同级别接口调用流量比.这些信息都是为了后面建立容量模型做准备.   制订子目标 预估总流量,制订目标TPS在收集完上面的信息后,我们需要分解目标,依次完成各个子目标.在第一步,我们收集了大促活动的详细信息,因此,我们根据这些数据和历史数据预估此次活动的量,然后乘以一定的系数,作为我们此次的目标TPS.比如,双11活动,我们预估将有600T

Python-列表嵌套字典-名片管理系统(适合刚学习完字典和列表的同学练手)

why?我要写这个程序.这个程序是在复习字典的使用并且配合前面复习过的列表来写的一个程序.实现一个名片的管理! 什么时候用列表什么时候用字典呢?面对这个问题我的想法是,当你存取的数据类型都是一样的时候,使用列表,当你存取的数据类型不一样时就用字典.这里说明一下数据类型不一样不是指整形或者字符型 举个例子:如果你需要存很多人的姓名,仅仅这一个属性,就用列表来进行处理,当你要存取不仅仅是人名,包括年龄,性别,国籍等等这些信息时,这时候用字典是最合适的. 在编写这个程序时,首先考虑2个问题: 1.列表