SQL Server基础
一、常用命令
1、使用命令行开启SQL Server服务
获取管理员权限的命令行工具:
net start mssqlserver 开启sql server服务
net restart mssqlserver 重新启动sql server服务
net stop mssqlserver 关闭sql server服务
2、使用命令登陆(该方法可适用于在一台没有SQL Server的电脑去操作一台有SQL Server的电脑)
运行: sqpl ?/
[-S 服务器的名称] [-U 登陆名] [-P 密码]
出现1>表示连接成功,接下来就可以输入SQL语句来进行操作了。
二、基本概念知识
1、数据库登录名:
SQL Server安装以后,有一个超级管理员"sa"(super Administrator的简称),一般不要使用这个用户管理数据,也不能 把这个用户的密码设置为空,随便把该用户操作、密码设置为空都将给数据库带来很大的安全隐患,所以一般在安装完毕并创 建了其他登录名后,将sa账户进行禁用或删除。
如何新建一个数据库用户我在另一篇博客中写有。http://www.cnblogs.com/chenyongblog/p/3719408.html
2、系统数据库:
SQL Server中自带的系统数据库master,model,msdb,tempdb。
这里引用下这篇文章:深入了解SQLServer系统数据库工作原理
Master
Master数据库保存有放在SQLSERVER实体上的所有数据库,它还是将引擎固定起来的粘合剂。由于如果不使用主数据库,SQLSERVER就不能启动,所以你必须要小心地管 理好这个数据库。因此,对这个数据库进行常规备份是十分必要的。
这个数据库包括了诸如系统登录、配置设置、已连接的SERVER等信息,以及用于该实体的其他系统和用户数据库的一般信息。主数据库还存有扩展存储过程,它能够访问外部进程,从而让你能够与磁盘子系统和系统API调用等特性交互。这些过程一般都用像C++这样的现代编程语言。
如果不幸碰到系统崩溃而必须恢复主数据库的情况,你可以参看MCSE/MCDBA Steven Warren在TechRepublic上发表的文章。这篇文章讲得十分透彻,它解释了恢复 一重要数据库所需要的一些特殊步骤。
Model
Model是一个用来在实体上创建新用户数据库的模版数据库。你可以把任何存储过程、视图、用户等放在模型数据库里,这样在创建新数据库的时候,新数据库就会包含你放在 模型数据库里的所有对象了。
Tempdb
正如其名字所提示的,tempdb存有临时对象,例如全局和本地临时表格和存储过程。 (这里我理解我系统的临时表,例如我在做集合查询的时候,不想创建一个新表,我可以通过tempdb来保存数据)
这个数据库在SQLSERVER每次重启的时候都会被重新创建,而其中包含的对象是依据模型数据库里定义的对象被创建的。除了这些对象,tempdb还存有其他对象,例如表格 变量、来自表格值函数的结果集,以及临时表格变量。由于tempdb会保留SQLSERVER实体上所有数据库的这些对象类型,所以对数据库进行优化配置是非常重要的。
Msdb
Msdb数据库用来保存于数据库备份、SQL Agent信息、DTS程序包、SQLSERVER任务等信息,以及诸如日志转移这样的复制信息。
3、文件及组成类型
数据库文件由1个数据文件.mdf/.ndf和至少1个日志文件.ldf组成
4、服务器角色
(1)sysadmin:执行sql server中的任何动作
(2)serveradmin:配置服务器设置
(3)setupadmin:安装复制和管理拓展过程
(4)securityadmin:管理登陆和create database的权限以及阅读审计
(5)processadmin:管理sql server进程
(6)dbcreator:创建和修改数据库
(7)diskadmin:管理磁盘文件
5、数据库角色
(1)db_owner:可以执行数据库中技术所有动作的用户
(2)db_accessadmin:可以添加、删除用户的用户
(3)db_datareader:可以查看所有数据库中用户表内数据的用户
(4)db_datawriter:可以添加、修改或删除所有数据库中用户表内的数据的用户
(5)db_ddlaadmin:可以在数据库中执行所有DDL操作的用户
(6)db_securityadmin:可以管理数据库中与安全权限有关的
(7)db_backoperator:可以备份数据库的用户(并可以发布DBCC和CHECKPOINT语句,这两个语句一般在备份前都会被执行)
(8)db_denydatareader:不能看到数据库中任务数据的用户
(9)db_denydatawriter:不能修改数据库中任何数据的用户
三、数据库完整性
1、实体完整性约束:实体完整性要求表中的每一行数据都反映不同的实体,不能存在相同的数据行。通过索引、唯一约束、主键约束或者表示列属性。
2、域完整性约束:域完整性指的是给定列输入的有效性通过限制数据类型、检查约束、输入格式、外键约束、默认值、非空约束等多种方法,可以实现标的域完整性。
3、引用完整性约束:在输入或删除数据行时,引用完整性约束用来保持表之间已定义的关系。子表不能添加主表中设置了外键约束的列没有关联的内容。主表不能修改设置了外键约束的列,当子表有与之匹配的相关信息时,主表不能删除设置了外键的列,当子表有与之匹配的相关信息时,引用完整性通过主键和外键之间的引用关系来实现。
4、自定义完整性约束:用户自定义完整性用来定义特定的规则,通过数据库的规则,存储过程等方法来进行约束。
四、主键、外键
1、主键:当某些信息不允许重复时,这就需要有一个列,这个列的值用来唯一标识表中每一行,用于强制表的实体完整性,这样的列定义为表的主键。一个表只能有一个主键,主键约束确保了表中的行是唯一,尽管有的表个允许没有主键,但是通常情况下应当为表设置一列为主键。
2、外键:当子表某列的信息必须在主表存在的情况才能输入,就应当建立一种"引用"的关系,确保"子表"中的某个数据项在"主表"中必须存在。"外键"就是用来达到这个目的的,它是相对于主键而言的,就是"子表"中对应于"主表"的列,在子表中称为外键或者引用键,它的值要求与主表的主键或唯一键相对应,外键用来强制引用完整性。一个表可以有多个外键。
3、复合主键:如果两列或多列组合起来唯一地标识表中的每一行,则该主键也叫"复合主键"。当使用复合主键,数据输入时,必须跟所有设置了复合主键的列的数据都相同的情况才会被禁止输入。
4、主键选用原则:
(1)最少性是指列数最少的键,如果可以从单个主键和组合主键选择时,应该选择单个主键,这是因为操作一列比操作多列要快。当然该规则也有例外,例如,两个整数类型的列的组合比一个很大的字符类型的列要快。
(2)稳定性是指列中数据的特征,由于主键通常用来在两个表之间建立联系,所以主键的数据不要经常更新,理想情况下,应该永远不改变。
SQL Server基础的更多相关文章
- SQL server基础知识(表操作、数据约束、多表链接查询)
SQL server基础知识 一.基础知识 (1).存储结构:数据库->表->数据 (2).管理数据库 增加:create database 数据库名称 删除:drop database ...
- 数据库开发基础-SQl Server 基础
SQL Server 基础 1.什么是SQL Server SQL:Structured Query Language 结构化查询语言 SQL Server是一个以客户/服务器(c/s)模式访问.使 ...
- 【SQL Server】SQL Server基础之存储过程
SQL Server基础之存储过程 阅读目录 一:存储过程概述 二:存储过程分类 三:创建存储过程 1.创建无参存储过程 2.修改存储过程 3.删除存储过程 4.重命名存储过程 5.创建带参数的存储 ...
- Sql Server 基础知识
Sql Server 基础知识: http://blog.csdn.net/t6786780/article/details/4525652 Sql Server 语句大全: http://www.c ...
- Sql Server 基础语法
来自:http://www.cnblogs.com/AaronYang/archive/2012/04/24/2468093.html Sql Server 基础语法 -- 查看数据表 select ...
- 《SQL Server基础——SQL语句》
SQL Server基础--SQL语句 一.创建和删除数据库: 1.创建数据库(默认化初始值) 格式: CREATE DATABASE 数据库名称 例如: CREATE DATABASE ...
- SQL Server基础之索引
索引用于快速找出在某个列中有某一特定值的行,不使用索引,数据库必须从第一条记录开始读完整个表,直到找出相关的行.表越大,查询数据所花费的时间越多,如果表中查询的列有一个索引,数据库能快速到达一个位置 ...
- sql server 基础教程[温故而知新三]
子曰:“温故而知新,可以为师矣.”孔子说:“温习旧知识从而得知新的理解与体会,凭借这一点就可以成为老师了.“ 尤其是咱们搞程序的人,不管是不是全栈工程师,都是集十八般武艺于一身.不过有时候有些知识如果 ...
- 【SQL server】SQL server基础(二)
一.一些重要的SQL命令 SELECT - 从数据库中提取数据 UPDATE - 更新数据库中的数据 DELETE - 从数据库中删除数据 INSERT INTO - 向数据库中插入新数据 CREAT ...
- SQL Server基础之《视图的概述和基本操作》
数据库中的视图是一个虚拟表.同真实的表一样,视图包含一系列带有名称的列和行数据,行和列数据用来自由定义视图和查询所引用的表,并且在引用视图时动态产生.本篇将通过一些实例来介绍视图的概念,视图的作用, ...
随机推荐
- 【翻译习作】 Windows Workflow Foundation程序开发-第一章04
1.2.3 Windows Workflow运行时 从Windows Workflow的角度看,可以将工作流活动当成是交给一个工作流处理器去执行的一系列指令或操作码.在Windows Workflo ...
- Android开发-API指南-<category>
<category> 英文原文:http://developer.android.com/guide/topics/manifest/category-element.html 采集(更新 ...
- Docker学习总结之docker入门
Understanding Docker 以下均翻译自Docker官方文档 ,转载请注明:Vikings翻译. What is Docker? Docker 是一个开源的平台,设计目标是可以方便开发, ...
- update field
UPDATE dbo.HotelPolicy SET HPFactorMark=TB.MarkValue FROM (select HPF.HPFRPolicyId AS ID ,CONVERT(i ...
- mysql显示乱码问题
在select * from table:时往往会出现上图所示乱码现象 此时,输入status,会发现: 此时只要SET NAMES utf8即可解决该问题.此时,再次输入status: 总结:S ...
- 【Hibernate 5】继承映射配置及多态查询
一.继承实现的三种策略 1.1,单表继承.每棵类继承树使用一个表(table per class hierarchy) -->本文主要介绍的继承策略 类继承树对应多个类,要把多个类的信息存放在一 ...
- Java 对字符反转操作。
//把一段字符串反转后大小写互换位置 public class test_demo { public static void main(String[] args)throws Exception { ...
- 【MVC】关于Action返回结果类型的事儿(下)
代码
- C# Socket网络编程精华篇(转)
我们在讲解Socket编程前,先看几个和Socket编程紧密相关的概念: TCP/IP层次模型 当然这里我们只讨论重要的四层 01,应用层(Application):应用层是个很广泛的概念,有一些基本 ...
- (笔记)angular material 选项卡用法