金沙棋牌app手机下载

当前位置:金沙棋牌 > 金沙棋牌app手机下载 > 数据库设计,数据库笔记

数据库设计,数据库笔记

来源:http://www.logblo.com 作者:金沙棋牌 时间:2019-09-16 01:59
二进制数据类型

Binary:存储固定长度的二进制数据。最大长度8000
Varbinary:存储可变长度的二进制数据。存储长度为实际输入的数据长度+4个字节
Image:存储照片,目录图片或图画,不能直接通过insert语句输入,存储长度最大为2GB

其中,type 是用户定义的数据类型的名称。system_data_type 是系统提供的数据类型,例如 Decimal、Int、Char 等等。  null_type 表示该数据类型是如何处理空值的,必须使用单引号引起来,例如'NULL'、'NOT NULL'或者'NONULL'。  

  • SQL Server 的collate的含义

 

Money和Smallmoney(货币类型)

Money:用于存储货币值,存储范围-263~263-1,分为整数部分和小数部分,前4个字节存储整数部分,后4个字节存储小数部分。精确到小数点后四位。
Smallmoney:用于存储货币值,存储范围-231~231-1,分为整数部分和小数部分,前2个字节存储整数部分,后2个字节存储小数部分。精确到小数点后四位。

a.高效一致的结构化数据存取方法,进行复杂的任意条件组合嵌套的数据查询(关系数据库管理系统甚至为实现这一功能专门设计了一种语言:SQL)

  • SQL Server系统表sysobjects介绍与使用
  • sqlserver字段类型详解
  • Sql Server 快速查看表结构(表描述及字段说明)
  • SQL Server里查询表结构命令
  • Sql语句查看表结构

  1.创建数据库([]表示可以省略,{}表示必需的部分,<>表示解释说明)

其他数据类型

Sql_variant:用于存储各种数据类型(int,binary,char)
Timestamp:时间戳数据类型,反应数据库中数据修改的相对顺序,相当于单调上升的计时器
Uniqueidentifier:16字节长的二进制数据类型,存储全局唯一标识符代码,可通过调用SQL Server的newid()函数获得,全球唯一。
Xml:用于保存整个XML文档
Table:用于存储对表或试图处理后的结果集
Cursor:是变量或者存储过程OUTPUT参数的一种数据类型,包含对游标的引用。

  数据库系统的核心目标就是:在实现功能需求的基础上,保证数据完整性和数据存取性能。


 

临时表

临时表分为本地临时表和全局临时表。本地临时表表名#打头,只对当前用户连接可见,用户断开连接后被自动删除。全局临时表表名##打头,对所有用户都可见,当所有引用该表的用户断开连接时被自动删除。

日期和时间数据类型包括 Datetime 和 Smalldatetime两种类型  


 

定义标识字段IDENTITY的应用

当一个字段被IDENTITY定义为标识字段,当新增一条记录,该字段会被系统自动赋值,并按设置的增量递增。每个表只允许指定1个标识字段。

USE test
GO
ALTER TABLE CustNew
ADD s_id INT IDENTITY(1,1);
GO

上述语句为CustNew表新增一个s_id列,该列数据类型为int,标量种子为1,增量为1。再例如

USE test
GO
ALTER TABLE CustCopy
ADD t_id INT IDENTITY(2,4);
GO

然后查询该表数据如下
图片 1
我们再来看一个错误的案例

USE test
GO
ALTER TABLE a
ADD t_id VARCHAR(12) IDENTITY(2,4);
GO

新增一个列t_id并将数据类型设置为VARCHAR,将该字段设置为标识字段,下面是报错
消息2749,级别16,状态2,第1 行
标识列't_id' 的数据类型必须是int、bigint、smallint、tinyint 或decimal,或者是小数位数为0 的numeric 数据类型,并且约束为不可为Null。

注:取消标识列最常用的办法就是新建一列并删除标识列,再将新建列的列名修改成标识列的列名。就是替代的方法。

Varbinary[(n)] 是 n 位变长度的二进制数据。其中,n 的取值范围是从 1 到 8000。其存储窨的大小是 n + 4个字节,不是n 个字节。  

collate: 定义排序规则

    )

字符串数据类型

Char:固定长度字符串数据类型,每个字符使用一个字节的存储空间,最大占位8000个字符
Varchar: 可变长度字符串数据类型,其余同char
Text:可变长度字符串数据类型,最大占位231-1个字符

注:选择固定长度数据类型还是可变长度数据类型,应考虑存储的数据长度是否相同,相同则使用固定长度数据类型,不同但差别不大,考虑到节省存储空间,提高数据库运行效率,应选择可变长度数据类型。

Exec sp_droptype 'ssn' 

