表格规范化~
不要把表格设计得太复杂,简短的查询比复杂的快。
=========================================
SQL得名于关系数据库管理系统,RDBMS。
建立表的指导步骤:
①挑出事物,选择你希望描述的某样事物。
②列出一份关于那样事物的信息列表,这些信息都是使用表时的必要信息。
③使用信息列表,把关于那样事物的综合信息拆分成小块信息,以便用于组织表。
一个日期可以细分为 年月日,一个地址还可以细化到门牌号,但是我们不需要这么细致的数据。
=================================================================
原子性(atom)数据,指的是已经被分割到最小块的数据。
比如对于快递员,一个带有街道名称和门牌号的列数据就是原子性的。
所以设计表的时候,想想列是不是具有原子性数据,让查询既简短又直击要害。
①具有原子性数据的列中不会有多个类型相同的值。
②具有原子性数据的表中不会有多个存贮同类数据的列。
==================================================================
现在我们要学习 主键。
主键用于独一无二地识别出每条记录。
主键不能为 NULL。
主键不应该被修改,而且必须简洁。
现在我们要重新建一个表,就要看看原来的代码,
SHOW CREATE TABLE my_contacts;
====================================================================
主键不能是NULL,所以一定要设置为 NOT NULL。
首先创建表,设置主键:
CREATE TABLE my_contacts
(
contact_id INT NOT NULL,
last_name varchar(30) default NULL,
first_name varchar(20) default NULL,
email varchar(50) default NULL,
......
seeking varchar(100) default NULL,
PRIMARY KEY (contact_id)
)
创建表,id自动递增:
CREATE TABLE my_contacts
(
contact_id INT NOT NULL AUTO_INCREMENT,
last_name varchar(30) default NULL,
first_name varchar(20) default NULL,
email varchar(50) default NULL,
......
seeking varchar(100) default NULL,
PRIMARY KEY (contact_id)
)
================================================================
SHOW 的部分用法:
①查看表的CREATE 代码:
SHOW CREATE TABLE my_contacts;
②显示表中的某一列:
SHOW COLUMNS FROM tablename;
③查看警告:
SHOW WARNINGS;
④查看任何编了索引的列以及索引类型:
SHOW INDEX FROM tablenamel;
============================================================
现在要为现有的表添加主键:
ALTER TABLE my_contacts
ADD COLUMN contact_id INT NOT NULL AUTO_INCREMENT FIRST,
ADD PRIMARY KEY(contact_id);