修改表结构(同Oracle)
- 重命名:
ALTER TABLE test RENAME TO table_1;
- 添加字段:
ALTER TABLE table_1 ADD id int(3);
ALTER TABLE table_1 ADD info varchar(30);
- 修改字段名称:
ALTER TABLE table_2 change info info2 varchar(30);
- 修改字段类型:
ALTER TABLE table_1 modify info varchar(200);
- 删除字段:
ALTER TABLE table_1 DROP id;
- 添加约束:
ALTER TABLE table_1 ADD CONSTRAINT
索引
- 创建索引:
ALTER TABLE 表名字 ADD INDEX 索引名 (列名);
CREATE INDEX 索引名 ON 表名字 (列名);
** 注意:在mysql中外键会自动创建索引 **
- 查看表的索引
SHOW INDEX FROM table_name;
-
*
视图
- 创建视图
CREATE OR REPLACE VIEW vw_test[(col1,col2,...)] AS SELECT * FROM table_1;
导入数据
LOAD DATA INFILE '/tmp/SQL6/in.txt' INTO TABLE employee;
导出数据
SELECT * INTO OUTFILE '/tmp/out.txt' FROM employee;
注意:此时的数据(字段)之间的分隔符是空格或水平制表符,如果导入的数据中字段之间的分割符号是逗号,则要在导入的时候特别指出,其格式如下所示
LOAD DATA [LOW_PRIORITY] [LOCAL] INFILE 'file_name.txt' [REPLACE | IGNORE]
INTO TABLE tbl_name
[FIELDS
[TERMINATED BY ' ']
[OPTIONALLY] ENCLOSED BY '']
[ESCAPED BY '\']]
[LINES TERMINATED BY ' ']
[IGNORE number LINES]
[(col_name,...)]
LOAD DATA INFILE 语句从一个文本文件中以很高的速度读入一个表中。如果指定 LOCAL 关键词,从客户主机读文件。如果 LOCAL 没指定,文件必须位于服务器上。(LOCAL 在 MySQL3.22.6 或以后版本中可用。)
数据库备份
(处理表中的数据之外还有表结构信息,此为数据库备份与导出的不同点之所在)
- 备份整个数据库(此时在Linux终端中,不在mysql中,但是mysql服务器必须是开启状态)
mysqldump -u root 数据库名>备份文件名;
- 备份整个表
mysqldump -u root 数据库名 表名称>备份文件名;
- 代码实例
mysqldump -u root mysql_shiyan > db_bak.sql
数据库恢复(此时位于mysql中)
- 方法一
source /tmp/db_bak.sql;(此时位于mysql中)
- 方法二
进入mysql中:
mysql -u root
create database test;
exit
此时位于终端:
mysql -u root test < db_bak.sql
即可将db_bak.sql中的数据恢复到新建的空数据库test中