sp_columns 表名 查询表结构
TABLE_QUALIFIER : 归属哪个数据库
TABLE_OWNER : 归属哪个数据库
TABLE_NAME : 表名
COLUMN_NAME : 列名
DATA_TYPE : 数据长度
TYPE_NAME : 数据类型
PRECISION : 精度(包含整数和小数点在内的所欲偶数字位数,scale只用来说明小数位数精度)
LENGTH : 长度
SCALE : 小数位数
RADIX :
NULLABLE : 是否可为空
REMARKS : 备注
COLUMN_DEF :
SQL_DATA_TYPE :
SQL_DATETIME_SUB:
CHAR_OCTET_LENGTH:
ORDINAL_POSITION:
IS_NULLABLE:
SS_DATA_TYPE:

  语法:

Unicode字符数据类型

Nchar(n):固定长度的字符数据类型。参数n代表字节数,取值范围1~4000
Nvarchar(n): 可变长度的字符数据类型。参数n代表字节数,取值范围1~4000
Ntext:最大长度可到达230-1个字符。

2 手动执行DBCC SHRINKDATABASE语句来收缩整个数据库的大小;

数据库 命名规则

  • 数据库表及字段命名规范
  • 数据库命名规则
  • MySQL数据库命名规范及约定

3.查询数据

分离和附加数据库

此方法是复制和移动数据库的最快方式。要求用户必须是源和目标服务器sysadmin固定服务器角色的成员,源数据库脱机,分离数据库前要将数据库设置成单用户模式。

Uniqueidentifier 由 16 字节的十六进制数字组成,表示一个全局唯一的。 当表的记录行要求唯一时,GUID是非常有用。例如,在客户标识号列使用这种数据类型可以区别不同的客户。  

系统函数

  • SQL CONVERT() 日期转换函数)

