导航号,我的单页导航
文章目录

前言

本章主要学习对表的创建,插入,删除等操作命名。最近有空,看了《MySQL基础教程-西泽梦路》,简单的做一下笔记。

记录于此,方便自己回忆。

MySQL中对大小写没有区分,我这里习惯性用小些。

正文

我这以Window版的phpstudy软件验证。

需要进入这个目录,才可以使用mysql命令

D:\phpstudy_pro\Extensions\MySQL5.7.26\bin

进入正文

复制表

复制表可以快速的创新一样记录或结构的表。

一般有下面三种方式:

  1. 复制表的列结构和记录

  2. 仅复制表的列结构

  3. 仅复制记录

复制表的列结构和记录
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"

参考文章

  1. 《MySQL基础教程-西泽梦路》

© 版权声明
导航号,我的单页导航

暂无评论

暂无评论...