数据库备份可以手动备份和语句备份,每个磁道

2019-08-09 作者:数据库   |   浏览(132)

 这是如何使用SQL server来  编写 数据库  表的 操作方式 

主键

性能计数器(Performance Counter)是量化系统状态或活动的一个数值,Windows Performance Monitor在一定时间间隔内(默认的取样间隔是15s)获取Performance Counter的当前值,并记录在Data Collections中,通过Performance Monitor能够查看系统的性能数据,是故障排除的极佳工具。Performance Counter数量很多,如果不了解计数器的功能,在选择计数器时,往往不知所措。由于SQL Server 是IO密集型的应用程序,经常需要进行大量的读写操作,从Disk读取数据到内存,将内存中的数据写入到Disk,因此,Disk和内存是SQL Server的生命线,监控SQL Server 的性能,经常用到的性能计数器是Disk和内存。

认识数据库备份和事务日志备份

数据库备份与日志备份是数据库维护的日常工作,备份的目的是在于当数据库出现故障或者遭到破坏时可以根据备份的数据库及事务日志文件还原到最近的时间点将损失降到最低点。

 

 

数据库主键是指表中一个列或列的组合,其值能唯一地标识表中的每一行。这样的一列或多列称为表的主键,通过它可强制表的实体完整性。当创建或更改表时可通过定义 PRIMARY KEY约束来创建主键。一个表只能有一个 PRIMARY KEY 约束,而且 PRIMARY KEY 约束中的列不能接受空值。由于 PRIMARY KEY 约束确保唯一数据,所以经常用来定义标识列。

小鱼儿玄机30码姐妹,一,Disk性能监控

数据库备份

数据库备份可以手动备份和语句备份

学习要点:

主键的作用

主键的主要作用如下:

(1)保证实体的完整性;

(2)加快数据库的操作速度;

(3) 在表中添加新记录时,数据库会自动检查新记录的主键值,不允许该值与其他记录的主键值重复;

(4) 数据库自动按主键值的顺序显示表中的记录。如果没有定义主键,则按输入记录的顺序显示表中的记录。

 

主键具有的特点:唯一性、非空性。

 

设置主键语句示例:

code int primary key,   主键不能为空,不能重复,确保唯一性

设置自增长主键语句示例:

code int primary key identity(1,1)从1开始,每次增长1,添加values时不用添加此列

 

 

设置外键:

      在要设置外键的表上右键,选择设计,在需要设置外键的列名前右键,如下图:

 小鱼儿玄机30码姐妹 1

 

 

选择关系单击,出现对话框,单击添加,单击表和列规范后面的省略号,如下图:

 小鱼儿玄机30码姐妹 2

 

在出现的界面做出如下操作:

 小鱼儿玄机30码姐妹 3

 

点击确定,再点击确定,操作成功。

 

1,Disk的结构

一.手动备份数据库

1.鼠标右键选择你要进行备份的数据库-任务-备份

可以在常规选项页面你可以选择备份类型是进行完整数据库备份还是差异数据库备份小鱼儿玄机30码姐妹 4

 

2.点击添加选项,选择数据库文件的存放路径

注意文件名记得加后缀.bak,便于恢复时的查找

 小鱼儿玄机30码姐妹 5

 

 

  SQL之-建库、建表、建约束、关系SQL基本语句大全.txt举得起放得下叫举重,举得起放不下叫负重。头要有勇气,抬头要有底气。学习要加,骄傲要减,机会要乘,懒惰要除。人生三难题:思,相思,单相思。
SQL之-建库、建表、建约束、关系、部分T-sql语句

典型的机械Disk的结构主要有:磁头(head),磁道(track),扇区(sector),盘面(Platter),柱面(cylinder)和簇(cluster)。如图,

数据库还原

右键数据库-还原数据库-添加需要进行还原的数据库文件路径

在还原源选项中你可以选择‘源数据库’,‘源设备’。1.选择源数据库工具会自动显示该数据库之前的一些备份,然后直接选择需要还原的数据库备份集。

2.选择源设备点击后面的...,添加需要还原的数据库文件

 小鱼儿玄机30码姐妹 6

 

 小鱼儿玄机30码姐妹 7

 

2.点击确认还原数据库

 

数据库的分离与附加

   

