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

掌握MySQL数据库操作:从创建到管理全攻略

1.库的操作

1.1库的查看

show databases;

这句语法形式是查看服务器已经存在的数据库

注意要加分号————;

1.databeses是复数形式

2.大小写都可以

前提(数据库已经创建或查看服务器自带的数据库)

也可以查看指定的数据库

show create database 数据库名称

下面是查看一个服务器中一个已有的库

1.2创建库

注意:创建库的库名称可以是关键字但是要用这个符号括起来``

创建库的完整语法形式

CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [create_option] ...create_option: [DEFAULT] {CHARACTER SET [=] charset_name| COLLATE [=] collation_name| ENCRYPTION [=] {'Y' | 'N'}}

创建库的时候指定字符集编码和排序规则

1.db_name:表示要创建数据库名称

2.{}大括号表示必选项

3.[]表示可选可不选项

4.|表示选择其中一项

5.•CHARACTER SET:指定数据库采⽤的字符集编码

6. COLLATE:指定数据库字符集的校验规则 •

7.ENCRYPTION:数据库是否加密,MySQL8.0.16中引⼊的新选项

1.2.1示例

示例1创建一个名称为test的数据库

示例2自定义一个数据库名,如果数据库不存在则创建

示例3重复上面的语句

warning :这是一个警告

示例4查看警告

show warnings;(注意这里的复数形式)

下面提示这个数据库已经创建了

数据库创建成功后会在数据库目录下生成一个相同名称的数据库目录,用于储存数据库的内容

1.3字符集编码和校验排序规则

1.3.1查看数据库支持的字符集编码

MySQL8.0支持的字符集编码是utf8mb4,MySQL支5.7持的字符集编码是latin1(区别在于前者能够支持中文)

1.3.2查看数据库支持的排序规则

u tf8mb4_0900_ai_ci 是MySQL8.0引⼊的新规则,在⽼版本中不能识别;

• ut f8mb4 编码是对 Unicode 字符集的⼀种实现,⽤1到4个字节表⽰⼀个字符,可以表⽰世界上 ⼏乎所有的字符,⽽且更节少空间

• 0900 是基于UCA9.0.0算法,UCA是UnicodeCollationAlgorithm的缩写

• ai是Accent-insensitive的缩写,表⽰⼝声不敏感

• ci是Case-insensitive的缩写表⽰⼤⼩写不敏感

• as是Accent-sensitive的缩写,表⽰⼝声敏感

• cs是Case-sensitive的缩写,表⽰⼤⼩写敏感

• bin表⽰⼆进制 在 学习完排序之后,可以通过⽰例观察不同排序规则对于⼤⼩写的影响

1.3.3查看默认字符集和排序规则

查看默认字符集

show variables like '%character%';

查看默认排序规则

show variables like '%collation%';

1.3修改数据库

修改数据库需改的是数据库的字符集和校验规则

语法形式

 ALTER {DATABASE | SCHEMA} [db_name]alter_option ...alter_option: {[DEFAULT] CHARACTER SET [=] charset_name| [DEFAULT] COLLATE [=] collation_name| [DEFAULT] ENCRYPTION [=] {'Y' | 'N'}| READ ONLY [=] {DEFAULT | 0 | 1}}

示例:将java中的数据库字符集改成gbk

1.4删除数据库

语法形式

DROP {DATABASE | SCHEMA} [IF EXISTS] db_name

注意数据库不能随便删除

删除数据库之后文件目录中的数据库文件也会随之删除

2.数据库的数据类型

2.1数据值类型

1.BIN(M) M代表的是二进制的长度,没有标明的是时候默认是1,64个二进制表示8个比特位

2.bool==tinyint(1);

3.INT就是我们常见的int;

4.BIGINT:用在编号字段

5.DECIMAL(M,D):一般表示金额

6.float和double表示小数的时候不是特别的精准,所以一般用decimal来表示小数

7.M中不记录小数点和负号(有效数字的个数),当D为0的时候,那么具体的值就不保存小数(表示的是一个整数)

8.如果省略D默认为0,如果省略M默认为10;

