当前位置: 首页 > news >正文

3.MySQL库和表的操作

目录

  • 数据库的操作
    • 创建数据库
    • 数据库删除
    • 字符集和校验规则
    • 指定编码创建数据库
    • 校验规则对数据库的影响
    • 数据库的改
    • 数据库的查
  • 数据库的备份与恢复
  • 表的增删查改
    • 创建表:
    • 查看表
    • 修改表
    • 删除表:

数据库的操作

创建数据库

语法:

CREATE DATABASE [IF NOT EXISTS] db_name [create_specification[, create_specification] ...]
create_specification:[DEFAULT] CHARACTER SETcharSet_name[DEFAULT] COLLATE collation_name

说明:

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

示例:
在这里插入图片描述
在对应的目录下查看
在这里插入图片描述
发现多了一个目录文件。所以创建数据库:create database db_name;本质就是在/var/lib/mysql创建一个目录

数据库删除

语法:

DROP DATABASE [IF EXISTS] db_name;

注意:删数据库的时候,在linux下整个目录就被删了,数据库里的数据也会被删除,在生产环境中的时候,特别不建议直接对数据库直接删除,如果想删除,最好先备份再删除

示例:
在这里插入图片描述
在对应的目录下查看
在这里插入图片描述
发现没有helloworld这个目录了。所以删除数据库:drop database db_name;本质就是在/var/lib/mysql删除一个目录

字符集和校验规则

只要是数据就一定要有编码格式,数据库与数据打交道,要求编码必须是统一的,程序员写数据的时候设定编码格式,数据库处理数据并存数据的时候就要采用该编码来处理,所以取数据的时候我必须以同样的编码来取。好比在现实生活中,一个人往本子上写汉语,它采用的是汉语的编码格式,另一个人想要读懂写的文字,就必须用汉语的方式来读取。

创建数据库的时候有两个编码集:
1。数据库编码集 – 数据库未来存储数据时采用什么编码
2。数据库校验集 – 把数据存到数据库里了,未来对数据的增删查改,在读的时候要校验,使用的校验规则必须是一样的,校验规则影响数据排序等方面
查看编码集和校验集
在这里插入图片描述
show charset;查看数据库所支持的字符集
show collation; 查看数据库支持的字符集校验规则

指定编码创建数据库

当我们创建数据库没有指定字符集和校验规则时,系统使用默认字符集:utf8(utf8mb3可以认为就是utf8),校验规则时:utf8_general_ci。这和我们之前配置的数据库有关
在这里插入图片描述

创建d2数据库时,指明了编码规则,又指明了校验规则
在这里插入图片描述

校验规则对数据库的影响

创建一个数据库,校验规则使用utf8_general_ci[不区分大小写]
在这里插入图片描述
不区分大小写的查询结果:
在这里插入图片描述
不区分大小写的排序结果
在这里插入图片描述

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

在这里插入图片描述
区分大小写的查询结果:
在这里插入图片描述
区分大小写的排序结果:
在这里插入图片描述

数据库的改

修改数据库
语法:

ALTER DATABASE db_name [alter_spacification [,alter_spacification]...]
alter_spacification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name

说明:
对数据库的修改主要指的是修改数据库的字符集,校验规则。

示例
在这里插入图片描述

数据库的查

查看数据库

show databases;

显示创建语句

show create database db_name;

示例
在这里插入图片描述
说明:
MySQL建议我们关键字使用大写,但是不是必须的
数据库名字名字的反引号,是为了防止使用的数据库名刚好是关键字
/!40100 default…*/这个不是注释,表示当前mysql版本大于4.01 版本,就执行这句话

数据库的备份与恢复

在linux下是如何备份的呢?就是cp命令copy一份,数据库的数据当然也可以这样做,但这样会存在一个问题,版本可能会不匹配导致一系列的问题。

mysql提供了备份的解决方案

语法:
备份数据库

linux命令# mysqldump -P3306 -uroot -p -B 指定的数据库 > 指定备份的路径

示例:备份test1数据库
在这里插入图片描述

备份表
linux命令# mysqldump -P3306 -uroot -p -B 指定的数据库 表名1 表名2... > 指定备份的路径

示例:
在这里插入图片描述

还原:

sql命令> source 指定的路径(/home/test1.sql);

示例:还原数据库
在这里插入图片描述
还原表
在这里插入图片描述

表的增删查改

创建表:

语法:

CREATE TAB LE table_name(field1 datatype,field2 datatype,field3 datatype
)character set 字符集 collate 校验规则 engine 存储引擎;

说明:

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

示例:
在这里插入图片描述

查看表

在这里插入图片描述
查看表的详细信息:
在这里插入图片描述
查看创建表的时候的信息:
在这里插入图片描述

修改表

在项目实际开发中,经常修改某个表的结构,比如字段名字,大小,类型,表单字符集类型,表的存储引擎等等。我们还有需求,添加字段,删除字段等等。这是我们就需要修改表(并不是对表里的内容进行操作)。

语法:

ALTER TABLE tablename ADD (column datatype [DEFAULT expr][,column datatype]...);ALTER TABLE tablename MODIFY (column datatype [DEFAULT expr][,column datatype]...);ALTER TABLE tablename DROP (column);

示例:
在这里插入图片描述
下面来尝试对表的修改
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
修改表名:
在这里插入图片描述

删除表:

语法:

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

示例:

在这里插入图片描述


http://www.mrgr.cn/news/31073.html

相关文章:

  • 一些线上常用排查问题的命令
  • 前端vue-ref与document.querySelector的对比
  • 一招搞定Nginx安装
  • Simapps新版上线:诚邀广大用户体验,参与有奖调查问卷
  • 计算机操作系统-进程控制面经
  • 影视会员充值api?接口对接需要做哪些准备工作?
  • Java设计模式——工厂方法模式(完整详解,附有代码+案例)
  • 从Huggingface下载数据集时添加正则表达式
  • 【环境踩坑系列】CentOS7 安装 MySQl 5.7.25
  • Python打包神器pyinstaller和tkinter图形化GUI界面
  • 使用ultralytics库微调 YOLO World 保持 Zero-Shot 能力
  • 101. 对称二叉树
  • 若依笔记(六):前后端token鉴权体系
  • AV1 Bitstream Decoding Process Specification--[7]: 语法结构语义-3
  • Shader Graph Create Node---Channel
  • 树莓派4B+UBUNTU20.04+静态ip+ssh配置
  • Node-red 某一时间范围内满足条件的数据只返回一次
  • Spring的IOC和AOP
  • sheng的学习笔记-AI-强化学习(Reinforcement Learning, RL)
  • arduino IDE TFT_eSPI库函数的相关函数