【Mysql上分之路】第八篇:Mysql数据库基本操作、错误代码信息

冲鸭

MySQL的基本操作

前言

在MySQL中,可以创建多个不同名称的数据库存储数据,数据库可以看作是一个专门存储数据对象的容器,每一个数据库都有唯一的名称,数据库的一个重要组成部分就是数据表,每一个数据库都是由若干个数据表组成的,数据表是用来存放数据的;充分了解对数据库和数据表的操作才能更好的管理数据库

数据库的操作

数据库的操作主要包括查看、创建、删除、修改数据库,通过这些操作来管理数据库

查看数据库

语法格式

show databases [LIKE '查看的数据库名'];
[]:可选项

show databases语句用来查看或显示当前用户在权限范围内的数据库,当存在多个数据库时,可以使用LIKE用于匹配指定的数据库名称

LIKE可以进行全部匹配,也可以进行部分匹配

mysql基本操作查看数据库
  • information_schema:主要存储了系统中一些数据库对象信息,比如用户表信息、列信息、权限信息、字符集信息和分区信息
  • performance_schema:主要用于收集数据库服务器的性能参数
  • mysql:MySQL的核心数据库,主要用于负责存储数据库用户、用户访问权限等MySQL自己需要的控制管理信息
  • sys:MySQL 5.7 安装完成后会多一个 sys 数据库,上图是MySQL5.5所以没有sys
  • sys数据库主要是用来提供视图,数据都来自于performance_schema,主要是让开发者和使用者更方便的查看性能问题

创建数据库

语法格式

CREATE DATABASE [IF NOT EXISTS] <数据库名>
[[DEFAULT] CHARACTER SET <字符集名>] 
[[DEFAULT] COLLATE <校对规则名>];
[]:都是可选项

create database语句用来创建数据库

mysql基本操作创建数据库
  • 数据库名不能以数字开头,因为MySQL的数据存储区是以目录的形式来表示某一个数据库的,所以数据库名的命令必须遵守文件夹命名规则,不能以数字开头
  • 当创建数据库时需要判断数据库名是否已经存在可以使用 IF NOT EXISTS
  • CHARACTER SET <字符集名>:可以用来指定数据库的字符集,指定字符集是为了避免在数据库存储过程中数据 出现乱码的现象,不指定的话则会使用默认的字符集,字符集定义存储字符串的方式
  • COLLATE <校对规则名>:指定字符集的校对规则,校对规则定义了字符串比较的方式

选择数据库

语法格式

use 数据库名;

use语句是用来指定进入某个数据库,可以完成一个数据到另一个数据库的跳转

msyql基本操作选择数据库

  • database changed:表名数据库之间已经进行了跳转

修改数据库

语法格式

ALTER DATABASE [数据库名] { 
[ DEFAULT ] CHARACTER SET <字符集名> |
[ DEFAULT ] COLLATE <校对规则名>}

alter database:可以用来修改已经创建或存在的数据库的相关参数

mysql基本操作修改数据库
  • 使用alter database语句需要获得数据库的alter权限
  • alter database语句主要用于更改数据库的全局特性
  • CHARACTER SET用于更改数据库字符集

删除数据库

语法格式

DROP DATABASE [ IF EXISTS ] <数据库名>;

drop database语句用来删除已创建的数据库,删除数据库是将已经存在的数据库从磁盘空间上清除,使用Drop database命令时要非常谨慎,在执行该命令时不会给出任何提醒确认信息,Drop database命令执行后,数据库中的数据会被一起删除并且无法恢复

mysql基本操作删除数据库
  • IF EXISTS:用于防止当数据库不存在时发生错误
  • 使用drop 语句时需要获得数据库drop权限

数据表的操作

数据表的操作主要包括有创建数据表、查看数据表结构、修改数据表和删除数据表等

查看数据表

语法格式

show tables;

show tables:用于查看该数据库下所有的表

mysql基本操作查看数据表

创建数据表

创建数据表指的是在已经创建的数据库中建立新表

创建数据表的过程是规定数据列的属性的过程,同时也是数据完整性约束的过程

语法格式

