SQL|SQL SERVER 学习过程(一)
还记得以前在学校的学习过数据库SQL SERVER 2008 R2 的教程,从学校毕业出来后的哪家单位基本没怎么使用过数据库,现在也忘得差不多了
做些相关的练习熟悉熟悉
【SQL|SQL SERVER 学习过程(一)】
--创建数据库--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语句
视图兼有表和查询的特点;
与查询相类似的是,视图可以用来从一个或多个相关联的表或视图中提取有用信息;
与表相类似的是,
视图可以用来更新其中的信息,并将更新结果永久保存在磁盘上.我们可以用视图使数据暂时从数据库中分离成为游离数据,
以便在主系统之外收集和修改数据.*/
推荐阅读
- Vue|Vue 源码解读(8)—— 编译器 之 解析(下)
- JS学习之内置对象--math对象
- 项目资料|基于JAVA+SpringBoot+Mybatis+Vue+MYSQL的智慧养老管理系统
- js学习笔记|JavaScript内置对象 之 Math对象
- 深度学习校招面试总结|人工智能面试总结-代价函数与损失函数
- 深度学习校招面试总结|人工智能面试总结-激活函数
- 深度学习校招面试总结|人工智能面试总结-分类与聚类
- 深度学习校招面试总结|人工智能面试总结-传统图像算法
- 深度学习校招面试总结|人工智能面试总结-支持向量机SVM
- 深度学习校招面试总结|人工智能面试总结-回归