[SQL SERVER系列]工作经常使用的SQL整理,实战篇(一)[原创]
工作经常使用的SQL整理,实战篇,地址一览:
目录概览:
1.数据库
2.表
3.临时表
4.索引和约束
5.范式
6.增删改查
7.连接
8.分组和排序
9.通配符
10.视图
11.存储过程和事务
12.游标
13.触发器
14.作业
自己亲手编写的一些常用的SQL,希望对大家有用喔,废话不多说了,直接入正题~
1.数据库
创建数据库
use master
if exists(select * from sysdatabases where name = 'OrderDB')
drop database OrderDB
create database OrderDB
on
(
name='OrderDB_data',
filename = 'D:\DB\OrderDB_data.mdf',
size=10,
filegrowth=15%
)
log on
(
name='OrderDB_log',
filename='D:\DB\OrderDB_log.ldf',
size=3,
filegrowth=10%
)
删除数据库
drop database OrderDB
2.表
创建表
--用户表
if exists (select * from sysobjects where name = 'Tse_User')
drop table Tse_User
Create table Tse_User
(
ID int identity(1,1),
UserID int not null,
UserName varchar(64) not null,
RealName varchar(64) null,
PRIMARY KEY (UserID)
)
--产品表
if exists (select * from sysobjects where name = 'Tse_Product')
drop table Tse_Product
Create table Tse_Product
(
ID INT IDENTITY(1,1),
ProductID varchar(64) not null,
ProductName varchar(256) not null,
Price float not null,
Storage int not null, --库存
PRIMARY KEY(ProductID)
)
--订单表
if exists (select * from sysobjects where name = 'Tse_Order')
drop table Tse_Order
Create table Tse_Order
(
ID int identity(1,1),
OrderID varchar(64) not null,
UserID int not null,
ProductID varchar(64) not null,
Number int not null, --购买数量
PostTime datetime not null,
PRIMARY KEY(OrderID),
FOREIGN KEY (UserID) REFERENCES Tse_User(UserID),
FOREIGN KEY (ProductID) REFERENCES Tse_Product(ProductID)
)
删除表
drop table Tse_User
清空表
truncate table Tse_User 清除表中所有数据,下次插入编号从1开始
delete from Tse_User 清除表中所有数据,但下次插入编号从原有编号+1开始
3.临时表
生成临时表,插入数据,将员工姓名全部打印出来
use master
go
create table #Employee
(
ID int identity(1,1),
Name varchar(64) not null,
primary key (ID)
)
insert into #Employee(Name) values('zhangsan')
insert into #Employee(Name) values('lisi')
insert into #Employee(Name) values('wangwu')
insert into #Employee(Name) values('tony')
insert into #Employee(Name) values('mike')
declare @i int
declare @Name varchar(64)
declare @Count int
declare @Str nvarchar(4000)
set @i = 0
select @Count = COUNT(0) from #Employee
while(@i < @Count)
begin
set @Str = 'select top 1 @Name = Name from #Employee where id not in (select top '+
STR(@i) +'id from #Employee)'
exec sp_executesql @Str ,N'@Name varchar(64) output', @Name output
select @Name, @i
set @i = @i + 1
End
查看表结构及表附加属性
SP_HELP Tse_User
4.索引和约束
聚集索引确定表中数据的物理顺序。聚集索引类似于电话簿,后者按姓氏排列数据。由于聚集索引规定数据在表中的物理存储顺序,因此一个表只能包含一个聚集索引。但该索引可以包含多个列(组合索引),就像电话簿按姓氏和名字进行组织一样。
非聚集索引,该索引中索引的逻辑顺序与磁盘上行的物理存储顺序不同。一个表可以创建多个非聚集索引。
创建聚集索引
CREATE UNIQUE CLUSTERED INDEX [PK_Tse_ID] ON [dbo].[Tse_User]
( --唯一聚集索引
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF,
ONLINE = OFF,ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO
创建非聚集索引
CREATE UNIQUE NONCLUSTERED INDEX [IX_Tse_UserID] ON [dbo].[Tse_User]
( --唯一非聚集索引
[UserID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF,
ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO
约束
alter table Tse_User
add constraint CS_UserName check (len(Username) > 3),
constraint CS_Email check (charindex('@', Email) > 0)
5.范式
第一范式1NF
第一范式需满足两个条件:
1)每个数据行必须包含具有原子性(即不可再分)的值;
2)每个数据行必须包含一个独一无二的值,即主键。
举例:假如客户表中存在地址列,如果经常需要按城市归类,那么,应该地址列拆分为省份,城市,县,街道地址等列。
第二范式2NF
第二范式需要确保数据库表中的每一列都和主键相关,而不能只与主键的某一部分相关(主要针对联合主键而言)。也就是说在一个数据库表中,一个表中只能保存一种 数据,不可以把多种数据保存在同一张数据库表中。
举例:比如常用的选课表中,以学号和课程号为联合主键,不能将课程名,学分等课程相关信息写入选课表,因为他们只与主键的一部分(课程号)相关。
第三范式3NF
第三范式需要确保数据表中的每一列数据都和主键直接相关,而不能间接相关。
举例:订单表中以订单号为主键,用户真实姓名和邮箱等信息与用户有关,与订单没有直接关系,因此,用户真实姓名和邮箱等不能放到订单表中。
由于时间关系,余下的几个问题在下一篇中讨论,谢谢关注~,下一篇地址为:工作经常使用的SQL整理,实战篇(二)
如果您有什么问题,欢迎在下面评论,我们一起讨论,谢谢~
如果您觉得还不错,不妨点下右下方的推荐,有您的鼓励我会继续努力的~
[SQL SERVER系列]工作经常使用的SQL整理,实战篇(一)[原创]的更多相关文章
- [SQL SERVER系列]工作经常使用的SQL整理,实战篇(三)[原创]
工作经常使用的SQL整理,实战篇,地址一览: 工作经常使用的SQL整理,实战篇(一) 工作经常使用的SQL整理,实战篇(二) 工作经常使用的SQL整理,实战篇(三) 接着本系列前面两篇继续讨论. 有时 ...
- [SQL SERVER系列]工作经常使用的SQL整理,实战篇(二)[原创]
工作经常使用的SQL整理,实战篇,地址一览: 工作经常使用的SQL整理,实战篇(一) 工作经常使用的SQL整理,实战篇(二) 工作经常使用的SQL整理,实战篇(三) 接着上一篇“工作经常使用的SQL整 ...
- Sql Server系列:数据库组成及系统数据库
1. 数据库组成 数据库的存储结构分为逻辑存储结构和物理存储结构. ◊ 逻辑存储结构:说明数据库是由哪些性质的信息所组成.SQL Server的数据库不仅仅只是数据的存储,所有与数据处理操作相关的信息 ...
- SQL Server 系列文章快速导航(SWF版)
一.前言 在博客园写博客不自不觉已经有5个年头了,一开始只是为了记录工作中遇到的问题和解决办法,后来写的文章不自不觉的侧重在SQL Server方面的技术文章,在2014年1月终于鼓起勇气申请了微软S ...
- SQL Server系列文章目录
SQL Server系列文章目录SQL Server系列文章目录SQL Server系列文章目录SQL Server系列文章目录
- SQL Server代理(5/12):理解SQL代理错误日志
SQL Server代理是所有实时数据库的核心.代理有很多不明显的用法,因此系统的知识,对于开发人员还是DBA都是有用的.这系列文章会通俗介绍它的很多用法. 如我们在这个系列的前几篇文章所见,SQL ...
- SQL Server中存储过程比直接运行SQL语句慢的原因
原文:SQL Server中存储过程比直接运行SQL语句慢的原因 在很多的资料中都描述说SQLSERVER的存储过程较普通的SQL语句有以下优点: 1. 存储过程只在创造时进行编译即可,以 ...
- SQL Server on Ubuntu——Ubuntu上的SQL Server(全截图)
本文从零开始一步一步介绍如何在Ubuntu上搭建SQL Server 2017,包括安装系统.安装SQL等相关步骤和方法(仅供测试学习之用,基础篇). 一. 创建Ubuntu系统(Create U ...
- SQL Server中一些有用的日期sql语句
SQL Server中一些有用的日期sql语句 1.一个月第一天的 SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0) 2.本周的星期一 SELECT DA ...
随机推荐
- Java设计模式之单例设计模式 入门实例
一.基础概念 (1).单例设计模式:保证一个类在内存中的对象唯一性. (2).应用场景:数据都存储在配置文件的对象中,多个程序对同一个配置文件的对象进行操作.一个程序要基于另一个程序操作后的结果进行操 ...
- [转][Unity3D]引擎崩溃、异常、警告、BUG与提示总结及解决方法
1.U3D经常莫名奇妙崩溃. 一般是由于空异常造成的,多多检查自己的引用是否空指针. 2.编码切换警告提示. 警告提示:Some are Mac OS X (UNIX) and some ...
- [BJOI2012]连连看 BZOJ2661 费用流
题目描述 凡是考智商的题里面总会有这么一种消除游戏.不过现在面对的这关连连看可不是QQ游戏里那种考眼力的游戏.我们的规则是,给出一个闭区间[a,b]中的全部整数,如果其中某两个数x,y(设x>y ...
- JavaWeb学习笔记(十二)—— JDBC的基本使用
一.JDBC概述 1.1 数据库驱动 这里的驱动的概念和平时听到的那种驱动的概念是一样的,比如平时购买的声卡,网卡直接插到计算机上面是不能用的,必须要安装相应的驱动程序之后才能够使用声卡和网卡,同样道 ...
- 关于python中的round()和javascript中的round()的比较
ps:python的round()和javascript的round()的比较: javascript:Math.round():正常的标准舍入,就像我们学的数学课本上面的规则 python:pyth ...
- pip 使用代理
pip install -i https://mirrors.aliyun.com/pypi/simple/ opencv-python 红色部分 代表使用 阿里云 代理 安装 pip
- openmpi-3.0.1超线程报错问题
先简单记录一下,虽然还有一些疑惑没有解决. 之前安装openmpi是用的命令安装,版本比较低,mfix并行总出现死锁问题,于是想看看是不是openmpi版本导致,虽然目前还未找到具体原因,但是先记录下 ...
- rest-assured之静态导入及简单使用实例
一.静态导入 为了有效的使用rest-assured,官网推荐从下列class中静态导入方法: io.restassured.RestAssured.* io.restassured.matcher. ...
- 【算法笔记】B1030 完美数列(三种方法)
1030 完美数列 (25 分) 给定一个正整数数列,和正整数 p,设这个数列中的最大值是 M,最小值是 m,如果 M≤mp,则称这个数列是完美数列. 现在给定参数 p 和一些正整数,请你从中选择尽可 ...
- poj 1964 City Game
Bob is a strategy game programming specialist. In his new city building game the gaming environment ...