优化MySchool数据库(二)
优化School数据库(TSQL建库建表建约束)
使用T_sql代码建库、建表、建约束:
建库:
Create database HotelManagerSystem
on
(
---- 数据文件---
)
log on
(
---- 日志文件
)
【当有多日志、多数据文件时,以逗号分隔,连续定义就可以了】
Create database 数据库名
on
(),(),()
log on
(),()
数据库文件的主要参数:
name 、filename、size、maxsize 、filegrouwth
注意:
如果数据库在正常运行过程中,如何“动态添加”数据文件呢?
ALTER DATABASE 数据库名
ADD FILE
( NAME = 文件名,
FILENAME = ‘c:\temp\....’,
SIZE = 10MB,
FILEGROWTH = 10MB
)
ALTER DATABASE 数据库名
1、REMOVE FILE 文件名;
2、MODIFY FILE(Name = 文件名, FileGrowth = 50MB)
如何判断“数据库是否依据存在”?
方式一:
Exists(select * from sysdatabases where name = '数据库名')
方式二:
db_id('数据库名') is not null
-------------------------------------------------
if (db_id('Mydatabase') is not null)
drop database Mydatabase
create database Mydatabase
on
(......)
log on
(.......)
go
如何创建“表”:
1、必须打开自己的数据库(use 数据库名 go)
2、判断数据表是否存在,并删除
-- if exist(select * from sysobjects where name = '表名')
-- if object_id('表名') is not null
3、语法
Create Table 表名
(
列名 列类型 是否为空 ,
name varchar(20) not null ,
)
go
Sqlserver中的”维护数据完整性“分类:
---- 所谓数据完整性:就是数据库中的数据,不丢失、不混淆
数据完整性分类:
1、实体完整性:
---- 确保每条记录都是唯一的,不会搞混淆
主键约束、唯一约束、自增长标识
2、域完整性:
---- 确保每条记录的每一个部分,都有有效的,没有错误数据
列的数据类型、默认约束、非空约束、check约束
3、引用完整性:
----- 确保表与表之间,具有有效的关联(表间关系)
主外键约束
4、自定义完整性:
----- 确保表中的记录,符合“逻辑业务”的要求
存储过程、触发器、规则
常用约束的设置:
---- 主键、外键、默认、检查、唯一
---- 语法(先表后约束)
Alter Table 表名
Add constraint 约束名 约束类型 约束的内容
|
约束名 |
约束类型 |
约束内容 |
|
|
primary key |
pk_列名 |
PRIMARY KEY |
primary key(列名)主键约束 |
|
unique key |
uq_列名 |
UNIQUE |
unique(列名)唯一约束 |
|
Default for |
df_列名 |
DEFAULT ... FOR... |
Default(值) for (列)默认约束 |
|
Check |
ck_列名 |
CHECK |
check(判断条件) |
|
foreign key references |
fk_列名 |
FOREIGN KEY ... REFERENCES |
FOREIGN KEY (本表的列) REFERENCES 外表(外表的主键列)外键约束 |
ALTER TABLE stuInfo
ADD CONSTRAINT PK_stuNo PRIMARY KEY (stuNo) ,
CONSTRAINT UQ_stuID UNIQUE (stuID) ,
CONSTRAINT DF_stuAddress DEFAULT ('地址不详') FOR stuAddress ,
CONSTRAINT CK_stuAge CHECK(stuAge BETWEEN 15 AND 40) ,
CONSTRAINT FK_stuNo FOREIGN KEY(stuNo) REFERENCES stuMark(stuNo)
GO
ALTER TABLE Subject WITH NOCHECK
ADD CONSTRAINT CK_ClassHour CHECK (ClassHour>=0)
(WITH NOCHECK 加了这个强制添加,不检查原来的数据)
小贴士:
exists() ---- 当括号中的“查询字句”有返回结果,则exists =true
。。。。。。。。。。。无。。。。。。。。。。false
char\varchar 类型的区别:当数据填充时,长度是否永远固定。char=固定
带n的与不带n的char类型:只填充【字母或数字】的使用不带n的,
需要存入汉字或其他特殊符号的,就用带n的
---- 带n的字符类型,长度为2字节;不带n的字符类型,长度为1字节
优化MySchool数据库(二)的更多相关文章
- 优化MySchool数据库设计之【巅峰对决】
优化MySchool数据库设计 之独孤九剑 船舶停靠在港湾是很安全的,但这不是造船的目的 By:北大青鸟五道口原玉明老师 1.学习方法: 01.找一本好书 初始阶段不适合,可以放到第二个阶段,看到知识 ...
- 优化MySchool数据库(一)
<优化MyShcool数据库>:能够的独立的分析|设计|创建|运营|你的独立的数据库系统 设计--->实现--->TSQL--->查询优化---->性能优化技术-- ...
- 优化MySchool数据库设计总结
数据库的设计 一:什么是数据库设计? 数据库设计就是将数据库中的数据实体以及这些数据实体之间的关系,进行规范和结构化的过程. 二:为什么要实施数据库设计? 1:良好的数据库设计可以有效的解决数据冗 ...
- 优化MySchool数据库(存储过程)
什么是“存储过程”: ---- 数据库中,用于存储“业务逻辑”的技术!(T-SQL代码当做数据一样保存到数据可) 语法 : [if exists(select * from sysobjects wh ...
- accp7.0优化MySchool数据库设计内测笔试题总结
1) 在SQL Server 中,为数据库表建立索引能够(C ). 索引:是SQL SERVER编排数据的内部方法,是检索表中数据的直接通道 建立索引的作用:大大提高了数据库的检索速度,改善数据库性能 ...
- 优化MySchool数据库设计
第一章 数据库的设计 1.E-R图中: 矩形:实体 椭圆:属性 菱形:关系 直线:连接实体,属性和关系 2.映射基数 一对多 多对一 多对多 3.范式: 第一范式:确保每列的原子性 第二范式:确保表中 ...
- 优化MySchool数据库(事务、视图、索引)
事务.视图.索引: 事务:当生活逻辑中的“一个步骤”,需要使用多条SQL去完成时,必须使用事务来确保其“完整性“. 视图:简化数据库结构,方便你编写SQL语句(简化SQL语句的编写) 索引:提高“数据 ...
- 优化MySchool数据库(四)
关于“无法附件数据库”过程的遇到的问题: 1.数据文件本身,具有访问权限的限制 ---- 选中 数据库文件所在的文件夹---->右键菜单(属性)----> 安全 --->User用户 ...
- 优化MySchool数据库(三)
使用T_SQL 编写业务逻辑: 如何定义及使用“变量”: ---- 让电脑帮我记住一个名字(王二) C#: string name ; [定义一个变量] name = "王二&qu ...
随机推荐
- HT for Web嵌入QtWebKit的客户端解决方案
HTML5已经足够强大,但很多应用还是需要独立桌面客户端的解决方案,毕竟能操作本地文件等功能还是很多工具类软件短期内无法完全采用云方案替代. 最近Adobe发布的http://brackets.io也 ...
- 音频文件解析(二):WAV格式文件波形绘制
解析WAV头部信息后,接下来就可以根据相关参数和DATA块数据绘制波形. 1.重新编码(转换为8bits,单声道数据) Public Function GetFormatData(ByVal pDat ...
- C# 解析html —— 将html转为XHTML,然后利用Xml解析
呵呵,由于正则不熟,所以另谋出路——利用XML去解析html. 要想将抓取到的数据(直接抓取到的是byte[]) 转为XML文档(即XMLDocument对象),有两个要点: 一.判断编码(http ...
- Windows Phone中扩展WebBrowser使其支持绑定html内容
在WP开发中,有时候会用到WebBrowser控件来展示一些html内容,这个控件有很多局限性,比如不支持绑定内容,这样的MVVM模式中就无法进行内容的绑定.为了实现这个目的,需要扩展一下,具体代码如 ...
- 参考例子,学习Func<T, TResult>委托
这些天,开发ASP.NET MVC,其间有查找资料,发现一个全新的Func<T, TResult> 委托.让我们在开发时,节省与简化很多. 在开发过程中,我们需要把一个泛型List< ...
- 在Linux(Ubuntu)下搭建ASP.NET Core环境并运行 继续跨平台
最新教程:http://www.cnblogs.com/linezero/p/aspnetcoreubuntu.html 无需安装mono,在Linux(Ubuntu)下搭建ASP.NET Core环 ...
- C# POST Https请求的一些坑
写在前面: 从上次,跟合作方的站点对接开始就产生了这个问题,当时用C#进行POST提交,总是会出现问题,找了很久发现对方的站点居然是TLS 1.2 的. 正文: 然而,在.NET FrameWork ...
- Cursors in MySQL Stored Procedures
https://www.sitepoint.com/cursors-mysql-stored-procedures/ After my previous article on Stored Proce ...
- Mockups Mockplus 网页原型设计
http://www.cocoachina.com/cms/wap.php?action=article&id=15319
- Oracle数据库,用户的创建及表的创建
安装完成之后,打开浏览器,输入https://127.0.0.1:1158/em 链接至登录数据库界面 用户名:sys 口令为安装时设置的密码(一定牢记) 链接身份为:SYSDBA(以系统管理 ...