CREATE TABLE <表名> ([表定义选项])[表选项][分区选项];
表定义选项为:
<列名1> <类型1> [,…] <列名n> <类型n>

CREATE TABLE 命令语法比较多,其主要是由表创建定义(create-definition)、表选项(table-options)和分区选项(partition-options)所组成的

mysql基本操作创建数据表
  • create table 语句使用时必须获得创建表的权限
  • 表定义选项:表创建定义,列名、列的定义以及可能空值情况完整性约束或表索引组成
  • 创建表名时不能使用关键字
  • 数据表中的多个列的名称和数据类型之间要用逗号隔开

查看表结构

语法格式

DESCRIBE <表名>;
DESC <表名>;

DESCRIBE/DESC 语句会以表格的形式来展示表的字段信息,包括字段名、字段数据类型、是否为主键、是否有默认值等

mysql基本操作查看表结构

DESCRIBE 和 DESC 查看表 player的表结构

  • Null字段:表示该列是否可以存储NULL值
  • Key字段:表示该列是否为索引,PRI 表示该列是表主键的一部分,UNI 表示该列是 UNIQUE 索引的一部分,MUL 表示在列中某个给定值允许出现多次
  • Default:表示该列是否有默认值,如果有则表示该字段的默认值
  • Extra:表示可以获取的与给定列有关的附加信息,如 AUTO_INCREMENT 等

SHOW CREATE TABLE player\G来查看指定数据表的定义,用SQL语句的形式来展示表信息

修改数据表

语法格式

ALTER TABLE <表名> [修改选项]
修改选项为:
{ ADD COLUMN <列名> <类型>
| CHANGE COLUMN <旧列名> <新列名> <新列类型>
| ALTER COLUMN <列名> { SET DEFAULT <默认值> | DROP DEFAULT }
| MODIFY COLUMN <列名> <类型>
| DROP COLUMN <列名>
| RENAME TO <新表名>
| CHARACTER SET <字符集名>
| COLLATE <校对规则名> }

alter table语句用来修改数据库中原有表的结构

msyql基本操作修改数据表

修改字段名称

语法格式

ALTER TABLE <表名> CHANGE <旧字段名> <新字段名> <新数据类型>;

CHANGE 也可以只修改数据类型,实现和 MODIFY 同样的效果,方法是将 SQL 语句中的“新字段名”和“旧字段名”设置为相同的名称,只改变“数据类型”

mysql基本操作修改字段名

  • 旧字段名:指修改前的字段名;
  • 新字段名:指修改后的字段名;
  • 新数据类型:指修改后的数据类型,如果不需要修改字段的数据类型,可以将新数据类型设置成与原来一样,但数据类型不能为空

修改字段数据类型

语法格式

ALTER TABLE <表名> MODIFY <字段名> <数据类型>

修改字段的数据类型就是把字段的数据类型转换成另一种数据类型,由于不同类型的数据在机器中的存储方式及长度并不相同,修改数据类型可能会影响数据表中已有的数据记录,因此,当数据表中已经有数据时,不要轻易修改数据类型

mysql基本操作修改子段数据类型

  • 表名:指要修改数据类型的字段所在表的名称;
  • 字段名:指需要修改的字段;
  • 数据类型:指修改后字段的新数据类型

删除字段

语法格式

ALTER TABLE <表名> DROP <字段名>;

删除字段是将数据表中的某个字段从表中移除

mysql基本操作删除字段

添加字段

语法格式

ALTER TABLE <表名> ADD <新字段名><数据类型>[约束条件] FIRST|AFTER 字段名;

MySQL 允许在开头、中间和结尾处添加字段,一个完整的字段包括字段名、数据类型和约束条件

mysql基本操作添加字段
  • <表名> 为数据表的名字;
  • <新字段名> 为所要添加的字段的名字;
  • <数据类型> 为所要添加的字段能存储数据的数据类型;
  • [约束条件] 是可选的,用来对添加的字段进行约束
  • 当添加语句后面为FIRST表示新增的字段的位置为第一个
  • 当添加语句后面为AFTER表示新增的字段位置在某一个字段后面
  • 若添加语句后面未指定新增字段位置则默认为最后一个字段的位置

