优化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 ...
随机推荐
- 表单input项使用label,同时引用Bootstrap库,导致input点击效果区增大
产品姐姐想法多,点击input项才能聚焦进行操作,点击外部不能有反应 好了...直入正题 为了让标签更加语义化,在表单项中,我们往往会使用label进行包裹 <label for="l ...
- 拓扑排序 --- hdu 4948 : Kingdom
Kingdom Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Sub ...
- Socket开发框架之数据加密及完整性检查
在前面两篇介绍了Socket框架的设计思路以及数据传输方面的内容,整个框架的设计指导原则就是易于使用及安全性较好,可以用来从客户端到服务端的数据安全传输,那么实现这个目标就需要设计好消息的传输和数据加 ...
- css3很美的蟠桃动画
查看效果:http://hovertree.com/texiao/css3/26/ 源码下载:http://hovertree.com/h/bjaf/ndhxgfkn.htm 效果图如下: 代码如下: ...
- Firemonkey Bitmap 设定像素颜色 Pixel
VCL 和 Firemonkey 的 Bitmap 处理像素的方式不相同,下例为将图片内不是「白色」的像素全部改成「黑色」: procedure TForm1.Button1Click(Sender: ...
- java Servlet(续)
一.web.xml配置 由于需用户需要通过URL访问架设好的Servlet,所以我们必须将servlet映射到一个URL地址上, 比如上面的配置文件我们就可以通过:http://localhost:8 ...
- Java--关于计算表达式中赋值的细节问题
public class Test { public static void main(String[] args) { int t = 0; int p = 0; int q = 0; int ta ...
- coreseek (sphinx)+ Mysql + Thinkphp搭建中文搜索引擎详解
一, 前言 1,研究coreseek的动机 我有一个自己的笔记博客,经常在上面做一些技术文章分析.在查询一些文章的时候,以前只能将要查询的内容去mysql中用like模糊匹配.在文章多了的情 ...
- java.lang.IllegalStateException: Recursive entry to executePendingTransactions
[解决办法]: 将getFragmentManager改为getChildFragmentManager即可
- redis主从 以及认证配置
以前用redis用的很多,各种数据类型用的飞起,算是用得很溜了.不过那都是封装好的方法,自己直接调用.以前的公司比较规范,开发只是开发,很少去做跟运维相关的事情. 换了一份工作,不过这边项目刚开始起步 ...