目录
前言
记录于此,方便自己回忆。
MySQL中对大小写没有区分,我这里习惯性用小些。
正文
我这以Window版的phpstudy软件验证。
需要进入这个目录,才可以使用mysql命令
D:\phpstudy_pro\Extensions\MySQL5.7.26\bin
进入正文
复制表
复制表可以快速的创新一样记录或结构的表。
一般有下面三种方式:
-
复制表的列结构和记录
-
仅复制表的列结构
-
仅复制记录
复制表的列结构和记录
create table 新表名 select * from 旧表名;
新表名和旧表名的列和数据一样。
create table info5 select * from info;
仅复制表的列结构
create table 新表名 select * from 旧表名;
新表名列结构跟旧表名一样。
create table info6 like info;
通过select查询,info6是没有数据的。
通过desc查询,info6的列结构跟info一样。
仅复制记录
也就是只复制表中的数据。
insert into 新表名[已存在] select * from 旧表名[存在];
就是吧旧表名的数据插入到新表名。
新表名和旧表名的列格式一样!
insert into info6 select * from info3;
选择某一列进行复制
除了上面的,还可以选则表中某一列的记录进行复制。
ps:其实就是insert和select的组合命令
insert into 新表名(指定复制的列名) select 查询条件 from 旧表名;
举个例子,下面是指复制empid到name中。
empid和name数据类型是一样的,要不然会提示错误
insert into tb3(name) select empid from tb3;
如果设置了id为主键,但又不是自动增长,就会出现如下的错误提示。
mysql> insert into info6(page) select page from info6; ERROR 1364 (HY000): Field 'id' doesn't have a default value
因此,重新创建了info7
create table info7(id int auto_increment primary key, name varchar(10));
因为id是自动增长的,把info5中的数据name字段复制到info7中
insert into info7(name) select name from info5;
删除表
记录删除后大多无法复原,所以在执行DROP或DELETE命令的时候一定要慎重。
drop table 表名;
来个例子
drop table info6;
mysql> show tables; +----------------+ | Tables_in_book | +----------------+ | info | | info1 | | info2 | | info3 | | info4 | | info5 | | info7 | +----------------+
上面没有info6啦,删除后,无法恢复!
如果表不存在,会有如下提示
mysql> drop table info6; ERROR 1051 (42S02): Unknown table 'book.info6'
当目标表存在时将其删除
在目标表不存在的情况下执行DROP命令会发生错误,但如果加上了IF EXISTS,就能够抑制错误的发生。
drop table if exists 表名;
# 存在,就删除 drop table if exists info5; # 不存在,但不会报错 drop table if exists info6;
删除数据库
drop database 数据库名;
删除后,数据库就无法恢复。
删除所有记录
就是删除表中的所有数据,表的列结构还存在。
delete from 表名;
delete from info7;
查询后,没有数据了,但列结构存在。
mysql> select * from info7; Empty set (0.00 sec) mysql> desc info7; +-------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | name | varchar(10) | YES | | NULL | | +-------+-------------+------+-----+---------+----------------+ 2 rows in set (0.00 sec)
使用mysqladmin命令创建和删除数据库
My SQL里提供了一个名为mysqladmin的强大命令来创建数据库。我们可以执行mysqladmin命令创建数据库。这个命令不是My SQL监视器的命令,所以请直接从命令提示符或终端输入。
创建
mysqladmin -u root -prootroot create 数据库名
D:\phpstudy_pro\Extensions\MySQL5.7.26\bin是mysql的目录
D:\phpstudy_pro\Extensions\MySQL5.7.26\bin>mysqladmin -u root -prootroot create cccc mysqladmin: [Warning] Using a password on the command line interface can be insecure.
此时就创建了cccc数据库。
删除
mysqladmin -u root -prootroot drop 数据库名
效果
D:\phpstudy_pro\Extensions\MySQL5.7.26\bin>mysqladmin -u root -prootroot drop cccc mysqladmin: [Warning] Using a password on the command line interface can be insecure. Dropping the database is potentially a very bad thing to do. Any data stored in the database will be destroyed. Do you really want to drop the 'cccc' database [y/N] y Database "cccc" dropped
其他命令
mysql 数据库名 -u 用户名 -p密码 -e "mysql命令"
举个例子
# 数据库名 : book # 用户 : root # 密码 : rootroot # mysql命令 : select * from info mysql book -u root -prootroot -e "select * from info"
参考文章
-
《MySQL基础教程-西泽梦路》