第二步:绘制 E-R 图 (标示实体 ,找到实体的属性

RAID技术的使用

Redundant Array of Independent Disks,即独立磁盘冗余阵列,是由多个磁盘驱动器组成的磁盘系统,比较复杂,在此不做详细描述。

所有的恢复模式都允许备份完整或部分的sql server数据库或数据库的单个文件或文件组。不能创建表级备份。


--添加外键约束(主表Student和Result建立关系,关联StudentNo)
alter table Result
add constraint FK_StudentNo
  foreign key(StudentNo) references Student(StudentNo)
Go
参考完整性

通过设定外键,检查,触发器和存储过程等多种方法,确保相关数据库表之间数据一致性。

数字数据只包含数字。数字数据类型包括正数和负数、小数(浮点数)和整数。整数由正整数和负整数组成,例如 39、25、0-2 和 33967。 


eg:

截断数据文件

必须先用SELECT语句获取数据文件的file_id

USE test
GO
SELECT FILE_ID,name FROM sys.database_files;--获取test数据库中数据文件和日志文件的file_id
GO
DBCC SHRINKFILE(1,TRUNCATEONLY);--截断并收缩该file_id对应的文件
GO

3333333,当使用近似数据类型时能准确表示。因此,从系统中检索到的数据可能与存储在该列中数据不完全一样。  

SQL Sever 没有下面的数据类型

  • double : 使用 float 代替

 

数据库手动收缩

DBCC SHRINKDATABASE(test,10);
GO
或者使用如下命令:

USE test
DBCC SHRINKFILE('test',0,TRUNCATEONLY);

上面命令收缩了test数据库的test.mdf文件,设置目标文件大小为0MB,TRUNCATEONLY参数表示将文件所有可用空间全部释放给操作系统,但不在文件内部执行页迁移。

一、基本概念

SET COMPATIBILITY_LEVEL 用于设置MS SQL Server的兼容级别
MS SQL Server 2000:SET COMPATIBILITY_LEVEL=80
MS SQL Server 2005:SET COMPATIBILITY_LEVEL=90
MS SQL Server 2008:SET COMPATIBILITY_LEVEL=100
MS SQL Server 2012:SET COMPATIBILITY_LEVEL=110
最常使用方法:
ALTER DATABASE [数据库名]
SET COMPATIBILITY_LEVEL = 100

 

用户自定义类型

通过设定规则,触发器,存储过程和约束自定义数据,来确保自定义完整性。

字符串:char、varchar、text;

数据库 数据类型

有关sql 的几种数据类型

  • SQL Server数据库(时间戳timestamp)类型

  • binary
    固定长度的二进制数据,其最大长度为 8,000 个字节。

  • varbinary
    可变长度的二进制数据,其最大长度为 8,000 个字节。

  • image
    可变长度的二进制数据,其最大长度为 2^31 - 1 (2,147,483,647) 个字节
    一般Web站点都只是用varchar类型来存图片路径,不直接存图片的二进制格式

  • text
    数据类型用来存储大量的非统一编码型字符数据。这种数据类型最多可以有2的31次方-1或20亿个字符

  • 各种DateTime的取值范围

  • char: 固定长度,存储ANSI字符,不足的补英文半角空格。

  • nchar: 固定长度,存储Unicode字符,不足的补英文半角空格

  • varchar: 可变长度,存储ANSI字符,根据数据长度自动变化。

  • nvarchar: 可变长度,存储Unicode字符,根据数据长度自动变化。

  • SQLServer中char、varchar、nchar、nvarchar的区别:

...唯一约束=>"UQ_IdentityCard;

区域完整性

通过设定默认值,检查,外键,数据类型和规则等多种方法,确保字段值在一个特定的允许范围内。

Exec sp_addtype birthday,datetime,'Null' 

 

数据库基本概念:区、页、行

:SQL Server中管理空间的基本单位。一个区大小为64KB,是八个物理上连续的页。SQL Server中每MB有16个区。一旦一个区被存储满,SQL Server将分配一个区给下一条数据。
:SQL Server中存储数据的基本单位,是区的分配单元。一个页大小为8KB。是SQL Server 每次读取和写入数据的最小单位。页的类型有数据页,索引页,文本页等等。
:行存储于页中,一行一般最多占满一页,也就是8KB,但也有些VARCHAR(MAX),TEXT,IMAGE类型的字段,可以跨越多页存储,一行最大2GB。

例子:  

use StuDBgo 
if exists(select * from sysobjects where name='stuMarks')
drop table stuMarks
create table stuMarks
(   
    ExamNo      int     identity(1,1) primary key,    
    stuNo       char(6) not null,    
    writtenExam int     not null,   
    LabExam     int     not null
)
go

表的基础知识

Char 是定长字符数据,其长度最多为 8KB。 

2.修改数据

整数数据类型

Bigint:存储范围-263~263-1范围内所有正负整数,存储在8个字节中,每个字节长度8位
Int:存储范围-231~231-1范围内所有正负整数,存储在4个字节中,每个字节长度8位
Smallint:存储范围-215~215-1范围内所有正负整数,存储在2个字节中,每个字节长度8位
Tinyint: 存储范围0~255范围内所有正整数,存储在1个字节中,每个字节长度8位

创建一个用户定义的数据类型 birthday,其基于的系统数据类型是 DateTime,允许空。  

    add constraint 约束名 约束类型 具体的约束说明

近似数字数据类型

针对类似无限循环小数这种无法精确表示的数据
Real:存储范围-3.40E-38~3.40E+38范围内的正负十进制数值,精确到第7位小数。用4个字节存储空间。
Float(n):存储范围-1.79E-308~1.79E+308,精确到第15位小数,参数n可指示保存4字节或8字节。
Decimal(p,s):取值范围-1038+1~1038-1,带有固定精度和位数的数据类型,p表示精度,s表示位数。p的取值范围1~38,s的取值范围0~p,占用2~17个字节的存储空间
Numeric:SQL Server2008中同decimal(p,s)

 

    (

清空文件
ALTER DATABASE test--创建一个空数据文件test1data.ndf放在E盘
ADD FILE(
NAME='test1data',
FILENAME='E:test1data.ndf',
SIZE=5MB
);
GO

DBCC SHRINKFILE('test1data',EMPTYFILE);--利用SHRINKFILE语句清空该数据文件
GO

ALTER DATABASE test--删除该文件
REMOVE FILE test1data;
GO

 

use StuDBgo 
if exists(select * from sysobjects where name='stuMarks')
drop table stuMarks
数据文件和事务日志文件的放置

尽量把多个数据文件分散在不同物理驱动器的不同逻辑磁盘上。尽量把数据文件和事务日志文件分散在不同物理驱动器的不同逻辑磁盘上。这样做的目的是可以同时从多个物理磁盘驱动器上读取文件,让系统执行并行操作,提高系统使用数据的效率。
例如假设SQL Server 2008有A,B两个物理驱动器,A下有C,D两个逻辑磁盘,B下有E,F两个逻辑磁盘,数据库test有test1.mdf和test2.mdf两个数据文件,test1_log.ldf和test2_log.ldf两个事务日志文件。此时最佳做法是将这4个文件分别放在CDEF4个逻辑磁盘内。

四、sqlserver和Transact-sql

     <数据文件参数> [,......n] [<文件组参数>]

创建自己的数据类型

使用存储过程sp_addtype创建自己的数据类型

USE test
GO
EXEC sp_addtype credit,'int','NULL';

新数据类型名称credit,参照系统数据类型int,允许为空。

Unicode字符串:nchar、nvarchar、ntext。

 

收缩事务日志文件

若要运行SHRINKFILE命令收缩文件,首先要将数据库恢复模式设置成SIMPLE来截断该文件。

USE test
GO
ALTER DATABASE test SET RECOVERY SIMPLE;--将test数据库恢复模式设置成SIMPLE
GO
DBCC SHRINKFILE('test_log',1,TRUNCATEONLY);
--将test_log.ldf文件收缩到MB,且不允许文件内部页迁移
GO
ALTER DATABASE test SET RECOVERY FULL;
--将test数据库恢复模式设置回FULL
GO

Exec sp_addtype telephone,'varchar(24),'Not Null' 

 drop database 数据库名

收缩数据库

数据库中每个文件都可以通过删除未使用的页的方法来收缩。数据文件和事务日志文件都可以收缩。数据库收缩分为手动收缩和通过数据库设置自动收缩。

 

 

Bit(位类型)

只有0和1两种取值,作为逻辑变量使用,用来表示真与假,是与否的二值选择

超过 8KB 的ASCII 数据可以使用Text数据类型存储。例如,因为 Html 文档全部都是 ASCII 字符, 并且在一般情况下长度超过 8KB,所以这些文档可以 Text 数据类型存储在SQL Server 中。

...外键约束=>"FK_StudentNo.

时间日期数据类型

Date:只存储日期数据类型,范围0001-01-01到9999-12-31
Time:只存储时间数据类型,范围00:00:00.0000000到23:59:59.9999999
Datetimeoffset:由年月日时分秒小数秒组成的时间结构
Datetime2:时间日期混合组成的时间结构,其中小数秒的位数可以设置

 

4.三大范式规范数据库设计
第一范式:保证每列的原子性,不可再被拆分
第二范式:在满足第一范式的基础上,一张表只能描述一件事情
第三范式:在满足第二范式的基础上,除了主键列之外其他列都要直接依赖于
要在规范化和性能之间取一个平衡

系统表

系统表存储了SQL Server 2008服务器配置,数据库设置,用户和表对象描述等信息,一般来说只能由DBA来使用该表。
注:数据库表操作已掌握,此处省略。

4) 使数据免受用户失误所带来的影响。

 

优化数据库

优化数据库就是提高数据库的稳定性,运行速度和执行能力。主要从3个方面对数据库进行优化。

为什么使用数据库?

第一步:需求分析(收集信息)

SQL管理对象

此方法稍慢,但不要求数据库脱机,要求用户是源数据库所有者且有CREATE DATABASE的权限。右键数据库—任务—复制数据库。

精确小 数数据在 SQL Server 中的数据类型是 Decimal 和 Numeric。这种数据所占的存储空间根据该数据的位数后的位数来确定。  

 

复制和移动数据库

SQL Server 2008使用2中方式来进行复制和移动数据库操作。

(2)字符数据类型  

   create detabase 数据库名

设置关闭自动收缩
ALTER DATABASE test
SET AUTO_SHRINK OFF;

使用 Int 数据存储数据的范围是从 -2 147 483 648 到 2 147 483 647(每一个值要求4个字节存储空间)。 

 drop table 表名

数据类型

Use cust 

3.删除约束

设置数据库自动收缩

数据库引擎会定期检查每个数据库的空间使用情况,自动收缩有可用空间的数据库。

ALTER DATABASE test
SET AUTO_SHRINK ON;

字符数据类型有6种:

其中,列属性"identity(起始值,递增量)" 表示"ExamNo"列为自动编号, 也称为标识列

数据库的完整性

数据的值必须正确无误,数据类型必须正确设置,且必须确保统一表格数据之间和不同表格数据之间的相容关系。

但是如果数据库特别大,比如几十个G,将整个mdf文件拷贝一遍会占用大量的IO资源和磁盘空间。考虑到mdf文件内容是分页保存的,而且数据库中的数据在一定时间内不会全部发生变化,那么不必每次备份都把整个mdf文件都拷贝。只需要在每个页的页头中设一个bit位记录一下自从上次备份以来,这一页是否有被修改过,那么,有了上次的备份,只需要把那些发生了变化的页备份一下就可以。这就是Sql Server中的完整备份和差异备份。出于简化设计和简化备份恢复过程的考虑,虽然Sql Server在每个完整备份后面可以进行任意次的差异备份,但是所有的差异备份都是相对于最近一次完整备份的,而不是可能存在的上一次差异备份。很自然的,任何差异备份之前必须有一次完整备份。

...检查约束=>"CK_BornDate;

使用文件组

文件组是数据库文件的集合,方便数据库数据的管理与分配。文件组中的文件不能再移动到其他文件组中,文件组中只包含数据文件,不包含事务日志文件。文件组只能提高性能,不能提高稳定性,因为一旦文件组中有1个文件早到破坏,整个文件组的数据都无法使用。

(7)特殊数据类型  

 

实体完整性

通过设定主键,唯一键,标识列,唯一索引等多种方法,确保数据库中所有实体的唯一性。

注意:当表中的列还正在使用用户定义的数据类型时,或者在其上面还绑定有默认或者规则时,这种用户定义的数据类型不能删除。 

    alter table 表名

在 Microsoft SQL Server 中,传统的非 Unicode 数据类型允许使用由特定字符集定义的字符。 在 SQL Server安装过程,允许选择一种字符集。使用 Unicode 数据类型,列中可以存储任何由Unicode 标准定义的字符。 在 Unicode 标准中,包括了以各种字符集定义的全部字符。使用Unicode数据类型, 所战胜的窨是使用非 Unicode 数据类型所占用的窨大小的两倍。  

3.如何绘制数据库模型图
PowerDesigner :选择 PhysicalModel
如有有人不小心关掉了 Platter,对工具栏点击右键,勾选 Platter 即可。
当我们将数据库模型图设计完毕后,可以通过菜单中的 database下的
GenerateDatabase来生成对应的 sql

Bit 由 1 或者 0 组成。当表示真或假、ON 或 OFF 时,使用 Bit 数据类型。 例如,询问是否是每一次访问的客户机请求可以存储在这种数据类型的列中。  

  filegroup 文件组名 <文件参数> [,......n]

 

eg:

  RDBMS:Relational Database Management System关系型数据库管理系统,就是在数据库管理系统的基础上增加关系,通过数据、关系和对数据的约束三者组成的数据模型来存放和管理数据。

1.数据库设计的步骤

Varchar 是变长字符数据,其长度不超过 8KB。 

datatime:表示时间范围可以表示从1753/1/1至9999/12/31,时间可以表示到3.33/1000秒.使用8个字节.
smalldatetime:表示时间范围可以表示从1900/1/1至2079/12/31.使用4个字节.

 

  语法:

二、备份数据库 

 2.创建表

在 Micrsoft SQL Server 中,整数存储的数据类型是Int,Smallint和 Tinyint。 Int 数据类型存储数据的范围大于 Smallint 数据类型存储数据的范围, 而 Smallint 据类型存储数据的范围大于Tinyint 数据类型存储数据的范围。 

 

数据库正在使用时,sql server可以使用联机备份过程来备份数据库。在备份过程中可以进行insert into、update、delete操作,但如果在正在创建或删除数据库文件时尝试启动备份操作,则备份操作将等待。

为学号(StudentNo)添加主键约束,约束名推荐取名"PK_StudentNo;

 

bit:bit数据类型代表0,1或NULL,就是表示true,false.占用1byte.
int:以4个字节来存储正负数.可存储范围为:-2^31至2^31-1.
smallint:以2个字节来存储正负数.存储范围为:-2^15至2^15-1
tinyint: 是最小的整数类型,仅用1字节,范围:0至此^8-1

(5)数字数据类型  

 [,maxsize={最大容量|unlimited}]

在MSDN中数据库快照的典型应用是 

 

text和char及varchar的区别在于,char和varchar字段的数据是保存在表中,而text字段可以保存大容量的文本,数据是保存在另外的空间里,当然在表面上看来并没有什么区别。  

5.T-SQL语句回顾(其中[]中的表示可省略)

DDL:data definition language。是对于数据库对象的控制语法,对数据库对象(数据表、预存程序、函授火自定义类型等)的新增、修改、删除操作使用的语法。CREATE、ALTER、DROP。

1.添加数据

Use cust 

float:用8个字节来存储数据.最多可为53位.范围为:-1.79E+308至1.79E+308.
real:位数为24,用4个字节,数字范围:-3.04E+38至3.04E+38

既然ldf文件中保存了数据库中数据变化的整个过程,那么就可以把这个ldf文件备份起来,然后用这些备份的事务日志记录从头重建整个数据库,而且比至第一种方法,通过事务日志记录恢复的方法可以将数据库恢复到任一时刻。 

     (

分离性:分离性指并发的事务是相互隔离的。即一个事务内部的操作及正在操作的数据必须封锁起来,不被其它企图进行修改的事务看到。    分离性是DBMS针对并发事务间的冲突提供的安全保证。

 [,filengrowth=增长量]) [,.....n]

当执行 Set DateFormat DMY 之后,日期的格式为日 月有年 形式  

    {<日志文件参数> [,......n]}

因为mdf文件中保存了数据库中数据的实时状态,那么只要把mdf文件拷贝一份就实现了当前时刻的数据库备份。 

    )

