优化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 ...
随机推荐
- GPUimage实时滤镜的实现
GPUIMAGE中GPUImageStillCamera可以调用系统相机,并实现实时滤镜,但是我没有找到相机全屏的方法,望知道的说一下 GPUImageStillCamera继承自GPUImageVi ...
- Spring MVC 原理介绍(执行流程)
Spring MVC工作流程图 图一 图二 Spring工作流程描述 1. 用户向服务器发送请求,请求被Spring 前端控制Servelt DispatcherServle ...
- rtf格式的一些说明,转载的
RTF是Rich TextFormat的缩写,意即多文本格式.这是一种类似DOC格式(Word文档)的文件,有很好的兼容性,使用Windows"附件"中的"写字板&quo ...
- Android学习笔记(九) 视图的应用布局效果
最近少了写博客,可能最近忙吧,工作上忙,因为工作原因也忙于学习,也没记录什么了,也没有按照之前的计划去学习了.现在就记录一下最近学到的. 要做Android应用,界面设计少不了,可惜之前一直在用Win ...
- asp.net中Ajax控件的用途(一)
1,UpdatePanel控件,用户更新部分内容,示例 放入一个Label和一个Button,单击按钮,label显示当前时间. 2,ScriptManagerProxy控件,每个页面只能有一个Scr ...
- ASP.NET MVC 网站开发总结(五)——Ajax异步提交表单之检查验证码
首先提出一个问题:在做网站开发的时候,用到了验证码来防止恶意提交表单,那么要如何实现当验证码错误时,只是刷新一下验证码,而其它填写的信息不改变? 先说一下为什么有这个需求:以提交注册信息页面为例,一般 ...
- Get,Post请求中文乱码问题有效解决方法
本文主要介绍如何有效解决web请求中的乱码问题,其实解决方法有很多种,不同的请求类型解决方法也不相同. 本文只介绍最方便的一种: 1.先修改jsp中的编码方式 2.针对Post方式提交的请求如果出现乱 ...
- java 用 jxl poi 进行excel 解析 *** 最爱那水货
/** * 解析excel文件 ,并把数据放入数组中 格式 xlsx xls * @param path 从ftp上下载到本地的文件的路径 * @return 数据数组集合 */ public Lis ...
- CentOS安装zip unzip命令
yum install zip unzip
- get传递中文产生乱码的解决方式汇总
1 最基本的乱码问题. 这个乱码问题是最简单的乱码问题.一般新会出现.就是页面编码不一致导致的乱码. <%@ page language="java" pageEncodin ...