MySQL -- 库和表的操作

MySQL -- 库和表的操作

文章目录


一、库的操作

注意:

  • MySQL语句的关键词是不区分大小写的!
  • MySQL语句需要以 ; 结尾;

1.创建数据库

语法:

IF NOT EXITS:如果数据库不存在再创建,存在了就不创建了,可省略;

CHARACTER SET:指定数据库采用的字符集;

COLLATE:指定数据库字符集的校验规则;

sql 复制代码
create databases [if not exits]数据库名;


MySQL创建一个数据库就是在/var/lib/mysql路径下创建了一个目录:

数据库名称如果和系统中的某些关键字重合,创建就会失败,需要加上反引号修饰:

  • 建议创建库和表的时候,名称都加上反引号;

补充:

  • MySQL语句中没有清屏的命令,可以通过system clear 命令使用Linux中的清屏命令;

2.查看数据库

sql 复制代码
show databases;

显示创建语句:

sql 复制代码
show create databases 数据库名;
  • 能够显示出来创建数据库时的语句细节,这时系统帮我们优化过的结果;
  • 后面的 /!40100 default.../不是注释,表示当前MySQL版本大于4.01时,就执行这个选项;

3.删除数据库

sql 复制代码
drop database 数据库名称;


若删除了数据库,里面的表和数据都会一并被删除!

4.字符集和校验规则

创建数据库的时候,后面有选项可以指定字符集和校验规则;
查看系统默认字符集和校验规则:

sql 复制代码
show variables like 'character_set_database';
show variables like 'collation_database';


查看数据库支持的字符集和校验规则:

sql 复制代码
show charset; #查看字符集
show collation; #查看校验规则


  • 如果创建数据库时没有指定字符集和校验规则 ,系统会以默认值为基准创建数据库;
  • 默认字符集和校验规则可以在配置文件中修改;
  • 字符集是指数据存储的时候,按照什么格式存储;
    校验规则是指在用户要取数据的时候,使用什么样的规则来校验数据库中的数据;
  • 字符集和校验规则是匹配的,一个字符集可以对应多个校验规则;

在创建数据库时指定字符集和校验规则:

打印出配置文件:

5.校验规则对数据库的影响

  • 创建一个数据库,校验规则使用utf8_general_ci [不区分大小写]

    向数据库中写数据:

    查看数据:

    在表中查询数据:

    可以看出这个校验规则是不区分大小写的;

  • 创建一个数据库,校验规则使用utf8_bin [区分大小写]

    向数据库中写数据:

    在表中查询数据:

    可以看出这个校验规则是区分大小写的;

6.修改数据库

修改数据库主要是修改数据库的字符集,校验规则;

7.备份和恢复

备份:

Linux的bash命令行,启动mysqldump服务

bash 复制代码
mysqldump -P 3306 -u root -p -B 数据据名 > 数据库备份存储的文件路径
  • 查看备份完成的文件:

    数据库备份就是将历史上所有的sql语句全部备份下来,恢复的时候,相当于重新创建一个相同的数据库;

  • 如果备份的不是整个数据库,而是其中的一张表:

bash 复制代码
mysqldump -u root -p 数据据名 表名1 表名2 > 数据库备份存储的文件路径
  • 同时备份多个数据库
bash 复制代码
mysqldump -u root -p -B 数据据名1 数据据名2 > 数据库备份存储的文件路径
  • 如果备份数据库是,没有带上-B参数 ,在恢复数据库的时候,需要先创建空数据库 ,然后使用数据库,再使用source来还原;
    这是因为**-B参数的意义是备份时会连着create database语句一起备份;**

恢复:

mysql客户端:

sql 复制代码
source 备份文件所在的路径;

8.查看连接情况

sql 复制代码
show processlist;

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

二、表的操作

1.创建表

  • field表示列名;
  • datatype表示列的类型;
  • character set字符集,如果没有指定字符集,则以所在数据库的字符集为准;
  • collate校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准;
  • comment:后面的是备注;
  • 查看数据库中的表:
  • 查看创建表的语句:
  • 不同引擎的表,文件结构不同:

2.查看表结构

查看表中元素的属性:

sql 复制代码
desc 表名;


查看表的数据:

sql 复制代码
select * from 表名;

3.修改表


增加列:

sql 复制代码
alter table 表名 add 增加的列名 列的数据类型 comment '备注' after 在原来的哪一列后面增加;
  • 注:这里的NULL和空字符串是不同的,空串是有数据,但是数据是空字符串,而NULL是没有数据;

调整列属性:

sql 复制代码
alter table 表名 modify 需调整的列名 调整的目标类型;
  • 注:这里列的属性的修改是直接覆盖的,会覆盖掉之前的备注等信息,创建表的语句也会修改,因此修改的时候,最好将修改之前的其他列信息都带上;

删除列:

sql 复制代码
alter table 表名 drop 列名;

注:

  • 删除列后,列中的数据也会删除;
  • 不能删除所有的列,删到最后一列就无法删除了;

修改列名:

sql 复制代码
alter table 表名 change 原列名 目标列名 数据类型 comment '备注';

修改表名:

sql 复制代码
alter table 原表名 rename 目标表名;

4.删除表

sql 复制代码
deop table [if exists] 要删除的表名;![在这里插入图片描述](https://img-blog.csdnimg.cn/e2198126d85843988945af579b8c1ce9.png)
相关推荐
2302_8097983227 分钟前
【JavaWeb】MySQL
数据库·mysql
drowingcoder34 分钟前
MySQL相关
数据库
Musennn1 小时前
MySQL刷题相关简单语法集合
数据库·mysql
Think Spatial 空间思维2 小时前
【HTTPS基础概念与原理】TLS握手过程详解
数据库·网络协议·https
逝水如流年轻往返染尘2 小时前
MySQL表的增删查改
mysql
laowangpython3 小时前
MySQL基础面试通关秘籍(附高频考点解析)
数据库·mysql·其他·面试
mooyuan天天3 小时前
SQL注入报错“Illegal mix of collations for operation ‘UNION‘”解决办法
数据库·web安全·sql注入·dvwa靶场·sql报错
运维-大白同学3 小时前
go-数据库基本操作
开发语言·数据库·golang
R-sz3 小时前
通过从数据库加载MinIO配置并初始化MinioClient,spring boot之Minio上传
数据库·oracle
洛阳泰山4 小时前
Windows系统部署MongoDB数据库图文教程
数据库·windows·mongodb