Transact-sql是:除了增加变量、运算符、函数、流程控制和注释等外,其本质仍然是sql语言。

第七大类:货币数据类型

扩展数据库:

第二大类:精确数值数据

 

eg:

二进制数据包括 Binary、Varbinary 和 Image  

   (

五、数据库数据类型

2.如何绘制 E-R 图
矩形:实体
椭圆形:属性
菱形:关系

在 Microsoft SQL Server 中,货币数据的数据类型是Money 和 Smallmoney 。而Money数据类型要求 8 个存储字节,Smallmoney 数据类型要求 4 个存储字节。  

binary:固定长度的二进制码字符串字段,最短为1,最长为8000.
varbinary:与binary差异为数据尾部是00时,varbinary会将其去掉
image:为可变长度的二进制码字符串,最长2G.

日期的格式可以设定。设置日期格式的命令如下:  

  3.删除表

1,char,nchar,nvarchar,varchar有什么区别?  
2,text和ntext有什么区别以及和上面各种字符类有什么区别? 
3,关于带big和带small的类型,比如:smallint,int和bigint;以及smalldatetime,datetime和bigdatetime有什么区别?   

 

char和nchar是定长字符串类型,varchar和nvarchar是变长字符串类型。也就是说如果字段类型为char(10),那么即使你输入的字符为'abc',在数据库中也会保存成' abc',字段前面会被自动补上7个空格。而使用varchar(10)则前面不会补空格。  char 和nchar 当填入数据为空时,数据库自动使用全空格来代替,从而使not null形同虚设。所以如果字段不能为空,一定要在程序中提前判断。  char 和nchar因为长度固定,读写的速度要比 varchar和nvarchar快  。

 

1 设置数据库为自增长方式;

 

(3)Unicode 数据类型  

那么如何删除这个数据库呢,SQL Server将数据库的清单存放在master系统数据库的sysdatabases表中,只需要查看该表是否存在于该数据库中就可以,这样在创建数据库的时候也可以先判断,再创建

Use master 

select 列1,列2,... from 表名 where (条件) order by 列名

Exec sp_addtype ssn,'Varchar(11)','Not Null' 

timestamp:该数据类型在每一个表中是唯一的!当表中的一个记录更改时,该记录的timestamp字段会自动更新.
uniqueidentifier:用于识别数据库里面许多个表的唯一一个记录.

2)删除用户定义的数据类型  