删除数据表

语法格式

DROP TABLE [IF EXISTS] 表名1 [ ,表名2, 表名3 ...]

DROP TABLE 语句可以删除一个或多个数据表,在删除表的同时,表的结构和表中所有的数据都会被删除,因此在删除数据表之前最好先备份,以免造成无法挽回的损失

mysql基本操作删除数据表
  • 表名1, 表名2, 表名3 …表示要被删除的数据表的名称。DROP TABLE 可以同时删除多个表,只要将表名依次写在后面,相互之间用逗号隔开即可。
  • IF EXISTS 用于在删除数据表之前判断该表是否存在,如果不加 IF EXISTS,当数据表不存在时 MySQL 将提示错误,中断 SQL 语句的执行;加上 IF EXISTS 后,当数据表不存在时 SQL 语句可以顺利执行,但是会发出警告
  • 用户必须拥有执行 DROP TABLE 命令的权限,否则数据表不会被删除。
  • 表被删除时,用户在该表上的权限不会自动删除

SQL错误代码

MySQL 出错时反馈的代码代表出错的原因,才能了解 MySQL 数据库的错误,找出原因,解决问,下面介绍 MySQL 服务器和客户端中的错误代码、提示消息的生成方式和查看方法,最后还对 MySQL 中常见的错误代码做了详细说明

服务端客户端错误代码和消息

默认情况下服务器出错代码都是以1开头,客户端出错代码都是以2开头的

mysql基本操作错误信息

当登录MySQL密码输入错误,系统提示1045错误代码,表示不能连接数据库,用户名或密码错误

当停止mysql服务重新登录MySQL时,系统提示2003错误代码 ,表示不能连接到本地的MySQL服务器,未启动MySQL服务

常见的错误代码

服务端错误代码
错误代码说 明
1004无法创建文件
1005无法创建数据表、创建表失败
1006无法创建数据库、创建数据库失败
1007无法创建数据库,数据库己存在
1008无法删除数据库,数据库不存在
1009不能删除数据库文件导致删除数据库失败
1010不能删除数据目录导致删除数据库失败
1011删除数据库文件时出错
1012无法读取系统表中的记录
1013无法获取的状态
1014无法获得工作目录
1015无法锁定文件
1016无法打开文件
1017无法找到文件
1018无法读取的目录
1019无法为更改目录
1020记录已被其它用户修改
1021硬盘剩余空间不足,请加大硬盘可用空间
1022关键词重读,更改记录失败
1023关闭时发生错误
1025更改名字时发生错误
1032记录不存在
1036数据表是只读的,不能对它进行修改
1037系统内存不足,请重启数据库或重启服务器
1042无效的主机名
1044当前用户没有访问数据库的权限
1045不能连接数据库,用户名或密码错误
客户端错误代码
错误代码说 明
2000未知 MySQL 错误
2001不能创建 UNIX 套接字(%d)
2002不能通过套接字“ %s”(%d)连接到本地 MySQL 服务器, self 服务未启动
2003不能连接到 %s ”(%d )上的 MySQL 服务器,未启动 mysql 服务
2004不能创建 TCP/IP 接字(%d)
2005未知的 MySQL 服务器主机“ %s”(%d)
2007协议不匹配,服务器版本=%d,客户端版本=%d
2008MySQL 客户端内存溢出
2009错误的主机信息
2010通过 UNIX 套接字连接的本地主机
2012服务器握手过程中出错
2013查询过程中丢失了与 SQL 服务器的连接
2014命令不同步,现在不能运行该命令
2024连接到从服务器时出错
2025连接到主服务器时出错
2026SSL 连接错误

总结

在MySQL中,可以创建多个不同名称的数据库存储数据,每一个数据库都是由若干个数据表组成的,数据表是用来存放数据的,了解对数据库和数据表的操作才能我们更好管理数据库

赶紧学习起来吧!我是一个正在努力找回自我的人,希望能和一起学习的人成长,有错误的地方请各位大佬帮忙指正,如果觉得有帮助就点个赞当作对我的一个小肯定❤👍,peace&love

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值