SQL SERVER 学习过程(一)
还记得以前在学校的学习过数据库SQL SERVER 2008 R2 的教程,从学校毕业出来后的哪家单位基本没怎么使用过数据库,现在也忘得差不多了
做些相关的练习熟悉熟悉
--创建数据库--
create database Archive2 -- 创建Archive2数据库--
on
primary (name=Arch21,
filename='D:\Program Files\Microsoft SQL Server\MSSQL11.MYSQLSERVER\MSSQL\DATA\archdat21.mdf',
size=100mb,
maxsize=200,
filegrOwth=20) -- 设置存放路径,数据库大小增长量大小--
log on (name=ArchLOG,
FILENAME='D:\Program Files\Microsoft SQL Server\MSSQL11.MYSQLSERVER\MSSQL\DATA\ARCHDAT_LOG.LDF',
SIZE =10MB,
MAXSIZE=20,
FILEGROWTH=2) -- 设置log文件存放路径以及大小和增长量--
GO
--向数据库中增加指定文件组命令--
alter database Archive2
add filegroup filegroup
--修改文件组属性--
alter database Archive2
modify filegroup filegroup name=filegroup1
go
--删除文件组--
alter database Archive2
REMOVE FILEGROUP filegroup1
--向数据库中添加文件--
/*在数据库中添加Arch2,初始大小100MB,最大文件大小为200MB,每次文件自动增长大小为20MB*/
alter database Archive2
add file
(name= Arch2,
filename='D:\Program Files\Microsoft SQL Server\MSSQL11.MYSQLSERVER\MSSQL\DATA\Arch2.mdf',
size =100mb,
maxsize=200,
filegrowth=20 )
go
--向指定文件组中添加文件--
/*使用to filegroup 关键字向指定的文件组中添加数据文件,子啊数据库中Archive2中添加数据组file group1,
然后在这个数据组中添加文件Arch3,并设置数据库文件大小,增长值,最大值,路径等*/
alter database Archive2
add filegroup filegroup1
go
alter database Archive2
add file
(name=Arch3,
filename='D:\Program Files\Microsoft SQL Server\MSSQL11.MYSQLSERVER\MSSQL\DATA\archdat3.mdf',
size=100mb,
maxsize=200,
filegrowth=10)
to filegroup filegroup1
go
--向数据库中添加日志文件及其定义,名称为Archive_log,初始大小为10MB,最大文件为100MB,每次文件自动增长2MB--
alter database Archive2
add log file
(name=Archive_log,
filename='D:\Program Files\Microsoft SQL Server\MSSQL11.MYSQLSERVER\MSSQL\DATA\Archive_log.mdf',
size=10mb,
maxsize=100,
filegrowth=2)
go
--修改数据库中的文件--
/*修改Arch2的大小为150MB*/
alter database Archive2
modify file
(name=Arch2,
size=150mb)
go
--如果空间不足可以使用下面方法,将数据库移动到其他位置,需要目录存在,--
alter database Archive2
modify file
(name=Arch2,
filename = N'D:\Microsoft SQL Server\DATA\archdat21.ndf')
go
--删除数据库中的文件,删除Archive2中数据文件Arch3--
alter database Archive2
remove file Arch3
go
--从系统视图中 sys.database_files 中获取当前数据库文件中的信息--
use Archive2
go
select * from sys.database_files
go
-- 收缩指定的数据库文件,这里收缩Archive2中的Arch2的文件收缩至50MB--
use Archive2
go
dbcc shrinkfile(Arch2,50)
go
--演示使用emptyfile关键字清除数据库文件,将数据库Archive2中的文件Arch21清空--
use Archive2
go
dbcc shrinkfile(Arch21,emptyfile)
go
alter database Archive2
remove file Arch21
go
--设置自动收缩数据库选项--
--auto_shrink 设置为on,则定期自动启动收缩数据库的功能,防止书看剧苦单个文件过大--
alter database Archive2
set auto_shrink on
--重命名数据库,前提先设置数据库为单用户模式,且无人在访问,将Archive2改为Archive --
sp_renamedb 'Archive2','Archive'
--删除数据库--
drop database Archive
--移动用户数据库--
/* 先将数据库设置为离线 */
use Archive
alter database Archive SET offline
--移动文件到其他位置,例如:将Archive.mdf移动到d:\MySQL\data\file目录下
alter database Archive modify file (name=Archive,filename='d:\MySQL\data\file\Archive.mdf')
--设置数据库为在线状态--
alter database Archive set online
/*在表的逻辑结构中,每一行代表一条数据,每一列代表表中的一个字段,列的定义决定了表的结构,行则是表中的数据
列就是字段,每个表中最多可以存在1024个列,需要指定数据类型
表分为永久表和临时表,数据通常存放在永久表中,用户不删除则一直存在,临时表存放在tempdb中,不再使用,系统自动删除
临时表分为:本地临时表和全局临时表
本地临时表以#符号开头,当前连接用户可见,断开连接后,自动删除
全局临时表以##符号开头,全局临时表对所有连接数据库的用户都有效,断开连接后,自动删除
*/
--表约束--
/*设计数据库时需要考虑数据完整性,要求某个字段必须存在,否则会造成数据库中存在大量无效数据库
表约束提供一种强制实现数据库完整性条件的机制,它包含主键约束、唯一性约束、检查约束、默认约束、外键约束
--主键(PRIMARY KEY)约束--
主键是一列或一组列,其值可以唯一地标识表中的每一行,也就是说每一行的主键各不相同,这样就可以通过主键的值返回过来确定每一行。
在创建和修改表时,可以定义主键约束。主键列的值不允许为空。
--唯一性(UNIQUE)约束--
唯一性约束可以保证除主键外的其他若干列的数据唯一性,以防止在列中输入重复的值。
一个表中可以定义多个唯一性约束,而主键约束只有一个。
--检查(CHECK)约束--
检查约束指定表中若干可以接受的数据值或格式,如果记录不满足约束检查,则不将其插入到表中
--默认(DEFAULT)约束--
默认约束可以为指定列定义一个默认值,在输入数据时,如果没有输入该列的值,则该列的值就是默认列的值
--外键(FOREIGN KEY)约束--
外键约束则是用于建立和加强两个表数据之间的连接,通过将表中的主键列添加到另一个表中,可创建两个表之间的连接。
这个主键列就是第二个表的外键。外键约束可以确保添加到外键表中的任何行在主表中都存在相应的行。
*/
--视图--
/*视图相当于把对表的查询保存起来,视图中保存的是不是数据,而是查询表的select语句
视图兼有表和查询的特点;与查询相类似的是,视图可以用来从一个或多个相关联的表或视图中提取有用信息;与表相类似的是,
视图可以用来更新其中的信息,并将更新结果永久保存在磁盘上.我们可以用视图使数据暂时从数据库中分离成为游离数据,
以便在主系统之外收集和修改数据.*/
SQL SERVER 学习过程(一)的更多相关文章
- SQL SERVER XML 学习总结
SQL SERVER XML 学习总结 最新的项目任务要做一个数据同步的功能,这些天都在做技术准备,主要是用到了微软的Service Broker技术,在熟悉使用该技术的同时,又用到了Sql s ...
- SQL Server AlwaysON从入门到进阶(1)——何为AlwaysON?
本文属于SQL Server AlwaysON从入门到进阶系列文章 本文原文出自Stairway to AlwaysOn系列文章.根据工作需要在学习过程中顺带翻译以供参考.系列文章包含: SQL Se ...
- SQL Server进阶(十一)临时表、表变量
临时表 本地临时表 适合开销昂贵 结果集是个非常小的集合 -- Local Temporary Tables IF OBJECT_ID('tempdb.dbo.#MyOrderTotalsByYe ...
- 数据库技术丛书:SQL Server 2016 从入门到实战(视频教学版) PDF
1:书籍下载方式: SQL Server2016从入门到实战 PDF 下载 链接:https://pan.baidu.com/s/1sWZjdud4RosPyg8sUBaqsQ 密码:8z7w 学习 ...
- 最近帮客户实施的基于SQL Server AlwaysOn跨机房切换项目
最近帮客户实施的基于SQL Server AlwaysOn跨机房切换项目 最近一个来自重庆的客户找到走起君,客户的业务是做移动互联网支付,是微信支付收单渠道合作伙伴,数据库里存储的是支付流水和交易流水 ...
- SQL Server 大数据搬迁之文件组备份还原实战
一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 解决方案(Solution) 搬迁步骤(Procedure) 搬迁脚本(SQL Codes) ...
- Sql Server系列:分区表操作
1. 分区表简介 分区表在逻辑上是一个表,而物理上是多个表.从用户角度来看,分区表和普通表是一样的.使用分区表的主要目的是为改善大型表以及具有多个访问模式的表的可伸缩性和可管理性. 分区表是把数据按设 ...
- SQL Server中的高可用性(2)----文件与文件组
在谈到SQL Server的高可用性之前,我们首先要谈一谈单实例的高可用性.在单实例的高可用性中,不可忽略的就是文件和文件组的高可用性.SQL Server允许在某些文件损坏或离线的情况下,允 ...
- 从0开始搭建SQL Server AlwaysOn 第一篇(配置域控)
从0开始搭建SQL Server AlwaysOn 第一篇(配置域控) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://www.cnb ...
随机推荐
- 【刷题-LeeetCode】260. Single Number III
Single Number III Given an array of numbers nums, in which exactly two elements appear only once and ...
- jquery-qrcode客户端二维码生成类库扩展--融入自定义Logo图片
年后换了部门,现在主要的职责就是在网上卖精油,似乎这个就是传说中的网络营销. 跟着公司的MM们也了解不了少关于网络营销的知识,间接的了解到马云和刘强东都是些怎样龌龊的人,尽管之前也这样认为. 淘宝就不 ...
- ansible command和shell的区别
1.command模块不支持管道符和变量等,如果要使用这些,需要shell模块. 2.在使用ansible中的时候,默认的模块是-m command,从而模块的参数不需要填写,直接使用即可
- 什么是以特性为核心的持续交付|阿里巴巴DevOps实践指南
编者按:本文源自阿里云云效团队出品的<阿里巴巴DevOps实践指南>,扫描上方二维码或前往:https://developer.aliyun.com/topic/devops,下载完整版电 ...
- linux用户密码过期导致命令执行失败
背景介绍: 使用zabbix调用系统命令,检查时间同步,发现一直在报错,root 用户执行无异常,问题还是出现zabbix用户上面. [zabbix@test-10-12 ~]$ sudo ntpda ...
- Android Studio IDE 插件开发
作者:字节跳动终端技术--周宸韬 概述 这篇文章旨在向读者介绍IntelliJ IDE插件的开发流程以及常用的一些通用功能,任何基于IntelliJ开发的IDE都可以通过该方式制作插件,例如Andro ...
- 微服务架构 | 5.1 使用 Netflix Hystrix 断路器
目录 前言 1. Hystrix 基础知识 1.1 Hystrix 断路器强调调用 1.2 两大类别的 Hystrix 实现 1.3 舱壁策略 1.4 Hystrix 在远程资源调用失败时的决策过程 ...
- KL散度非负性证明
1 KL散度 KL散度(Kullback–Leibler divergence) 定义如下: $D_{K L}=\sum\limits_{i=1}^{n} P\left(x_{i}\right) \t ...
- C++ 类对象内存模型分析
编译环境:Windows10 + VS2015 1.空类占用的内存空间 类占内存空间是只类实例化后占用内存空间的大小,类本身是不会占内存空间的.用sizeof计算类的大小时,实际上是计算该类实例化后对 ...
- 第09讲:Flink 状态与容错
Flink系列文章 第01讲:Flink 的应用场景和架构模型 第02讲:Flink 入门程序 WordCount 和 SQL 实现 第03讲:Flink 的编程模型与其他框架比较 第04讲:Flin ...