mysql中的数据表操作
2016-02-22 17:27
543 查看
1 数据表的创建
详细情况可以参考创建表CREATE TABLE语法关于constraint的使用可以参见mysql constraint
语法规范: CREATE [TEMPORARY] TABLE [IF NOT EXISTS] <tbl_name> ( col_name type [NOT NULL | NULL] [DEFAULT default_value] [AUTO_INCREMENT] [UNIQUE [KEY] | [PRIMARY] KEY] [COMMENT 'string'], ... ) [table_options] [select_statement]; 实际上使用的时候: TEMPORARY一般不需要使用,这个关键字用于创建临时表 if not exists建议使用 括号中为实际字段的定义: type为数据类型 NOT NULL | NULL:指定该列是否可以为空,如不指定则默认值为NULL DEFAULT:用于指定默认值,如果不指定则mysql自动分配。自动分配的默认值 1. 默认为NULL 3. 例外的情形:auto_increment-->下一个值; 表中第一个timestamp类型的列,为当前日期时间的timestamp; AUTO_INCREMENT: 从1开始, 必须被索引,一个表中只能有一个自增列 UNIQUE KEY: index的同义词 PRIMARY KEY: 隐式指定 NOT NULL, UNIQUE, 唯一。 table options通常用于指定engine和[DEFAULT] CHARACTER SET以及COLLATE 例: a. 创建普通表 create table if not exists mytable ( id INT(11), name VARCHAR(30) )ENGINE=MyISAM character set=utf-8; b. 设定主键 i) 直接在列类型后面添加 create table if not exists mytable ( id INT(11) PRIMARY KEY, name VARCHAR(30) ); ii) 单独指定,该方法也可以用于创建多列联合主键 [CONSTRAINT <主键名>] PRIMARY KEY(列名1 [ ,列名2,…]) create table if not exists mytable ( id INT(11), name VARCHAR(30), PRIMARY KEY(id) ); c. 外键 [CONSTRAINT <外键名>] FOREIGN KEY(列名1 [ ,列名2,…]) REFERENCES <主表名>(主键列1 [ ,主键列2,…])
2 数据表的结构
a desc|describe直接查看表中的字段信息 desc mytable; b show create查看表的创建信息 show create table mytable;
3 修改表名
语法规范: ALTER TABLE <旧表名> RENAME [TO] <新表名>; 例: alter table mytable rename to new_name;
4 修改字段名
ALTER TABLE <表名> CHANGE <旧字段名> <新字段名> <新数据类型>; 例: alter table mytable change id myid int(11);
5 修改字段信息
ALTER TABLE <表名> MODIFY <字段1> <数据类型> [FIRST|AFTER <字段2>]; a 修改字段的数据类型 alter table mytable modify id int(10); b 修改字段的相对位置 alter table mytable modify id int(10) after name;
6 添加字段
ALTER TABLE <表名> ADD <新字段名> <数据类型> [约束条件] [FIRST | AFTER 已存在字段名]; 这个方法也可以用来添加表的完整性约束。
7 删除字段
ALTER TABLE <表名> DROP <字段名>; 这个方法也可以用来删除PK, FK, Unique等约束 ALTER TABLE <表名> DROP PRIMARY KEY|FOREIGN KEY|INDEX <字段名>;
8 修改存储引擎
ALTER TABLE <表名> ENGINE=<更改后的存储引擎名>;
9 删除表
独立表可以直接删除: DROP TABLE [IF EXISTS]表1, 表2, . . . 表n; 对于有外键关联的表,需要删除表中或者主表中的外键字段,然后删除该表。
10 显示表
show tables;
11 表的完整性约束
a alter table add 添加 alter table [table_name] add constraint [constraint_name] [unique| primary key|foreign key] ([column_names]) b alter table drop删除
相关文章推荐
- 读取nagios数据库至MySQL
- MYSQL使用mysqldump导出某个表的部分数据
- MySQL字符集操作
- MySQL存储过程详解
- mysql root密码修改
- Mysql事物锁等待超时 Lock wait timeout exceeded; try restarting transaction
- Mysql事物锁等待超时 Lock wait timeout exceeded; try restarting transaction
- Mysql事物锁等待超时 Lock wait timeout exceeded; try restarting transaction
- MySQL主从复制、半同步复制和主主复制
- 重新设置mysql密码
- 配置hive元数据存储在mysql中
- MySQL无法打开binlog服务的解决办法
- MySQL的字符编码体系(二)——传输数据编码
- mysql 安装 原始密码修改
- mysql分表和表分区详解
- MySQL的存储引擎InnoDB间隙锁
- Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
- MySQL优化经验
- mysql innodb 崩溃不能启动
- mysql修改root密码