[数据库基础]——编码标准之结构
时间:2022-04-29
本文章向大家介绍[数据库基础]——编码标准之结构,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
数据库是由若干表构成,表是由数据行构成,数据行由若干列组成。由于数据库这样的结构,这就要求我们在构成数据库表时,需要注意一些问题。现在提出一些注意的问题。
1. 主键
每一个表必须有一个主键列。大多数情况,存在一个命名为ID的列作为主键列
直接创建
1: CREATE TABLE Products
2: {
3: [ID] int NOT NULL PRIMARY KEY,
4: [Name] varchar(255) NOT NULL
5: }
添加主键约束
1: CREATE TABLE Products
2: {
3: [ID] int NOT NULL,
4: [Name] varchar(255) NOT NULL
5: }
6: ALTER TABLE Products
7: ADD CONSTRAINT pk_ProductsID PRIMARY KEY ([ID])
还存在复合主键的情况,将多个列作为复合主键
直接创建
1 CREATE TABLE Products
2 {
3 [Name] varchar(255) NOT NULL,
4 [CreateTime] datetime NOT NULL,
5 [Address] varchar(255) NOT NULL
6 CONSTRAINT pk_Products PRIMARY KEY ([Name], [CreateTime])
7 }
添加主键约束
1 CREATE TABLE Products
2 {
3 [Name] varchar(255) NOT NULL,
4 [CreateTime] datetime NOT NULL,
5 [Address] varchar(255) NOT NULL
6 }
7
8 ALTER TABLE Products
9 ADD CONSTRAINT pk_Products PRIMARY KEY ([Name], [CreateTime])
2. 第三范式
不要为了使用第三范式,而损失了数据库性能。有时,非规范化的数据库设计可能会比规范化的数据库设计性能更好。
第三范式(3NF):如果关系模式R(U,F)中的所有非主属性对任何候选关键字都不存在传递信赖,则称关系R是属于第三范式的
3. TEXT、NTEXT、IMAGE类型
不要使用TEXT类型,而使用VARCHAR设置最大长度来代替。
1: [Name] varchar(MAX) NOT NULL
注:在 Microsoft SQL Server 的未来版本中将删除 ntext、text 和 image 数据类型。 避免在新开发中使用这些数据类型,需考虑修改当前已使用这些数据类型的应用程序改用 nvarchar(max)、varchar(max) 和 varbinary(max)。
4. VARCHAR类型
在VARCHAR类型列中,不要使用NULL作为默认值,最好使用一个空字符串代替。
1: [Name] varchar(255) DEFAULT ''
5. 默认值
数据列最好有默认值,最好不要使用NULL作为任何一个列的默认值。
1: [Name] varchar(255) DEFAULT '我没有名字'
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 问题 1433: [蓝桥杯][2013年第四届真题]危险系数
- C# dev GridControl绑定数据不能显示
- Codeforces Round #621 (Div. 1 + Div. 2)(无比自闭的一夜)
- 牛客小白月赛22 A~~J
- P1914 小书童——密码
- sql server 2008 把远程的数据库的数据转移到本地数据数据库里
- 蓝桥杯 试题 基础练习 阶乘计算
- Java Lamada
- 试题 基础练习 高精度加法
- C# devExpress GridControl 行中行 子行 多级行
- 蓝桥杯 试题 基础练习 Huffuman树
- 蓝桥杯 试题 基础练习 2n皇后问题(包含n皇后问题讲解)
- 蓝桥杯 试题 基础练习 报时助手
- 蓝桥杯 试题 基础练习 回形取数
- 了解RefreshScope这篇短文就够了