查看mysql的表结构:
mysql> describe mytable; 或用show columns from 表名;
修改字段属性
mysql> alter table tablename modify id int(10) unsigned auto_increment primary key not null
修改默认值
mysql> alter table tablename alter id default 0
给字段增加primary key
mysql> alter table tablename add primary key(id);
删除primary key
alter table tablename drop primary key; drop primary key on tablename;
修改table表数据引擎
mysql> alter table tableName ENGINE = MyISAM (InnoDB);
增加一新字段名:
mysql> alter table mytable add column single char(1); mysql> ALTER TABLE table ADD field INT(11) UNSIGNED NOT NULL
删除字段
mysql> alter table t2 drop column c;
附:
为了改变列a,从INTEGER改为TINYINT NOT NULL(名字一样),
并且改变列b,从CHAR(10)改为CHAR(20),同时重命名它,从b改为c:
ALTER TABLE t2 MODIFY a TINYINT NOT NULL, CHANGE b c CHAR(20);
增加一个新TIMESTAMP列,名为d:
ALTER TABLE t2 ADD d TIMESTAMP;
在列d上增加一个索引,并且使列a为主键:
ALTER TABLE t2 ADD INDEX (d), ADD PRIMARY KEY (a);
增加一个新的AUTO_INCREMENT整数列,命名为c:
ALTER TABLE t2 ADD c INT UNSIGNED NOT NULL AUTO_INCREMENT,ADD INDEX (c);
注意,我们索引了c,因为AUTO_INCREMENT柱必须被索引,
并且另外我们声明c为NOT NULL,因为索引了的列不能是NULL。
使用name列的头10个字符创建一个索引:
CREATE INDEX part_of_name ON customer (name(10));
三。数据的备份与恢复:
导出和导入数据:(命令在DOS的mysql/bin目录下执行)
导出表
mysqldump --opt school > school.sql
注释:将数据库school中的表全部备份到school.sql文件,school.sql是一个文本文件,
文件名任取,打开看看你会有新发现。
mysqldump --opt school teacher student > school.teacher.student.sql
注释:将数据库school中的teacher表和student表备份到school.teacher.student.sql文件,school.teacher.student.sql是一个文本文件,文件名任取,打开看看你会有新发现。
导入表
mysql mysql>create database school; mysql>use school; mysql>source school.sql;
(或将school.sql换为school.teacher.sql / school.teacher.student.sql)
导出数据库
mysqldump --databases db1 db2 > db1.db2.sql
注释:将数据库dbl和db2备份到db1.db2.sql文件,db1.db2.sql是一个文本文件,文件名
任取,打开看看你会有新发现。
(举个例子:
mysqldump -h host -u user -p pass --databases dbname > file.dump
就是把host上的以名字user,口令pass的数据库dbname导入到文件file.dump中。)
导入数据库
mysql < db1.db2.sql
复制数据库mysqldump --all-databases > all-databases.sql
注释:将所有数据库备份到all-databases.sql文件,all-databases.sql是一个文本文件,文件名任取。
导入数据库
mysql mysql>drop database a; mysql>
更多SQL内容来自木庄网络博客