---创建库 创建库之前 先进行 查看数据库中是否 已存在 次数据库 有便删除 

小鱼儿玄机30码姐妹 8

一、概述

 

SQL Server提供了“分离/附加”数据库、“备份/还原”数据库、复制数据库等多种数据库的备份和恢复方法。这里介绍一种学习中常用的“分离/附加”方法,类似于大家熟悉的“文件拷贝”方法,即把数据库文件(.MDF)和对应的日志文件(.LDF)拷贝到其它磁盘上作备份,然后把这两个文件再拷贝到任何需要这个数据库的系统之中。比如,在实验教学过程中,同学们常常想把自己在学校实验室计算机中创建的数据库搬迁到自己的计算机中而不想重新创建该数据库,就可以使用这种简单的方法。但由于数据库管理系统的特殊性,需要利用SQL Server提供的工具才能完成以上工作,而直接的文件拷贝是行不通的。

 

这个方法涉及到SQL Server分离数据库和附加数据库这两个互逆操作工具。

 

1、分离数据库就是将某个数据库(如student_Mis)从SQL Server数据库列表中删除,使其不再被SQL Server管理和使用,但该数据库的文件(.MDF)和对应的日志文件(.LDF)完好无损。分离成功后,我们就可以把该数据库文件(.MDF)和对应的日志文件(.LDF)拷贝到其它磁盘中作为备份保存。

 

2、附加数据库就是将一个备份磁盘中的数据库文件(.MDF)和对应的日志文件(.LDF)拷贝到需要的计算机,并将其添加到某个SQL Server数据库服务器中,由该服务器来管理和使用这个数据库。

 

--- if exists(select * from sys.sysdatabases where name='ConstructionDB')begin use master drop database ConstructionDB end go create database ConstructionDB on()

if exists(select * from sysobjects where name ='ConstructionDB') --查找命令
drop DATABASE ConstructionDB --删除 命令

Create database ConstructionDB
on(
name='ConstructionDB_date',
filename='E:技能抽查试题第二模块(数据库)试题——1任务一ConstructionDB_date.mdf',
size=3mb,
maxsize=10mb,
filegrowth=5% --增长速度为
)
log on(
name='ConstructionDB_log',
filename='E:技能抽查试题第二模块(数据库)试题——1任务一ConstructionDB_date.ldf',
size=2mb,
maxsize=5mb,
filegrowth=1mb
)
--使用T-SQL语句创建表
use ConstructionDB
go
---查询 库中是否存在 此表 存在则删除
if exists(select * from sysobjects where name = 'T_flow_step_def') 
drop table T_flow_step_def
--- 方法二
IF OBJECT_ID (N'bas_CardType') IS NULL
BEGIN --如果不存在该表,则进行创建
--drop table com_CodeRecord

--流程步骤定义表 
create table T_flow_step_def(
Step_no    int not null,     --流程步骤ID 
Step_name    varchar(30)    not null, --流程步骤名称 
Step_des    varchar(64)    not null,    --流程步骤描述
Limit_time    int not null,     --时限
URL     varchar(64)    not null,     --二级菜单链接 
备注    varchar(256)    not null, 
)

---流程类别表
create table T_flow_type(
Flow_type_id char(3) not null, --流程类别号 
Flow_type_name    varchar(64)    not null, --流程类别名称 
In_method_id    char(3) not null, --招标方式代号 
In_choice_id    char(3) not null, --项目选项代号 
备注    varchar(256)    not null, 
)
---标段情况表
create table T_sub_project(
Project_id varchar(32)    not null, ---工程编号 
Sub_pro_id char(2) not null, -- 标段编号 
Flow_type_id char(3) not null, --流程类别号 
Sub_pro_name varchar(64)    not null,--标段名称(招标项目名称) 
Usb_no varchar(64)    not null, --密码锁号
In_method_id char(3) not null, --招标方式代号 
In_scope_id char(3) not null, --招标范围代号 
In_choice_id char(3) not null, --项目选项代号 
Proj_type_id char(3) not null, --项目性质代号 
Engi_type_id char(1) not null, --工程性质代号
Pack_type char(1) not null, ---发包方式 
Grade_type_idv char(1) not null,--评分类别号
Flag_done char(1) not null,--完成标志 
Flag_forcebreak char(1) not null,--强制中断标志 
备注    varchar(256)    not null,
)

