您的位置:首页 > 数据库 > MySQL

【Mysql】Headfirst系列第四章:表的关系及ALTER/CHANGE/RENAME TO

2017-09-13 09:37 295 查看
RDMBS Relational Database 
Management  System
只关心一个词语‘关系’

设计表的时候,考虑彼此列之间如何产生关系,如何一起描述某项事物。

 

原子性 atom 数据已经被分割至最小块,不能或者不应该再被分割
几个问题:
你的表在描述什么事物?
以何种方式使用表取得描述的事物?
列是否包含原子性数据,可让查询既简短又直逼要害?

主键
可独一无二地识别出每条记录

主键不可以为null
插入新纪录时必须指定主键值
主键必须简洁
主键不可以被修改
一个例子
CREATE TABLE my_contacts

{

contact_id INT NOTNULL,//主键非空

last_name varchar(30) default NULL,

first_name varchar(30) default NULL,

email varchar(50) default NULL,

gender char(1) default NULL,

birthday date default NULL,

profession varchar(50) default NULL,

location varchar(50) default NULL,

status varchar(50) default NULL,

interests varchar(100) default NULL,

seeking varchar(100) default NULL,

PRIMARY KEY (contact_id)

 

}//添加主键的语法:PRIMARY KEY
括号内为主键列的列名

 

SHOW 命令
看列名 SHOW colomns FROM table_name;
看警告信息 SHOW WARNING

主键ID自动递增
CREATE TABLE my_contacts

{

contact_id INT NOT NULL AUTO_INCREMENT,//主键非空

last_name varchar(30) default NULL,

first_name varchar(30) default NULL,

email varchar(50) default NULL,

gender char(1) default NULL,

birthday date default NULL,

profession varchar(50) default NULL,

location varchar(50) default NULL,

status varchar(50) default NULL,

interests varchar(100) default NULL,

seeking varchar(100) default NULL,

PRIMARY KEY (contact_id)

 

}//添加主键的语法:PRIMARY KEY
括号内为主键列的列名

ALTER指令 对表进行修改 但不舍弃数据

关键字: ALTER TABLE

ALTER TABLE my_contacts
ADD COLUMN eyes_color;

利用关键字 AFTER 可以指明新加入的列放在哪个列的后面

相关的关键字还有 BEFORE/SECOND/FIFTH

如果加入多个列,ADD COLUMNS

如果加入主键 ADD PRIMARY KEY(column_name)

 

表的改名换姓
RENAME  关键字

ALTER TABLE table_name

RENAME TO table_name1;

 

Change 指令
Change column 不仅可以改名字还可以同时修改列的类型

配合ALTER指令

ALTER TABLE mycontacts

CHANGE COLUMN eyes_color hair_color varchar(32);

 

BUT 如果你要把数据改为其他类型,可能会出现数据截断的情况

 

如果只想改变列的数据类型而不改变名称的话 改变位置
用modify这个关键字

ALTER TABLE table_name

MODIFY COLOUMN column_name type;

 

MODIFY COLUMN color AFTER make;

 

创建表之后还能通过关键字改变列的顺序吗?不可以
只能在添加新列时指定特定位置。

 

过多的列会使表变得臃肿,查询序列也会变低
通过drop卸掉用不着的列

ALTER TABLE project_list

DROP COLUMN start-end;

 

 

9/6 今日的练习

alter table hooptie

add column car_id int not null
AUTO_INCREMENT first,

add primary key (car_id);

 

修改列名,用change column old_name new_name new_type ;

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