【MySQL数据库学习】(MySQL库的操作和表的操作)


🔥承渊政道: 个人主页
❄️个人专栏: 《C语言基础语法知识》 《数据结构与算法》 《C++知识内容》 《Linux系统知识》 《算法刷题指南》 《测评文章活动推广》 《大模型语言路线学习》 《MySQL数据库学习》
✨逆境不吐心中苦,顺境不忘来时路!✨ 🎬 博主简介:

在学习 MySQL 数据库的过程中,库和表的操作是最基础也是最重要的内容之一.数据库用于存储和管理数据,而表则是数据真正组织和保存的核心结构.无论是后续进行数据的增删改查,还是设计完整的数据库系统,都离不开对数据库和数据表的熟练操作.本文将围绕 MySQL 中"库的操作"和"表的操作"展开介绍,包括数据库的创建、查看、选择、删除,以及数据表的创建、查看表结构、修改表、删除表等常用操作.通过本篇内容的学习,可以帮助我们打好 MySQL 基础,为后续深入学习 SQL 语句、数据约束、索引以及数据库设计做好准备.

目录

1.库的操作

1.1创建数据库语法

语法:

bash 复制代码
CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [,
create_specification] ...]
create_specification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name

说明:

大写的表示关键字

\[\] 是可选项

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

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


1.2创建和删除数据库

创建名为database1的数据库:

sql 复制代码
create database database1;

删除名为database1的数据库:

sql 复制代码
drop database database1;

1.3字符集和校验规则

1.3.1查看系统默认字符集以及校验规则

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

1.3.2查看数据库支持的字符集

sql 复制代码
show charset;

字符集主要是控制用什么语言.比如utf8就可以使用中文.


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

sql 复制代码
show collation;

1.3.4校验规则对数据库的影响

1.不区分大小写

创建一个数据库,校验规则使用utf8_ general_ ci不区分大小写

sql 复制代码
create database test1 collate utf8_general_ci;
sql 复制代码
use test1;
sql 复制代码
create table person(name varchar(20));
sql 复制代码
show tables;
sql 复制代码
desc person;
sql 复制代码
insert into person values('a');
insert into person values('A');
insert into person values('b');
insert into person values('B');


2.区分大小写

创建一个数据库,校验规则使用utf8_ bin区分大小写

sql 复制代码
create database test2 collate utf8_bin;
sql 复制代码
use test2;
sql 复制代码
create table person(name varchar(20));
sql 复制代码
show tables;
sql 复制代码
desc person;
sql 复制代码
insert into person values('a');
insert into person values('A');
insert into person values('b');
insert into person values('B');

3.进行查询
(1)不区分大小写的查询以及结果

sql 复制代码
select * from person ;
select * from person where name='a';


(2)区分大小写的查询以及结果

sql 复制代码
select * from person;
select * from person where name='a';


4.结果排序
(1)不区分大小写排序以及结果

sql 复制代码
use test1;
select * from person order by name;

(2)区分大小写排序以及结果

sql 复制代码
use test2;
select * from person order by name;

1.4操纵数据库

1.4.1查看数据库

sql 复制代码
show databases;

1.4.2显示创建语句

sql 复制代码
show create database 数据库名;

示例:

sql 复制代码
mysql> show create database mytest;
+----------+----------------------------------------------------------------+
| Database | Create Database |
+----------+----------------------------------------------------------------+
| mysql | CREATE DATABASE `mytest` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+----------------------------------------------------------------+

说明:

(1)MySQL建议我们关键字使用大写,但是不是必须的.

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

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


1.4.3修改数据库

语法:

sql 复制代码
ALTER DATABASE db_name
[alter_spacification [,alter_spacification]...]
alter_spacification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name

说明:

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

实例:将test2数据库字符集改成gbk

sql 复制代码
alter database test2 charset=gbk collate gbk_chinese_ci;

1.4.4数据库删除

sql 复制代码
DROP DATABASE [IF EXISTS] db_ name;

执行删除之后的结果:数据库内部看不到对应的数据库,对应的数据库文件夹被删除,级联删除,里面的数据表全部被删.注意:不要随意删除数据库.


1.5备份和恢复

1.5.1备份

语法:

bash 复制代码
 mysqldump -P3306 -u root -p 密码 -B 数据库名 > 数据库备份存储的文件路径

示例:将test1库备份到文件(退出连接)

powershell 复制代码
mysqldump -P3306 -uroot -p -B test1 > test1.sql

这时,可以打开看看test1.sql文件里的内容,其实把我们整个创建数据库,建表,导入数据的语句都装载这个文件中.


1.5.2还原

sql 复制代码
source /root/test1.sql

为啥要加/root?可以查看到我刚刚备份的test1.sql所处的目录是在根目录下,你的和我的不一定一样,具体情况根据你所显示出来的进行输入即可!


我们再show databases; 可以看到test1的文件就被还原回来了!


1.5.3注意事项

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