当磁盘旋转时,若磁头保持在一个位置上,则每个磁头都会在磁盘表面划出一个圆形轨迹,这些圆形轨迹叫做磁道。磁盘上的每个磁道被等分为若干个弧段,这些弧段是磁盘的扇区,每个磁道上的扇区数量是相等的,每个扇区存放512个字节的信息,磁盘驱动器在向磁盘读取和写入数据时,以扇区为单位。若干个连续的扇区组合为一个簇,文件存取是以簇为单位的。

二、分离数据库

 

  1. 在启动SSMS并连接到数据库服务器后,在对象资源管理器中展开服务器节点。在数据库对象下找到需要分离的数据库名称,这里以student_Mis数据库为例。右键单击student_Mis数据库,在弹出的快捷菜单中选择属性。

  2. 在“数据库属性”窗口左边“选择页”下面区域中选定“选项”对象,然后右边区域的“其它选项”列表中找到“状态”项,单击“限制访问”文本框,在其下拉列表中选择“SINGLE_USER”。

  3. 点击“确定”按钮后将出现一个消息框,通知我们此操作将关闭所有与这个数据库的连接,点击“是”按钮后,数据库名称后面增加显示“单个用户”。右键该数据库名称,在快捷菜单中选择“任务”的二级菜单项“分离”。

4.分离数据库窗口中列出了我们要分离的数据库名称,参数设置完成后,单击底部的”确定”按钮,就完成了所选数据库的分离操作。

 

硬盘通常由重叠的一组盘片构成,每个盘面都被划分为数目相等的磁道,并从外缘的"0"向中心开始编号,具有相同编号的磁道形成一个圆柱,称之为磁盘的柱面。磁盘的柱面数与一个盘面上的磁道数是相等的。由于每个盘面都有自己的磁头,因此,盘面数等于总的磁头数。所谓硬盘的CHS,是指Cylinder(柱面)、Head(磁头)、Sector(扇区),硬盘的容量=柱面数×磁头数×扇区数×512B。

三、附加数据库

1. 将需要附加的数据库文件和日志文件拷贝到某个已经创建好的文件夹中。

2.右击数据库对象,并在快捷菜单中选择“附加”命令,打开“附加数据库”窗口。

  1. 在“附加数据库”窗口中,单击页面中间的“添加”按钮,打开定位数据库文件的窗口,在此窗口中选择要附加的数据库文件(后缀.MDF)

  2. 单击“确定”按钮就完成了附加数据库文件的设置工作,单击确定按钮,完成数据库的附加任务。

 

 

语句:

1.更改数据库的名称

 小鱼儿玄机30码姐妹 9

2.表中有数据的情况下再添加列、删除列

 小鱼儿玄机30码姐妹 10

3.在SQLServer 中各种查询语句的使用示例

 小鱼儿玄机30码姐妹 11

4.模糊查询的语句

 小鱼儿玄机30码姐妹 12

5.排序语句、排序并查前三名的语句

 小鱼儿玄机30码姐妹 13

 

 

小鱼儿玄机30码姐妹 14

--创建一个数据库名为‘sql_test’

