17

关于SqlServer那些事1(回归基础)

 3 years ago
source link: http://www.cnblogs.com/hcyesdo/p/13392669.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

即将实习,回归基础总结,希望可以再好好打磨一下基础的一些东西

关于如何在重新修改表结构时该变其权限设置

步骤:

  1. 点击工具
  2. 进入选项
  3. 设计器
  4. 取消勾选阻止保存要求重新创建表的更改

RZJ7neU.png!web

关于创建创建数据库以及数据库文件(.mdf)和日志文件(.ldf)

创建数据库有“有很笨的”方法就是不写脚本自动创建,右键创建数据库,点击新建数据库,就会出现如下示例图:

讲讲mdf和ldf的理解吧!

mdf也就是数据库主文件,主要是对处理一些业务数据,它是存放在硬盘里的,如你所见你可以去设置它的一个初始化的值(5MB),也可以查看它创建后存储的路径

ldf也就是日志文件,通俗地讲就是会记录用户什么时间,做了什么操作,谁在操作等进行一系列的记录和保存,比如说数据库文件的创建时间或者是用户登录数据库的时间等等

对了,需要注意的一点是,对于mdf和ldf两个文件最好都存储在同一个文件夹路径,本质上来说就算存放在不同文件夹在做数据库附加时也不会受到影响,但是这样想想存储在不同文件夹是极不容易后期维护和查看的!

qm63EzE.png!web

关于数据库分离

如果你想将数据库文件和日志文件进行打包或者复制到其他盘符,你也可以对它进行数据库的分离操作

步骤:

  1. 右键准备分离的数据库
  2. 任务
  3. 分离
  4. 确定

为什么要勾选删除连接,可能准备分离的数据库此时处于运行状态也就是和数据库保持连接的状态,需要删除连接操作然后进行分离,不然可能会出现操作失误等报错

jm267fn.png!web

分离完成后,可以去存放数据库主文件的文件夹查看已被分离出来的文件,此时已完成数据库分离操作!

uy63M3Q.png!web关于数据库附加

所谓附加就是将分离出来的数据库文件重新再连接,进而保证数据库业务逻辑和成绩的表结构数据在分离后不会丢失。

步骤:

  1. 右键数据库
  2. 附加
  3. 添加

6jeqIjn.png!web

选择你刚刚分离出来的数据库文件(这里主要是附加mdf文件)

MjiQjy.png!web

但是在附加的过程中,你可能会出现类似这样的报错信息:“操作系统错误,拒绝访问...”,不要心急这种问题可能是服务器对于附加的数据库文件没有权限

解决方案:

找到对应的准备附加的数据库文件夹,右键属性—》安全—》编辑—》添加(添加你自己命名的即可)—》勾选完全控制即可

yErAVzn.png!web

其实还有一种办法就是在不分离数据库的情况下进行mdf的拷贝操作,那就是进行脱机处理。其实脱机原理也就是脱离数据库的连接,等完成之后进行联机即可

zEFV73E.png!web

ANjIJfM.png!web

关于创建新的数据库用户

  1. 安全性
  2. 登录名
  3. 右键新建登录名
  4. 选择SqlServer身份验证
  5. 取消勾选强制密码实施策略

Zb2mMve.png!web

rA36Zva.png!web

FJFRz2i.png!web

注意:切勿对系统数据库进行修改或者是其他违规操作,不然很可能会导致数据库系统奔溃的

equEVb.png!web

关于采用自写脚本创建数据库

以上第一创建数据库的方式,作为小白初次可以这样去创建,但是个人觉得最好一次都不要尝试,个人觉得也比较low,知道有这种创建方式就好了!

go:你可以理解成分批次执行SQL

--首先判断数据库是否已经存在
if exists(select * from Sysdatabases where name ='mydb')
--存在就删除
drop database mydb
--执行完毕
go
--创建数据库
create database mydb
go
--使用数据库
use mydb
go

对了,使用以上脚本创建数据库仅仅限于开发环境下使用!!!不然可能会导致不明所以的数据库丢失,等同于删库!!!

关于数据的三种完整性约束

域完整性:某个字段的数据合法性约束(check约束、限制数据类型)

实体完整性:某一数据列的数据合法性约束

引用完整性:表与表之间引用是否合法的合法性约束(主键约束、唯一约束、主外键,一对一、一对多、多对多、分清楚谁是主表谁是从表!)

唯一约束(可null,null也是数据)、主键约束(唯一,不为null)、标识列(这一列的数据可自增、可设置起始的数值)

标识列:现有10条数据,删除后7条,存在1,2,3工3条数据,这样再去重新自增,这个时候标识列的起始值就从10开始一直加,假设自增值为1,这样就不会出现重复!

以上就是对SqlServer基础的一些总结,希望今年的实习阶段能够顺利,加油!!!


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK