首页 > 数据库 > 数据库开发技术 > 《MySQL入门教程》第04篇 管理表
CREATE TABLE [IF NOT EXISTS] table_name(
column1 data_type column_constraint,
column2 data_type,
...,
table_constraints
) ENGINE=storage_engine;
CREATE TABLE users(
user_id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) UNIQUE NOT NULL,
password VARCHAR(50) NOT NULL,
email VARCHAR(256) NOT NULL,
status TINYINT NOT NULL,
created_on TIMESTAMP NOT NULL,
last_login TIMESTAMP,
CONSTRAINT uk_email UNIQUE (email)
);
mysql> DESC users;
+------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+----------------+
| user_id | int(11) | NO | PRI | NULL | auto_increment |
| username | varchar(50) | NO | UNI | NULL | |
| password | varchar(50) | NO | | NULL | |
| email | varchar(256) | NO | UNI | NULL | |
| status | tinyint(4) | NO | | NULL | |
| created_on | timestamp | NO | | NULL | |
| last_login | timestamp | YES | | NULL | |
+------------+--------------+------+-----+---------+----------------+
7 rows in set (0.00 sec)
CREATE TABLE roles(
role_id INT AUTO_INCREMENT PRIMARY KEY,
role_name VARCHAR(256) UNIQUE NOT NULL
);
CREATE TABLE user_role
(
user_id INT NOT NULL,
role_id INT NOT NULL,
grant_on TIMESTAMP NOT NULL,
PRIMARY KEY (user_id, role_id),
CONSTRAINT fk_user_role_userid FOREIGN KEY (user_id)
REFERENCES users(user_id),
CONSTRAINT fk_user_role_roleid FOREIGN KEY (role_id)
REFERENCES roles(role_id)
);
ALTER TABLE table_name ADD column_name data_type column_constraint
[ FIRST | AFTER other_column];
ALTER TABLE users ADD login_failed_times TINYINT NOT NULL DEFAULT 0;
ALTER TABLE table_name MODIFY column_name data_type column_constraint
[ FIRST | AFTER other_column];
ALTER TABLE users MODIFY email VARCHAR(512) NOT NULL;
ALTER TABLE table_name RENAME COLUMN old_name TO new_name;
ALTER TABLE users RENAME COLUMN login_failed_times TO login_failed_number;
ALTER TABLE table_name CHANGE COLUMN old_name new_name data_type column_constraint
[FIRST | AFTER column_name];
ALTER TABLE table_name DROP COLUMN column_name;
ALTER TABLE users DROP COLUMN login_failed_number;
mysql> alter table user_role drop column user_id;
ERROR 1828 (HY000): Cannot drop column 'user_id': needed in a foreign key constraint 'fk_user_role_userid'
ALTER TABLE table_name RENAME [TO|AS] new_name;
ALTER TABLE users RENAME TO accounts;
ALTER TABLE user_role RENAME AS account_role;
RENAME TABLE table_name TO new_name;
DROP TABLE [IF EXISTS] table_name [, table_name] ...;
mysql> drop table roles;
ERROR 3730 (HY000): Cannot drop table 'roles' referenced by a foreign key constraint 'fk_user_role_roleid' on table 'account_role'.
mysql> drop table roles, account_role;
Query OK, 0 rows affected (0.06 sec)
原文作者:SQL编程思想;如有侵权,请联系管理员删除。