sql 复制代码
 mysqldump -u root -p 数据库名 表名1 表名2 > D:/test1.sql

同时备份多个数据库

sql 复制代码
mysqldump -u root -p -B 数据库名1 数据库名2 ... > 数据库存放路径

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

库,再使用source来还原.


1.6查看连接情况

语法:

sql 复制代码
show processlist

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


2.表的操作

2.1创建表

语法:

sql 复制代码
CREATE TABLE table_name (
field1 datatype,
field2 datatype,
field3 datatype
) character set 字符集 collate 校验规则 engine 存储引擎;

说明:

field 表示列名

datatype 表示列的类型

character set 字符集,如果没有指定字符集,则以所在数据库的字符集为准

collate 校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准


2.2创建表案例

sql 复制代码
create table user1 (
    -> id int,
    -> name varchar(20) comment '用户名',
    -> password char(32) comment '用户的密码',
    -> birthday date comment '用户的生日'
    -> ) character set utf8 collate utf8_general_ci  engine MyISAM;
sql 复制代码
create table user2 (
    -> id int,
    -> name varchar(20) comment '用户名',
    -> password char(32) comment '用户的密码',
    -> birthday date comment '用户的生日'
    -> ) charset=utf8 collate=utf8_general_ci  engine=InnoDB;

说明:不同的存储引擎,创建表的文件不一样.

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

user1.frm:表结构

user1.MYD:表数据

user1.MYI:表索引

user2 表存储引擎是 InnoDB,在数据目中有二个不同的文件,分别是:

user2.frm:表结构

user2.ibd:表真实数据的核心文件

备注:创建一个engine是innodb的数据库,观察存储目录.


2.3查看表结构

sql 复制代码
desc 表名;




2.4修改表

在项目实际开发中,经常修改某个表的结构,比如字段名字,字段大小,字段类型,表的字符集类型,表的存储引擎等等.我们还有需求,添加字段,删除字段等等.这时我们就需要修改表.

sql 复制代码
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);

案例:
1.修改表名为user

sql 复制代码
alter table user1 rename to user;



2.在user表添加两条信息

sql 复制代码
insert into user values (1, '张三', '12345', '2010-10-1');
sql 复制代码
insert into user values (2, '李四', '54321', '2015-10-1');


3.在user表添加一个字段,用于保存图片路径

sql 复制代码
alter table user add image_path varchar(128) comment '用户头像路径', after birthday;

插入新字段后,对原来表中的数据没有影响.
4.修改name,将其长度改成60

sql 复制代码
alter table user modify name varchar(60);



5.删除password列

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

sql 复制代码
alter table user drop password;


6.将name列修改为xingming

sql 复制代码
alter table user change name xingming varchar(60);

2.5删除表

语法格式:

bash 复制代码
DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...

示例:

sql 复制代码
drop table user2;

🚀真正的勇者不是流泪的人,而是含泪奔跑的人!


敬请期待下一篇文章内容


每日心灵鸡汤: 做一个能持续努力的人!

我们常常羡慕那些"刚好赶上"的好运,却容易忽略,"刚刚好"的背后往往是长时间的积累和努力.真正的好运气,很少是凭空砸下的惊喜,它更像是对持续努力的一份回馈.当你日复一日地专注于一件事,那些看似微不足道的积累,会在某个不经意的时刻引发质变,成为托起你的阶梯.所谓机遇,不过是你的努力走到了能与它相遇的地方.请相信,时间从不会辜负那些认真对待它的人.当你选择持续行动、默默耕耘,你就走在了一条最有可能与好运相逢的路上.那些你流过的汗,读过的书,都在静静编织着未来的惊喜.别着急,别气馁,再坚持一下!走着走着,路就通了;做着做着,运就来了.

相关推荐
摇滚侠16 分钟前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
通信小呆呆23 分钟前
当算法有了“五感”:多模态数据融合如何向人体感官协同学习?
人工智能·学习·算法·机器学习·机器人
H__Rick43 分钟前
自动对焦学习-3
人工智能·学习·计算机视觉
Daisy Lee1 小时前
量化学习-第1章-什么是量化金融
学习·金融·datawhale
Alsn862 小时前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker
YM52e2 小时前
买菜计算器小应用 - HarmonyOS ArkUI 开发实战-PC版本
学习·华为·harmonyos·鸿蒙·鸿蒙系统
麦聪聊数据2 小时前
数据服务化时代:企业数据能力输出的核心路径
数据库
小雨下雨的雨2 小时前
HarmonyOS ArkUI训练营入门-组件掌握系列-Animation 动画效果实现-PC版本
学习·华为·harmonyos·鸿蒙
ApacheSeaTunnel2 小时前
实战演示 | 基于 Apache SeaTunnel 与 Apache DolphinScheduler 实现 MySQL 到 Doris 离线定时增量同步
大数据·mysql·开源·doris·数据集成·seatunnel·数据同步
shushangyun_2 小时前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化