扇区是能独立寻址的最小单位,簇是资源分配的最小单位。Disk的一次读写操作,由寻道,旋转延迟和数据传输组成,由于寻道和旋转延迟占用了读写操作的大部分时间,Disk在执行每次读写操作时,采取就近原则,读写连续的N个扇区,读写的数据量是4KB的整数倍。

  1 create database sql_test
  2 go 
  3 --打开数据库 sql_test
  4 use sql_test
  5 go
  6 
  7 --建立学生表
  8 create table 学生
  9 (学生编号 char(4) primary key, 学生名字 varchar(50)not null)
 10 go
 11 
 12 --修改学生表
 13 alter table 学生 
 14 add 班级编号 char(4) null --添加班级编号字段
 15 -- (注意如果添加的字段不为空的话,是不能被添加的)
 16 go
 17 
 18 --建立班级表
 19 create table 班级
 20 (班级编号 char(4) primary key ,班级名称 varchar(50)not null)
 21 go
 22 
 23 --建立课程表
 24 create table 课程
 25 (课程编号 char(4) primary key ,课程名称 varchar(50) not null,开课日期 datetime )
 26 go
 27 
 28 --修改课程表
 29 alter table 课程
 30 add 课程代号 varchar(10) null --添加课程代号字段
 31 go
 32 
 33 alter table 课程
 34 drop column 开课日期  --删除开课日期字段
 35 go
 36 
 37 alter table 课程
 38 alter column  课程名称 varchar(20) not null   --修改课程名称字段
 39 go
 40 
 41 --建立一个product_test_one 表,与下个表类似,只不过在constraint前面有个‘逗号’不影响执行
 42 create table product_test_one
 43 (
 44 id char(10) not null, name varchar(20) null, price money default 20.5,quantity smallint null, constraint pk_id primary key clustered (id)
 45  )
 46 go
 47 
 48 
 49 --建立一个product_test_two 表
 50 
 51 create table product_test_two
 52 (
 53 id char(10) not null, name varchar(20) null, price money default 20.5,quantity smallint null constraint pk_id2 primary key clustered (id)
 54  )
 55 go
 56 
 57 --删除表 pruduct_test_one表
 58 drop table product_test_one
 59 go
 60 
 61 --建立一个student表,使其中的 name 字段具有唯一性
 62 create table student 
 63 (
 64 id char(8), name char(10) --表字段
 65 constraint pk_id primary key (id), --添加一个主键约束 
 66 constraint uk_name unique (name) --添加一个唯一性约束
 67 )
 68 go
 69 
 70 --建立一个student4表,同上 (注意:constraint 与constraint 之间一定要有逗号,否则出错!)
 71 create table student4 
 72 (
 73 id char(8), name char(10) --表字段
 74 constraint pk_id4 primary key (id), constraint uk_name4 unique (name)
 75 )
 76 go
 77 -- 删除表student4
 78 drop table student4
 79 go
 80 
 81 --建立一个student3表,同上
 82 create table student3
 83 (
 84 id char(8), name char(10), --表字段
 85 constraint pk_id3 primary key (id) ,constraint uk_name3 unique (name)
 86 )
 87 go
 88 
 89 --删除表student3
 90 drop table student3
 91 go
 92 
 93 
 94 --constraint 约束名 check(逻辑条件表达式)
 95 
 96 --创建一个‘员工‘表,使其输入的性别字段(sex)只能接受‘m’或则‘f’,而不能接受其他数据
 97 --并且为phone字段创建检查约束,限制只能输入类似0108564712之类的数据,而不能随意输入其他数据
 98 create table 员工
 99 (
100 id char(5),name char(20),sex char(2),phone int
101 constraint pk_zid primary key (id),      --此间一定要有‘逗号’分隔 ,定义主键约束
102 constraint chk_sex check (sex in (‘f‘,‘m‘) ),
103 constraint chk_phone check (phone like ‘(010) [0-9] [0-9] [0-9] [0-9] [0-9] [0-9] [0-9]‘)
104 )
105 go
106 
107 
108 --constraint 约束名 default 约束表达式 [for 字段名]
109 
110 -- 创建一个表‘默认约束’,为字段sex创建默认约束
111 create table 默认约束
112 (
113 id char(5) primary key ,sex varchar(2) constraint con_sex default ‘m‘ 
114 )
115 go
116 
117 --修改‘默认约束’表
118 alter table 默认约束
119 add name varchar(10)null constraint con_name default ‘你好宝贝‘ --增加一个字段为‘name’,默认值为‘你好宝贝’
120 go
121 
122 --往班级表里添加8条记录
123 insert into 班级 values(‘bj01‘,‘一班‘)
124 insert into 班级 values(‘bj02‘,‘二班‘)
125 insert into 班级 values(‘bj03‘,‘三班‘)
126 insert into 班级 values(‘bj04‘,‘四班‘)
127 insert into 班级 values(‘bj05‘,‘五班‘)
128 insert into 班级 values(‘bj06‘,‘六班‘)
129 insert into 班级 values(‘bj07‘,‘七班‘)
130 insert into 班级 values(‘bj08‘,‘八班‘)
131 go
132 --显示班级所以记录
133 select * from 班级
134 go
135 --删除班级表里班级编号大于bj06的记录
136 delete from 班级 where 班级编号>‘bj06‘
137 go
138 --显示班级所以记录
139 select * from 班级
140 go
141 
142 --向学生表里添加记录
143 insert into 学生 values(‘xs01‘,‘one‘,‘bj01‘)
144 insert into 学生 values(‘xs02‘,‘two‘,‘bj01‘)
145 insert into 学生 values(‘xs03‘,‘three‘,‘bj01‘)
146 insert into 学生 values(‘xs04‘,‘four‘,‘bj02‘)
147 insert into 学生 values(‘xs05‘,‘five‘,‘bj03‘)
148 insert into 学生 values(‘xs06‘,‘six‘,‘bj02‘)
149 insert into 学生 values(‘xs07‘,‘seven‘,‘bj04‘)
150 insert into 学生 values(‘xs08‘,‘eight‘,‘bj03‘)
151 insert into 学生 values(‘xs09‘,‘nine‘,‘bj04‘)
152 insert into 学生 values(‘xs10‘,‘ten‘,‘bj05‘)
153 insert into 学生 values(‘xs11‘,‘eleven‘,‘bj06‘)
154 insert into 学生 values(‘xs12‘,‘twleve‘,‘bj06‘)
155 go
156 --显示学生所有的记录
157 select * from 学生
158 go
159 
160 --连接查询
161 select * from 学生,班级 where 学生.班级编号=班级.班级编号
162 go
163 
164 --以下效果同上一条相同
165 
166 --选择的连接查询
167 select 学生.学生编号,班级.班级编号, 学生.学生名字,班级.班级名称 from 学生,班级 where 学生.班级编号=班级.班级编号
168 go
169 --以下效果同上一条相同
170 
171 
172 
173 --查询一班的学生
174 select* from 学生 where 班级编号 in(select 班级编号 from 班级 where 班级编号=‘bj01‘)
175 go
176 --与上面一条查询语句一样功能
177 select a.学生编号,a.学生名字,a.班级编号 from 学生 as a ,班级 as b where a.班级编号=b.班级编号 and b.班级编号=‘bj01‘
178 go
179 
180 --统计一班学生人数
181 select count(学生编号)as 学生统计 from 学生 
182 where 班级编号 in(select 班级编号 from 班级 where 班级编号=‘bj01‘)
183 go
184 
185 --group的用法和count()函数的用法
186 
187 
188 --统计一班学生人数,并显示学生的名字和所在班级
189 select count(学生编号)as 学生统计, 学生名字,班级编号 from 学生 
190 where 班级编号 in(select 班级编号 from 班级 where 班级编号=‘bj01‘)
191 group by 班级编号,学生名字
192 go