第一大类:整数数据

例子:  

numeric:表示的数字可以达到38位,存储数据时所用的字节数目会随着使用权用位数的多少变化.
decimal:和numeric差不多

 

   drop constraint 约束名

  自创建快照那刻起,数据库快照在事务上与源数据库一致。 数据库快照始终与其源数据库位于同一服务器实例上。 当源数据库更新时,数据库快照也将更新。 因此,数据库快照存在的时间越长,就越有可能用完其可用磁盘空间。给定源数据库中可以存在多个快照。 在数据库所有者显式删除每个数据库快照之前,该快照将一直保留。数据库快照在数据页级运行。数据库快照使用一个或者多个“稀疏文件”来存储数据。

   语法:

日期和时间数据类型由有效的日期和时间组成。 例如,有效的日期和时间数据包括“4/01/98 12:15:00:00:00 PM”和“1:28:29:15:01AM 8/17/98”。 前一个数据类型是日期在前,时间在后。第二个个数据类型是时间在前,日期在后。 

--Student表中地址列默认约束的语句如下
alter table Student
drop constraint DF_Address

持久性:持久性意味着当系统或介质发生故障时,确保已提交事务的更新不能丢失。即一旦一个事务提交,DBMS保证它对数据库中数据的改变应该是永久性的,耐得住任何系统故障。持久性通过数据库备份和恢复来保证。 

  (3)引用完整性:插入或删除记录时,维护表之间定义的关系

