0


MySQL:库和表的操作

一. 查看数据库

  1. show databases;//查看数据库
  2. show create database 数据库名;//显示创建语句

示例:

说明:

MySQL 建议我们关键字使用大写,但是不是必须的。

数据库名字的反引号``,是为了防止使用的数据库名刚好是关键字。

/*!40100 default.... */ 这个不是注释,表示当前mysql版本大于4.01版本,就执行这句话。

二. 创建数据库

  1. CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [,
  2. create_specification] ...]
  3. create_specification:
  4. [DEFAULT] CHARACTER SET charset_name
  5. [DEFAULT] COLLATE collation_name

说明:

  • 大写的表示关键字
  • [] 是可选项
  • CHARACTER SET: 指定数据库采用的字符集
  • COLLATE: 指定数据库字符集的校验规则

案例:创建名为sys的数据库:

  1. create database sys;

创建数据库对于Linux而言,就相当于创建了一个目录,在我的ubuntu主机下,这个数据库存储在了/var/lib/mysql目录下:

三. 字符集和校验规则

在MySQL中,数据库有两种字符编码集合:

字符集:字符存储时,采用的编码方式。

校验集:字符读取时,采用的编码方式。

查看系统支持的字符集:

  1. show charset;

查看系统所支持的校验集:

  1. show collation;

注意:字符集和编码集的名字示平台而定会有差异。

创建数据库,指定字符集,下面两种都可以:

  1. create database [if not exists] 数据库名 charset=xxx;
  2. create database [if not exists] 数据库名 character set xxx;

创建数据库,指定校验集:

  1. create database [if not exists] 数据库名 collate xxx;

示例:

该指令创建了数据库db_1,并指定字符集为utf8,校验集为utf8mb3_general_ci。


如果创建的时候不指定字符集和校验集,此时会使用系统默认的。

查看系统默认字符集:

  1. show variables like 'character_set_database';

查看系统默认校验集:

  1. show variables like 'collation_database';


四. 修改和删除数据库

4.1 数据库修改

  1. ALTER DATABASE db_name
  2. [alter_spacification [,alter_spacification]...]
  3. alter_spacification:
  4. [DEFAULT] CHARACTER SET charset_name
  5. [DEFAULT] COLLATE collation_name

对数据库的修改主要指的是修改数据库的字符集、校验规则。

例子:将 mytest 数据库字符集改成 gbk。

  1. mysql> alter database mytest charset=gbk;
  2. Query OK, 1 row affected (0.00 sec)
  3. mysql> show create database mytest;
  4. +----------+----------------------------------------------------------------+
  5. | Database | Create Database |
  6. +----------+----------------------------------------------------------------+
  7. | mytest | CREATE DATABASE `mytest` /*!40100 DEFAULT CHARACTER SET gbk */ |
  8. +----------+----------------------------------------------------------------+

**但是请记住:尽量在库创建之前想好要干嘛,不要在后面有很多数据的时候去修改,会很麻烦。 **

4.2 数据库删除

  1. DROP DATABASE [IF EXISTS] db_ name;

执行删除之后的结果:

数据库内部看不到对应的数据库。

对应的数据库文件夹被删除,级联删除,里面的数据表全部被删。

五. 备份与恢复

5.1 备份

语法(该指令要在bash中执行,而不是mysql处):

  1. # mysqldump -P3306 -u root -p 密码 -B 数据库名 > 数据库备份存储的文件路径

需要注意的是:备份的文件路径需要提前创建

例如:

  1. mysqldump -p -B test_db > ./test/test_db.sql

将test_db这个表备份到路径下。

可以发现:**.sql文件并不是简单的拷贝一份数据库,而是保留了整个数据库的SQL语句。**

5.2 还原

  1. mysql> source D:/mysql-5.7.22/mytest.sql;

5.3 注意事项

如果备份的不是整个数据库,而是其中的一张表,怎么做?

  1. # mysqldump -u root -p 数据库名 表名1 表名2 > D:/mytest.sql

同时备份多个数据库:

  1. # mysqldump -u root -p -B 数据库名1 数据库名2 ... > 数据库存放路径

如果备份一个数据库时,没有带上-B参数, 在恢复数据库时,需要先创建空数据库,然后使用数据库,再使用source来还原。

5.4 查看连接情况

  1. show processlist;

可以告诉我们当前有哪些用户连接到我们的MySQL,如果查出某个用户不是你正常登陆的,很有可能你的数据库被人入侵了。以后大家发现自己数据库比较慢时,可以用这个指令来查看数据库连接情况。

六. 创建表

语法:

  1. CREATE TABLE table_name (
  2. field1 datatype,
  3. field2 datatype,
  4. field3 datatype
  5. ) character set 字符集 collate 校验规则 engine 存储引擎;

说明:

  • field 表示列名
  • datatype 表示列的类型
  • character set 字符集,如果没有指定字符集,则以所在数据库的字符集为准
  • collate 校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准

例子:

  1. create table users (
  2. id int,
  3. name varchar(20),
  4. password char(32),
  5. birthday date
  6. ) character set utf8 engine MyISAM;

不同的存储引擎,创建表的文件不一样。

users 表存储引擎是 MyISAM ,在数据目中有三个不同的文件,分别是:

  • users.frm:表结构
  • users.MYD:表数据
  • users.MYI:表索引

而如果使用InnoDB引擎,则只会生成.frm和.ibd后缀的文件。

七. 查看表结构

  1. desc 表名;

八. 修改表

  1. ALTER TABLE tablename ADD (column datatype [DEFAULT expr][,column
  2. datatype]...);
  3. ALTER TABLE tablename MODIfy (column datatype [DEFAULT expr][,column
  4. datatype]...);
  5. ALTER TABLE tablename DROP (column);

**这里也要提醒:在创建表之前就把表的基本框架想好,不要后续表中有很多数据的时候去修改,是很麻烦的。 **

修改name,将其长度改为60

删除passwd列

注意:删除字段一定要小心,删除字段及其对应的列数据都没了。

修改表名为employee(下面的to可以省掉)

将name列修改为xingming

九. 删除表

语法;

  1. DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...

例子:

  1. drop table t1;

总结:

好了,到这里今天的知识就讲完了,大家有错误一点要在评论指出,我怕我一人搁这瞎bb,没人告诉我错误就寄了。

祝大家越来越好,不用关注我(疯狂暗示)

7cadd57a9ab1245ed3fe5e181cf2ea00.png

标签: 数据库 mysql bash

本文转载自: https://blog.csdn.net/weixin_75172965/article/details/143910798
版权归原作者 小灵蛇 所有, 如有侵权,请联系我们删除。

“MySQL:库和表的操作”的评论:

还没有评论