查看系统所支持引擎类型
SHOW ENGINES \G;
MYSQL 5.1.71 支持5种 存储引擎: InnoDB,MyISAM 默认引擎,MEMORY,CSV,MRG_MYISAM
Support 表示引擎是否可以使用:yes表示可以,NO 表示不能,default 表示当前默认的存储引擎。
从5.5以后默认InnoDB 为默认存储引擎。
数据表的基本操作
创建数据表的语法格式
创建表之前先要指定数据库,因为表属于数据库
使用USE 数据库名称 指定要创建表的数据库。
如果不指定数据库 会出现
ERROR 1046 (3D000): No database selected
创建数据表语句为 CREATE TABLE ,语法格式如下:
CREATE TABLE <表名>
(
字段1 数据类型,
字段2 数据类型,
[约束条件]
)
默认情况下mysql表名 是区分大小写的,而且不能使用SQL 中的关键字入DROP ,ALTER,INSERT 等。
创建多个列用逗号隔开。
使用SHOW TABLES; 查看数据库中的数据表;
主键约束
主键,又称主码,是表中一列或者多列的组合。主键约束(Primary Key Constraint)要求主键列数据的唯一,并且不允许为空。
主键能够唯一的标识表中的一条记录,相当于人的身份证 跟每个人是一一对应的。分为单字段主键和多字段联合主键。
单字段主键格式
字段名 数据类型 PRIMARY KEY
利用DESC 表名 查看表的详细结构信息。
DESCRIBE / DESC
这个缩写跟降序那个是相同的,头一次发现还有重复的命令。
也可以在最后指定主键
CREATE TABLE FF
(
ID INT(11),
NAME VARCHAR(25),
PRIAMRY KEY (ID)
);
对应的多字段联合主键
CREATE TABLE FF
(
ID INT(11),
NAME VARCHAR(25),
SALARY FLOAT,
PRIMARY KEY(ID,NAME)
);
外键约束
外键用来在两个表之间建立连接,可以是一列或者多列,一个表可以有多个外键。
外键可以为空,但如果不为空,对应的必定是主表的主键的一个值。 主键所在的表为主表 ,外键所在的表为从表。
语法格式:
CONSTRAINT <外键名> FOREIGN KEY 字段1,字段2.。。。REFERENCES <主表名> 主键列1,主键列2.。。。
外键名在一个表中不能重负
CREATE TABLE F1
(
ID INT(11) PRIMARY KEY,
DEPTID INT(11),
CONSTRAINT F1WJ FOREIGN KEY(DEPTID) REFERENCES FF(ID)
);
(
ID INT(11) PRIMARY KEY,
DEPTID INT(11),
CONSTRAINT F1WJ FOREIGN KEY(DEPTID) REFERENCES FF(ID)
);
DESC 查看一下表结构
非空约束 NOT NULL;
唯一性约束 UNIQUE 要求该列唯一的。可以为空值,但只能有一个空值。可以确保该列中没有重复的信息。
UNIQUE 与PRIMARY KEY的 区别,一个表可以有多个UNIQUE 但是只能有一个PRIMARY KEY (不是一列PRIMARY KEY ,因为可以多列组合)
而且PRIMARY KEY 不能有空值,而UNIQUE 可以。
默认约束 DEFAULT
指定默认值 如性别的 男 与 女。
CREATE TABLE F2
(
ID INT(11) PRIMARY KEY,
DEPTID INT(11),
GENDER CHAR(2) DEFAULT '男'
);
(
ID INT(11) PRIMARY KEY,
DEPTID INT(11),
GENDER CHAR(2) DEFAULT '男'
);
属性自动增加
AUTO_INCREMENT
查看创建表的详细信息
SHOW CREATE TABLE 表名 \G
\G 后格式好看 不混乱。
修改表名
ALTER TABLE F2 RENAME F3;
修改字段名
ALTER TABLE 表名 CHANGE 旧字段 新字段 数据类型
数据类型不能为空
修改字段数据类型
ALTER TABLE 表名 MODIFY 字段 【FIRST|AFTER】
增加列
ALTER TABLE 表名 ADD 字段 [FIRST| AFTER name ]
删除列
ALTER TABLE 表名 DROP 字段
更改表的存储引擎
ALTER TABLE 表名 ENGINE=新引擎名字;
改完用SHOW CREATE TABLE 表 查看。