2,顺序读写和随机读写

 

随机读写是指数据分布在不同的磁道上,Disk的磁头必须移动磁道,才能读取到相应的数据;顺序读写是指数据分布在同一磁道的相邻扇区中,在读写数据时,Disk的磁头不需要移动磁道。由于,Disk的磁道移动是机械运动,“很慢”,占读写数据所用时间的绝大部分,因此,Disk的顺序读写速度远远高于随机读写速速,应尽量避免随机读写。Disk,固态硬盘盒内存的读写速度对比:

小鱼儿玄机30码姐妹 15

3,硬盘性能计数器

在OS Level上,Windows在一块物理硬盘上分成多个逻辑分区,每一个逻辑分区叫做一个Logical Disk,通过盘符标识,运行在Windows上的Application使用盘符来寻址。对于分配在同一块物理硬盘上的逻辑分区,共享物理硬盘的读写带宽,相当于在一块物理硬盘上工作。因此,Disk计数器分为两组:PhysicalDisk 和 LogicalDisk,LogcialDisk计数器记录每个逻辑分区的读写计数,用于分析特定的Application在不同的逻辑分区上的Disk IO活动和性能参数;PhysicalDisk计数器记录整个物理Disk的性能指标,用于了解Disk的响应速度,主要使用PhysicalDisk计数器,分析Disk的性能问题。

系统级经常用到的Disk性能计数器是PhysicalDisk计数器,LogcialDisk仅供参考:

本文由小鱼儿玄机30码发布于数据库,转载请注明出处:数据库备份可以手动备份和语句备份,每个磁道

关键词: 小鱼儿玄机30码