来源:自学PHP网 时间:2015-04-16 10:51 作者: 阅读:次
[导读] 一、查看数据表结构1) 查看表基本结构语句 DESCRIBE语法:DESCRIBE 表名;示例:mysql DESCRIBE product;+--------------+--------------+------+-----+---------+----------------+| Field...
一、查看数据表结构 1) 查看表基本结构语句 DESCRIBE 语法:DESCRIBE 表名; 示例: mysql> DESCRIBE product; +--------------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------------+--------------+------+-----+---------+----------------+ | product_id | int(11) | NO | PRI | NULL | auto_increment | | product_name | varchar(50) | NO | | NULL | | | description | varchar(200) | YES | | NULL | | +--------------+--------------+------+-----+---------+----------------+ 语法:DESC 表名; 示例: mysql> DESC product; +--------------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------------+--------------+------+-----+---------+----------------+ | product_id | int(11) | NO | PRI | NULL | auto_increment | | product_name | varchar(50) | NO | | NULL | | | description | varchar(200) | YES | | NULL | | +--------------+--------------+------+-----+---------+----------------+说明: NULL: 表示该列是否可以存储NULL值;Key: 表示该列是否已编制索引。PRI表示是表主键的一部分;UNI表示该列是UNIQUE索引一部分;MUL表示该列中某个给定值允许出现多次;Default: 表示该列是否有默认值,如果有是多少;Extra: 表示可以获取的与给定列有关的附加信息。例如AUTO_INCREMENT等; 2) 查看表详细结构语句 SHOW CREATE TABLE 功能说明: 用来显示创建表时的语句 语法: SHOW CREATE TABLE <表名\G>;提示: 该语句可以用来查看创建表的详细语句;还可以用来查看存储引擎和字符编码;加上参数'\G'后,可使显示结果更加直观,易于查看; 示例: mysql> show create table bm\G; *************************** 1. row *************************** Table: bm Create Table: CREATE TABLE `bm` ( `id` int(11) NOT NULL, `name` varchar(22) DEFAULT NULL, `location` varchar(20) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `STH` (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 1 row in set (0.02 sec)二、修改数据表 1) 修改表名 语法 ALTER TABLE <旧表名> RENAME [TO] <新表名>; 示例 ALTER TABLE bm RENAME department; 2) 修改字段的数据类型 语法 ALTER TABLE <表名> MODIFY <字段名> <数据类型>; 示例 ALTER TABLE department MODIFY id VARCHAR(11); 3) 修改字段名 语法 ALTER TABLE <表名> CHANGE <旧字段名><新字段名><新数据类型>; 示例 ALTER TABLE employees CHANGE location loc VARCHAR(350);//类型可以和原来保持一样,不用修改 4) 添加字段 语法 ALTER TABLE <表名> ADD <新字段名> <数据类型> [约束条件] [FIRST|AFTER已存在字段名];//默认添加到最后一列后面 示例 ALTER TABLE employees ADD manager_id INT(10); ALTER TABLE employees ADD age INT(11) NOT NULL;//非空约束 ALTER TABLE employees ADD sal FLOAT FIRST;//在表的第一列添加 ALTER TABLE employees ADD hire_date DATE AFTER manager_id;//在指定列后添加 5) 删除字段 语法 ALTER TABLE <表名> DROP <字段名>;示例 ALTER TABLE employees DROP manager_id; ALTER TABLE employees DROP hire_date; 6) 修改字段的排列位置 语法 ALTER TABLE <表名> MODIFY <字段1><数据类型> FIRST|AFTER <字段2>;示例 ALTER TABLE employees MODIFY name VARCHAR(22) FIRST;//把name移动到第一列 ALTER TABLE department MODIFY location VARCHAR(350) AFTER department_id;//把location列移到department_id列之后 7) 更改表的存储引擎 MySQL支持的主要存储引擎
语法 ALTER TABLE <表名> ENGINE=<更改后的存储引擎名>;示例 ALTER TABLE department ENGINE=MyISAM; 8) 删除表的外键约束 语法 ALTER TABLE <表名> DROP FOREIGN KEY <外键约束名>;示例 ALTER TABLE employees DROP FOREIGN KEY fk_emp_dept; 三、删除数据表 1) 删除没有被关联的表 语法 DROP TABLE [IF EXISTS] 表1,表2,...表n; 示例 DROP TABLE IF EXISTS employees; 2) 删除被其他表关联的主表 说明:先要删除外键 示例mysql> create database rm_tab; Query OK, 1 row affected (0.00 sec) mysql> use rm_tab; Database changed mysql> create table department -> ( -> id int(11) primary key, -> name varchar(22), -> location varchar(200) -> ); Query OK, 0 rows affected (0.07 sec) mysql> create table employee -> ( -> id int(11) primary key, -> name varchar(25), -> department_id int(11), -> salary float, -> constraint fk_emp_dept foreign key(department_id) references department(id) -> ); Query OK, 0 rows affected (0.10 sec) mysql> drop table department; ERROR 1217 (23000): Cannot delete or update a parent row: a foreign key constraint fails mysql> alter table employee drop foreign key fk_emp_dept; Query OK, 0 rows affected (0.22 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> drop table department; Query OK, 0 rows affected (0.04 sec) mysql> show tables; +------------------+ | Tables_in_rm_tab | +------------------+ | employee | +------------------+ 1 row in set (0.00 sec) 如果您们在尝试的过程中遇到什么问题或者我的代码有错误的地方,请给予指正,非常感谢! 联系方式:david.louis.tian@outlook.com 版权@:转载请标明出处! |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com