用户定义的数据类型基于在 Microsoft SQL Server 中提供的数据类型。当几个表中必须存储同一种数据类型时,并且为保证这些列有相同的数据类型、长度和可空性时,可以使用用户定义的数据类型。 例如,可定义一种称为 postal_code 的数据类型,它基于 Char 数据类型。  

  (2)域完整性:表中特定数据的有效性,以保不会输入无效的数值

如前所述,数据文件mdf保存了数据的实时状态,事务日志文件ldf记录了数据库中数据变化的过程。此时,要对数据库进行备份,自然而然就有两个选择: 

第三大类:近似浮点数值数据

创建一个用户定义的数据类型 ssn,其基于的系统数据类型是变长为11 的字符,不允许空。  

char:长度是设定的,最短为1字节,最长为8000个字节.不足的长度会用空白补上.
varchar:长度也是设定的,最短为1字节,最长为8000个字节,尾部的空白会去掉.
text:长宽也是设定的,最长可以存放2G的数据.

三、数据库快照 

6.使用SQL语句创建和删除数据库

(1)二进制数据类型  

     )

在SQL Server 中,近似小数数据的数据类型是 Float 和 Real。例如,三分之一这个分数记作。 

   alter table 表名

在 SQL Server 中,Unicode 数据以 Nchar、Nvarchar 和 Ntext 数据类型存储。 使用这种字符类型存储的列可以存储多个字符集中的字符。当列的长度变化时,应该使用Nvarchar 字符类型, 这时最多可以存储 4000 个字符。当列的长度固定不变时,应该使用 Nchar 字符类型,同样, 这时最多可以存储4000 个字符。当使用 Ntext 数据类型时,该列可以存储多于 4000 个字符。  

第八大类:标记数据

