1.登录数据库
打开命令行,输入以下命令,输入root密码后即登录MySQL数据库。
mysql -h localhost -u root -p
2.创建数据库
CREATE DATABASE <database_name>;
3.查看数据库信息
SHOW CREATE DATABASE <database_name> \G;
4.查看当前系统中所有的数据库
SHOW DATABASES;
5.删除数据库
DROP DATABASE <database_name>;
6.使用数据库
USE <database_name>;
7.创建表
CREATE TABLE <table_name>(
id INT(11),
name VARCHAR(30),
score INT(11)
);
8.查看表
SHOW TABLES;
9.使用主键约束
主键是用来连接其他表用的,主键约束要求主键列数据唯一,并且不为空。
9.1 主键为单字段
//方法一:
CREATE TABLE <table_name>(
id INT(11) PRIMARY KEY,
name VARCHAR(30),
score INT(11)
);
//方法二
CREATE TABLE <table_name>(
id INT(11),
name VARCHAR(30),
score INT(11),
PRIMARY KEY (id)
);
9.2 主键为多个字段
CREATE TABLE <table_name>(
id INT(11),
name VARCHAR(30),
score INT(11),
PRIMARY KEY (id, name)
);
10.使用外键约束
外键是用来连接其他表用的,可以是一列或者多列。一个表可以有一个或多个外键。外键对应的是参照完整性,一个表的外键可以是空值,如果不是空值,那就必须是另外一个表中主键的某个值。
表A的外键和表B的主键联合起来就使得表A和表B建立了联系。其中,表A就是从表,表B就是主表。
CONSTRAINT <外键名> FOREIGN KEY <本表字段名> REFERENCES <主表名> <主键字段名>
CREATE TABLE <table_name>(
id INT(11) PRIMARY KEY,
name VARCHAR(30),
score INT(11),
st_id INT(11),
CONSTRAINT fk_tb1_tb2 FOREIGN KEY (st_id) REFERENCES 主表名(id)
);
fk_tb1_tb2是外键约束的名称,st_id是从表外键名,id是主表的主键名。
11.使用非空约束
CREATE TABLE <table_name>(
id INT(11),
name VARCHAR(30) NOT NULL,
score INT(11),
PRIMARY KEY (id, name)
);
12.使用唯一性约束
CREATE TABLE <table_name>(
id INT(11),
name VARCHAR(30) UNIQUE,
score INT(11),
PRIMARY KEY (id, name)
);
CREATE TABLE <table_name>(
id INT(11),
name VARCHAR(30),
score INT(11),
CONSTRAINT STH UNIQUE(name)
);
UNIQUE和PRIMARY KEY的区别:一个表中可以有多个字段设置为UNIQUE,但最多只能有一个字段设置为主键;UNIQUE字段可以为NULL,主键字段不能为NULL。
13.使用默认约束
指定默认值。
CREATE TABLE <table_name>(
id INT(11),
name VARCHAR(30),
score INT(11),
gender VARCHAR(1) DEFAULT "M"
CONSTRAINT STH UNIQUE(name)
);
14.表的字段值自动增加
AUTO_INCREMENT关键字可以使字段值自动增加。一个表中只能有一个字段设置成此属性,并且此字段必须是主键或者是主键的一部分,被约束的字段的数据类型是任意整数类型。
CREATE TABLE <table_name>(
id INT(11) PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(30),
score INT(11)
);
15.查看表的基本结构
DESCRIBE 表名;
DESC 表名;
SHOW CREATE TABLE 表名\G;
16.修改表名
ALTER TABLE 旧表名 RENAME 新表名;
17.修改数据表中字段的数据类型
ALTER TABLE 表名 MODIFY 字段名 新数据类型;
18.修改字段名
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 新数据类型;
19.在表中添加新字段
ALTER TABLE 表名 ADD 新字段名 新字段的数据类型;
ALTER TABLE 表名 ADD 新字段名 新字段的数据类型 NOT NULL;
ALTER TABLE 表名 ADD 新字段名 新字段的数据类型 FIRST;
ALTER TABLE 表名 ADD 新字段名 新字段的数据类型 AFTER 已存在的字段名;
20.删除字段
ALTER TABLE 表名 DROP 字段名;
21.修改字段在表中排列位置
使字段为表的第一个字段
ALTER TABLE 表名 MODIFY 字段名 字段类型 FIRST;
把字段放到指定字段之后
ALTER TABLE 表名 MODIFY 字段名 字段类型 AFTER 字段名;
22.更改表的存储引擎
ALTER TABLE 表名 ENGINE=更改后的存储引擎名;
23.删除表的外键约束
ALTER TABLE 表名 DROP FOREIGN KEY 外键约束名;
24.删除数据表
删除没有被关联的表:
DROP TABLE IF EXISTS 表1, 表2, ... 表n;
如果数据表之间存在外键关联的话,可以先删除从表,再删除主表;也可以先取消外键约束,再删除需要删除的表:
注意点1:
主键存在的意义是用于多个表之间进行连接操作,所以并不是每个表都必须有主键。
注意点2:
外键约束不能跨引擎使用。MySQL可以为每个表指定引擎,但是创建外键约束的两个表必须使用同一个引擎。