2.2字符串类型与二进制类型

1.varchar(size)是一个最常用的字符串文件(可以指定长度)指定的长度是字符的长度

2.之前设置的字符集编码utf8mb4,中一个字符最多占4个字节。65535/4=16353,根据字符的具体使用1-4个字节表示一个字符。

3.text和medlumtext是文本数据类型,blob是byte[]数组也就是说这存储的的是一个文件的二进制形式

4.文本文件:人类能看懂的文件

二进制文件:一堆乱码,只有机器才能看懂。

2.3日期类型

表示时间值的日期和时间类型为DATETIME、DATE、TIMESTAMP、TIME和YEAR。

每个时间类型有一个有效值范围和一个"零"值,当指定不合法的MySQL不能表示的值时使用"零"值。

TIMESTAMP类型有专有的自动更新特性,将在后面描述。

3表的操作

3.0查看数据库中的所有的表

show tables;

对表操作的前提,首先要选好数据库

3.1查看表的结构

语法形式

desc 表名;

1.Field表中的列名

2.Type表中的数据类型

3.Null该列值是否运行为Null

4.该值的索引类型

5.该列的默认值

6.扩展信息

3.2创建表

语法形式

CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_namefield datatype [约束] [comment '注解内容'][, field datatype [约束] [comment '注解内容']] ...) [engine 存储引擎] [character set 字符集] [collate 排序规则];

TEMPORARY:表⽰创建的是⼀个临时表

• field:列名 • datatype:数据类型

• comment:对列的描述或说明

• engine:存储引擎,不指定则使⽤默认存储引擎

• characterset:字符集,不指定则使⽤默认字符集

• collate:排序规则,不指定则使⽤默认排序规则

示例创建一个用户,包括用户的密码 ,生日,用户编号,用户名,并指定字符集编码和排序规则

示例创建一个学生表

示例创建一个学生表并加上校验(if not exists)

3.3删除表

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

TEMPORARY:表示临时创建的表

tbl_name:将要删除的表名

事务

1.查看事务的支持引擎

2.使用

# 
开始⼀个新的事务
STARTTRANSACTION;# 
或
BEGIN;
;
# 
提交当前事务,并对更改持久化保存
COMMIT;# 
回滚当前事务,取消其更改
ROLLBACK;

START TRANSACTION 或 • BEGIN 开始⼀个新的事务;

COMMIT提交当前事务,并对更改持久化保存;

• RO LLBACK 回滚当前事务,取消其更改;

• ⽆论提交还是回滚,事务都会关闭 

相关文章:

  • 《Spring Boot 4.0新特性深度解析》
  • 基于Qt6 + MuPDF在 Arm IMX6ULL运行的PDF浏览器(项目推介)
  • Leetcode-BFS问题
  • 微信小程序单双周选择排序有效果图
  • Django 项目的 models 目录中,__init__.py 文件的作用
  • PyTorch Lightning实战 - 训练 MNIST 数据集
  • 【Java学习】Lambda表达式
  • day 23
  • 嵌入式MCU和Linux开发哪个好?
  • 架构思维:通用架构模式_系统监控的设计
  • 《微机原理与接口技术》第 5 章 汇编语言程序设计
  • 解决LangChain4j报错HTTP/1.1 header parser received no bytes
  • OJ项目测试
  • C++类和对象--中阶
  • sql语句面经手撕(定制整理版)
  • 收集飞花令碎片——C语言分支与循环语句(上)
  • 如何避免 JavaScript 中常见的闭包陷阱?
  • Nginx stream模块是连接级别的负载均衡
  • 序列检测器
  • 【002】renPy android端启动流程分析
  • 特朗普访中东绕行以色列,专家:凸显美以利益分歧扩大
  • 教育部:启动实施县中头雁教师岗位计划,支撑县中全面振兴
  • 政策一视同仁引导绿色转型,企业战略回应整齐划一?
  • 体坛联播|郑钦文收获红土赛季首胜,国际乒联公布财报
  • 讲座预告|全球贸易不确定情况下企业创新生态构建
  • 来论|建设性推进缅北和平进程——中国的智慧与担当