至于前面那个n有什么不同,有n代表支持unicode字符,而没有n的则不支持,text和ntext的区别也是一样。  一般情况下在仅仅处理中文及英文,不涉及特殊符号时不需要使用Unicode。另一种需要用Unicode的情况是需要将字符串数据添加到SQL语句中执行,又不想里面的东西如单引号使SQL产生误解,可以将其用Unicode编码,这时每个字符都将占用两个字节,单引号也不会被SQL识别了。 

第六大类:Unincode字符串数据

c.确保在服务器断电、网络中断、服务器崩溃、客户端崩溃的情况下,故障恢复后数据仍然是完整的

 文件组的具体参数如下:

  数据库快照是数据库的只读静态视图。数据库快照提供源数据库在创建快照时的只读、静态视图,不包含未提交的事务。 

 

 

 1.回顾一下SQL Server 中有关数据完整性

例子:  

第五大类:字符串数据

Timestamp 用于表示SQL Server 活动的先后顺序,以二进投影的格式表示。Timestamp 数据与插入数据或者日期和时间没有关系。  

 数据文件的具体参数如下:

   DBMS:Database Management System数据库管理系统,是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库。

8.使用SQL语句创建和删除约束

Sql:结构化查询语言,structured Query Language。

  **:数据库中表的清单存放在数据库的系统表sysobjects中.

备份就是把数据库复制到转储设备的过程。其中,转储设备是指用于放置数据库拷贝的磁带或磁盘。

 

2) 使用为了实现可用性目标而维护的镜像数据库来卸载报表。 

 

实际上,Sql Server同时使用了这两种方法。

 filename=物理文件名

 

 语法:

 

2.删除数据库

1) 维护历史数据以生成报表。 

 [,size=大小]

b.保障数据操作的原子性、一致性、分离性、持久性。

...默认约束=>"DF_Address;

当创建用户定义的数据类型时,必须提供三个数:数据类型的名称、所基于的系统数据类型和数据类型的可空性。  

delete from 表名 where (条件)

 

    on [primary]

数据备份很简单,就是拷贝mdf文件。 

 

  SQL:Structed Query Language结构化查询语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。

use master -- 设置当前数据库为master,以便访问sysdatabases表
go
if exists(select * from sysdatabases where name='stuDB')
drop database stuDBgo

(6)货币数据表示正的或者负的货币数量

   create table 表名

当用户定义的数据类型不需要时,可删除。删除用户定义的数据类型的命令是 sp_droptype {'type'}。  

4.删除数据

Sql是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。Sql同时也是数据库脚本文件的扩展名。

第四大类:日期时间数据

 

create database stuDB 
on  primary  -- 默认就属于primary文件组,可省略
(
/*--数据文件的具体描述--*/
    name='stuDB_data',  -- 主数据文件的逻辑名称
    filename='D:stuDB_data.mdf', -- 主数据文件的物理名称
    size=5mb, --主数据文件的初始大小
    maxsize=100mb, -- 主数据文件增长的最大值
    filegrowth=15%--主数据文件的增长率
)
log on
(
/*--日志文件的具体描述,各参数含义同上--*/
    name='stuDB_log',
    filename='D:stuDB_log.ldf',
    size=2mb,
    filegrowth=1mb
)

Binary 数据类型既可以是固定长度的(Binary),也可以是变长度的。  Binary[(n)] 是 n 位固定的二进制数据。其中,n 的取值范围是从 1 到 8000。其存储窨的大小是 n + 4 个字节。  

上述语法表示修改某个表,并在其中添加某个约束.其中,约束名的命名规则推荐采用"约束类型_约束列的形式

Set DateFormat {format | @format _var| 

money:记录金额范围为:-92233720368577.5808至92233720368577.5807.需要8 个字节.
smallmoney:记录金额范围为:-214748.3648至214748.36487.需要4个字节.

在 Image 数据类型中存储的数据是以位字符串存储的,不是由 SQL Server 解释的,必须由应用程序来解释。 例如,应用程序可以使用BMP、TIEF、GIF 和 JPEG 格式把数据存储在 Image 数据类型中。  

     列2 数据类型 列的特征,

收缩数据库:

     列1 数据类型 列的特征,

备份和还原原理: 

 

 

 语法:

(8)用户定义的数据类型  

 update 表名 set 列1=值1,列2=值2,... where (条件)

3 为数据库增加新的次要数据文件或日志文件。(最优)

 

3) 使数据免受管理失误所带来的影响。 

     [log on]

  IDE:Integrated Development Environment 集成开发环境。 

 insert [into] 表名 (列1,列2,...) values(值1,值2,...)

 

第九大类:二进制码字符串数据

1)创建用户定义的数据类型  

了,语句如下:

 

 

例子:  

  2.添加约束

d.在服务器被完全物理摧毁的情况下,快速在新的服务器上使用远程设备上的备份将数据恢复到灾难发生之前的状态

语法:

