【SQL Server】学习笔记1

数据库设计范式

1范式:列的原子性,列不可再拆分

2范式:表中不能描述多个信息,不能有数据沉余

3范式:引用其它表的主键信息

约束

  1. 非空约束not null。不能出现空值
  2. 主键约束(PK)primary key constraint。唯一并且不为空
  3. 唯一约束(UQ)unique constraint。允许为空,但不能重复
  4. 默认约束(DF)default constraint。默认填入什么个值,比如默认填入男
  5. 检查约束(CK)check constraint。检查你填入的信息是否满足需求。
  6. 外键约束(FK)foreign key constraint。可以做也可以不做,做的时候保证你的数据更加有效。

创建数据库

MS SQLServer每个数据库包含

1个主数据库文件(.mdf)必须

1个事物日志文件(.ldf)必须

可以包含:

任意多个次要数据文件(.ndf)

多个事物日志文件

文件组:可将多个数据文件逻辑分到一组,方便日后管理维护(备份、将表建在指定的文件组上)

关于列类型

文本类型:区分var、n

对于不带var的情况,表示不可变长度,如果赋值不够指定位数,用空格补齐

对于带var的情况,表示可变长度,如果赋值不够指定位数,以实际赋值为准

对于Unicode这种编码格式

如果带n,则每个字符占2个字节

如果不带n,则英文占1个字节,中文占两个字节

外键

对应关系:1对1、1对多、多对多

1对1的关系,这种数据存储到双方任意表里就可以

1对多的关系,将关系的数据存储到多的一方表里

多对多的关系,单独建立一个表,用于存储关系

根据关系创建出来的列所存储的信息,需要满足第3NF

示例:部门-员工的关系是 1:n

只要在员工表中建立eDid(部门ID)这个列,就已经存储了部门与员工的关系外键只是一个约束,保证数据的有效性,外键需要建立在关系列上。

脚本

脚本执行快捷键Ctrl+E

SQL主要分为DDL(数据库定义语言 建表、建库等语句)、DML(数据库操作语言)和DCL(数据库控制语言)。CreateTable、AlterTable等属于DDL,Select、Insert、Update、Delete属于DML,GRANT授权、REVOKE取消授权属于DCL。

1.创建数据库

CREATE DATABASE name

2.删除数据库

drop database name

3.创建表

Create table name(

列名 类型….

cName nvarchar(10) not null,

列表名为:cName

类型为:nvarchar(10)

不允许空:not null

)

4.删除表

Drop  table  name

5.增加约束

Alter  table  name

Add  constraint  CK_cname check (len(cName)>2)

时间: 2024-12-28 01:41:44

【SQL Server】学习笔记1的相关文章

【SQL Server学习笔记】事务、锁定、阻塞、死锁

http://blog.csdn.net/sqlserverdiscovery/article/details/7712068 Column name Data type Description       blocked smallint ID of the session that is blocking the request. If this column is NULL, the request is not blocked, or the session information of

SQL server 学习笔记1

1.查询安装的排序规则选项喝当前的排序规则服务器属性 select * from fn_helpcollations(); 2.查看当前服务器的排序规则 select serverproperty('Collation') as ServerCollation; 3.修改数据库DB1的排序规则,使他区分大小写 create database DB1 go alter database DB1 collate SQL_Latin1_General_CP1_CS_AS; go select data

SQL server 学习笔记2

select *from lol --top 关键字 select top 3 *from lol--查询前三行 select top 3 *from lol where age>22 --加入条件 select top 3 name,wuqi from lol where age>22 -- --关键字 distinct 查询不同项 去重 select distinct name from lol --查询不同名字的行 --order by 升序 select *from lol order

SQL server 学习笔记

select *from student--查询数据库 create database s20150417 --新建数据库 drop database [20150325] --删除数据库 数字开头的需要用[]括起 use s20150417 --使用数据库 go --连接符 不写也可以 create table student--创建表 ( code int not null,--列 name varchar(50) not null,--列 sex int,--列 degree decima

SQL Server 2012笔记分享-46:如何快速学习T-SQL语句

对于初学者来说,T-SQL语句的编写一直是个难题,初学者还是习惯使用图形界面来做相关的SQL方面的维护工作.但是在一个稍微复杂大型的SQL场景中,如果我们能够快速的掌握和理解SQL语句的编写和使用,那么会使我们的运维工作达到事半功倍的效果. 其实对于SQL server 2012来说,本身就提供了很多途径来帮助初学者获取日常管理任务的对应T-SQL脚本.下面我们来举几个快速获取T-SQL脚本的例子. ================================================

SQL Server 2012笔记分享-3:版本对比

SQL server 2012的版本及版本的概述如下 SQL Server 版本 Enterprise(64 位和 32 位) 提供了全面的高端数据中心功能,性能极为快捷.虚拟化不受限制,还具有端到端的商业智能 - 可为关键任务工作负荷提供较高服务级别,支持最终用户访问深层数据. Business Intelligence(64 位和 32 位) 提供了综合性平台,可支持组织构建和部署安全.可扩展且易于管理的 BI 解决方案. 它提供基于浏览器的数据浏览与可见性等卓越功能.功能强大的数据集成功能

SQL Server 2012笔记分享-5:理解SQLOS

描述 SQLOS是一个单独的应用层,它位于SQLServer数据库引擎的最低层,SQLServer和SQL Reporting Services都是在顶层运行.SQLOS介于windows操作系统和SQL server之间. 为什么开发SQLOS SQLServer的早期版本在存储引擎和实际操作系统之间使用瘦接口层,通过该接口层,SQLServer可以调用操作系统来执行内存分配,计划资源,线程和工作管理,以及同步对象.不过,SQLServer中需要访问这些接口的服务可以位于引擎的任何部分.SQL

SQL Database学习笔记

1. linux下快速安装MariaDB: MariaDB 是 一个采用 Maria 存储引擎的  MySQL  分支版本,是由原来 MySQL 的作者 Michael Widenius 创办的公司所开发 的免费开源的数据库服务器 . 本文介绍了在linxu下一个简单的安装 方法(在OpenSuse下测试成功): (摘自:http://www.2cto.com/database/201307/229102.html) # tar zxvf mariadb-5.5.31-linux-x86_64.

SQL SERVER 读书笔记:(一)

最近一直在读<SQL SERVER 2008完全手册>,看电子书一直没有做笔记的习惯,所以很多东西学了又忘记了,基本上等于没学.. 熟悉的和已经掌握的知识点不再记录,这里只记录下学习中比较生僻的知识点: 数据库引擎: 存储和处理关系的,负责完成数据的存储.处理和安全管理. Analysis Services: identity属性: 使用identity可以将某列设置成标识列,实现表的行数自增加. identity 必须指定两个值: 种子值和增量值. identity(seed, increm

SQL Server 2012笔记分享-54:数据库文件管理1

(一)添加文件 可以在线执行,不影响数据库使用 ,如图. 添加完成后,如图所示. 也可以通过脚本的形式来添加,如图. (二)删除文件 可以在线执行,不影响数据库使用 . 只有当文件中的实际使用空间为空时才能被成功执行 . (三)移动文件到不同的磁盘路径下 必须先将数据库脱机,将导致数据库暂时不可用 详情参考:http://msdn.microsoft.com/zh-cn/library/ms345483.aspx 若要将移动数据或日志文件作为计划的重定位的一部分,请执行下列步骤: 1. 运行以下