优化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 ...
随机推荐
- QWebView在 Qt 5.x中编译出错:File not found: main.obj
错误现象 近日由于项目需要,想要学习一下QWebView的使用.于是简单的建立了一个Qt工程,并编写了如下代码: #include <QApplication> #include < ...
- 30天C#基础巩固------读写流(StreamWrite/StreamReader)
一:读写流的一些案例. --->关于StreamWrite 这里的一些常用的方法和我们之前的那个FileStream是一样的,参数很多都是一样的用法. Console.WriteLi ...
- 图论 --- spfa + 链式向前星 : 判断是否存在正权回路 poj 1860 : Currency Exchange
Currency Exchange Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 19881 Accepted: 711 ...
- jQuery使用经验建议
在开发过很多 jQuery 插件以后,我慢慢的摸索出了一套开发jQuery插件比较标准的结构和模式.这样我就可以复制并粘贴大部分的代码结构,只要专注最主要的逻辑代码就行了. 使用相同的设计模式和架构也 ...
- MurmurHash算法:高运算性能,低碰撞率的hash算法
MurmurHash算法:高运算性能,低碰撞率,由Austin Appleby创建于2008年,现已应用到Hadoop.libstdc++.nginx.libmemcached等开源系统.2011年A ...
- Oracle数据库,内置函数小结
1.聚合函数 count(字段) // 求非空行的数量 max(字段) // 获取最大值 sum(字段) //求和 avg(字段) // 平均值 min(字段) // 最小值 2.转换函数 to_da ...
- 使用HttpDownLoadHelper下载文件
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.IO ...
- OGNl和ValueStack的基础和深入分析
一.OGNL 1)什么是OGNL? 解析:OGNL是Object Graph Navigation Language(对象图导航语言)它是强大的表达式语言. 2)用途:通过简单一致的表达式语法来读取和 ...
- mybatis公用代码抽取到单独的mapper.xml文件
同任何的代码库一样,在mapper中,通常也会有一些公共的sql代码段会被很多业务mapper.xml引用到,比如最常用的可能是分页和数据权限过滤了,尤其是在oracle中的分页语法.为了减少骨架性代 ...
- 在Hyper-V上安装配置Windows负载均衡NLB
搭建过程 Hyper-V 是自Windows Server2008 以来提供的虚拟机管理软件,它操作简便,功能也不错,可以方便的在它里面安装各种操作系统,如图所示: 现在,想利用这几台虚拟服务器搭建一 ...