1 设置数据库为自动收缩,设置AUTO_SHRINK数据库选项实现;

 ([name=逻辑文件名]

Eexc sp_addtype fax,'varchar(24)','Null' 

第四步:将数据库模型图转换成数据表

数据库快照

--添加主键约束(将StudentNo作为主键)
alter table Student
add constraint PK_StudentNo primary key (Student)

--添加唯一约束(身份证)
alter table Student
add constraint UQ_IdentityCard unique (IdentityCard)

--添加默认约束(不填地址,则默认为"地址不详")
alter table Student
add constraint DF_Address  default('地址不详') for Address

--添加检查约束
alter table Student
add constraint CK_BornDate ckeck (BornDate>='1980-01-01')

e.随时将数据恢复到任意时刻或任意一个操作之前。

 

关于带big和small的类型。small代表是简化的数据类型,支持的范围比较小,但占用的空间也小。big是超大的数据类型,占用的空间大,但支持的范围也大。比如smallint只占用一个字节,但是只能支持0-255的数字。datetime也是一样。  sql中没有bigdatetime类型。 

nchar:长度是设定的,最短为1字节,最长为4000个字节.不足的长度会用空白补上.储存一个字符需要2个字节.
nvarchar:长度是设定的,最短为1字节,最长为4000个字节.尾部的空白会去掉.储存一个字符需要2个字节.
ntext:长度是设定的,最短为1字节,最长为2G.尾部的空白会去掉,储存一个字符需要2个字节.

3 执行DBCC SHRINKFILE语句手动收缩数据库中文件的大小。

  (1)实体完整性:唯一确定表中一行记录

备份限制:

   1.回顾一下我们SQL Server 中的数据类型(转载自)

 

 7.使用SQL语句创建和删除表

例如,当执行 Set DateFormat YMD 之后,日期的格式为年 月 日 形式; 

第三步:将 E-R 图转换成数据库模型图

字符数据的类型包括 Char,Varchar 和 Text  。字符数据是由任何字母、符号和数字任意组合而成的数据。  

 

 

     ......

 

DML:data Manipulation Language。数据操作语言。一般开发人员俗称CRUD(create、retrieve、uadate、delete)功能,意指数据的新增、截取、修改、删除。(insert、select、uadate、delete)。

 

其中,format | @format_var 是日期的顺序。有效的参数包括 MDY、DMY、YMD、YDM、MYD 和 DYM。在默认情况下,日期格式为MDY。  

原子性:事务的原子性指的是,事务中包含的程序作为数据库的逻辑工作单位,它所做的对数据修改操作要么全部执行,要么完全不执行。这种特性称为原子性。
一致性:事务的一致性指的是在一个事务执行之前和执行之后数据库都必须处于一致性状态。这种特性称为事务的一致性。假如数据库的状态满足所有的完整性约束,就说该数据库是一致的。

Unicode 数据类型包括 Nchar,Nvarchar 和Ntext  

 

创建两个数据类型,即 telephone 和 fax  

DCL:DATA CONTROL LANGUAGE,管理特定数据库上的用户与角色的安全权限的。GRANT:用于授予用户或角色权限集合。DENY:用于显式地限制权限集合。REVOKE:用于撤销对象上的权限集合。

 数据库快照与快照备份、事务的快照隔离或快照复制无关。

使用 Smallint 数据类型时,存储数据的范围从 -32 768 到 32 767(每一个值要求2个字节存储空间)。 

Use master 

使用Tinyint 数据类型时,存储数据的范围是从0 到255(每一个值要求1个字节存储空间)。  

隐式或显式引用脱机数据的任何备份操作都会失败。

在 Microsoft SQL Server中,日期和时间数据类型包括Datetime 和 Smalldatetime 两种类型时, 所存储的日期范围是从 1753 年 1 月 1 日开始,到9999 年12 月 31 日结束(每一个值要求 8 个存储字节)。 使用 Smalldatetime 数据类型时, 所存储的日期范围是 1900年 1 月 1日 开始,到 2079 年 12 月 31 日结束(每一个值要求 4 个存储字节)。  

数据备份: 

sp_addtype {type},[,system_data_bype][,'null_type'] 

(4)日期和时间数据类型  

创建用户定义的数据类型可以使用 Transact-SQL 语句。系统存储过程 sp_addtype 可以来创建用户定义的数据类型。其语法形式如下:  

2 增加数据库中数据文件和日志文件的大小,也就是修改MAXSIZE属性;

Sql是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统可以使用相同的SQL语言作为数据输入与管理的接口。它以记录集合作为操作对象,所有SQL语句接受集合作为输入,返回集作为输出,这种集合特性允许一条sql语句的输出作为另外一条sql语句的输入,所以sql语句可以嵌套。

特殊数据类型包括前面没有提过的数据类型。特殊的数据类型有3种,即Timestamp、Bit 和 Uniqueidentifier。  

 

  

本文由金沙棋牌发布于金沙棋牌app手机下载,转载请注明出处:数据库设计,数据库笔记

关键词: