MYSQL篇二:数据库的操作

news2024/11/18 15:37:02

文章目录

  • 1. 创建数据库
    • 1.1 查看数据库列表
    • 1.2 创建与删除数据库
  • 2. 数据的编码问题
  • 3. 字符集和校验规则
    • 3.1 查看系统默认字符集以及校验规则
    • 3.2 查看数据库支持的字符集
    • 3.3 查看数据库支持的字符集校验规则
    • 3.4 校验规则对数据库的影响
  • 4. 操纵数据库
    • 4.1 查看当前是哪一个数据库
    • 4.2 显示创建语句
    • 4.3 修改数据库
    • 4.4 数据库删除
    • 4.5 备份和恢复
      • 4.5.1 备份
      • 4.5.2 还原
      • 4.5.3 注意事项
    • 4.6 查看连接情况
  • 5. 表的操作
    • 5.1 创建表
    • 5.2 创建表案例
    • 5.3 查看表结构
    • 5.4 修改表
    • 5.5 删除表

1. 创建数据库

  语法:

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.1 查看数据库列表

show databases;

在这里插入图片描述

1.2 创建与删除数据库

  本质就是在/var/lib/mysql目录下创建一个目录。

create database 数据库的名字;

在这里插入图片描述
  本质上就是删除目录。

drop database 数据库的名字;

在这里插入图片描述

2. 数据的编码问题

  数据库有两个编码集:

  1. 数据库编码集 — 数据库未来存储数据
  2. 数据库的校验集 — 支持数据库,进行字段比较时使用的编码,本质也是一种读取数据库中数据的采用的编码格式。

  数据库无论对数据进行任何操作,都必须保证操作和编码必须保持编码一致。
  创建一个使用utf8字符集的 db2 数据库:

create database db2 charset=utf8;

  创建一个使用utf字符集,并带校对规则的 db3 数据库:

create database db3 charset=utf8 collate utf8_general_ci;

  当我们创建数据库没有指定字符集和校验规则时,系统使用默认字符集:utf8,校验规则是:utf8_ general_ ci。

3. 字符集和校验规则

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

show variables like 'character_set_database';
show variables like 'collation_database';

在这里插入图片描述

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

show charset;

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

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

show collation;

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

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

create database test1 collate utf8_general_ci;
use test1;
create table person(name varchar(20));
insert into person values('a');
insert into person values('A');
insert into person values('b');
insert into person values('B');

在这里插入图片描述

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

create database test2 collate utf8_bin;
use test2
create table person(name varchar(20));
insert into person values('a');
insert into person values('A');
insert into person values('b');
insert into person values('B');

在这里插入图片描述

4. 操纵数据库

4.1 查看当前是哪一个数据库

select database();

在这里插入图片描述

4.2 显示创建语句

show create database 数据库名;

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

4.3 修改数据库

  语法:

ALTER DATABASE db_name
[alter_spacification [,alter_spacification]...]

alter_spacification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name

  说明:
  1. 对数据库的修改主要指的是修改数据库的字符集,校验规则。
  实例: 将 test1 数据库字符集改成 gbk。

alter database test1 charset=gbk;

在这里插入图片描述

4.4 数据库删除

DROP DATABASE [IF EXISTS] db_ name;

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

4.5 备份和恢复

4.5.1 备份

  语法:

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

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

# mysqldump -P3306 -u root -p123456 -B mytest > D:/mytest.sql

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

4.5.2 还原

source D:/mysql-5.7.22/mytest.sql;

4.5.3 注意事项

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

mysqldump -u root -p 数据库名 表名1 表名2 > D:/mytest.sql

  同时备份多个数据库:

mysqldump -u root -p -B 数据库名1 数据库名2 ... > 数据库存放路径

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

4.6 查看连接情况

  语法:

show processlist;

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

5. 表的操作

5.1 创建表

  语法:

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

  说明:

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

5.2 创建表案例

create table users (
	id int,
	name varchar(20) comment '用户名',
	password char(32) comment '密码是32位的md5值',
	birthday date comment '生日'
) character set utf8 engine MyISAM;

  说明:
  不同的存储引擎,创建表的文件不一样。
  users 表存储引擎是 MyISAM ,在数据目中有三个不同的文件,分别是:

  1. users.frm:表结构 (users.sdi)
  2. users.MYD:表数据
  3. users.MYI:表索引

在这里插入图片描述

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

5.3 查看表结构

  查看当前数据库有几张表:

show tables;

在这里插入图片描述
  查看一张表的信息:

show create table 表名 \G

在这里插入图片描述

  查看一张表的结构:

desc 表名;

在这里插入图片描述

5.4 修改表

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

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)

  增加一个字段:

alter table user add assets varchar(100) comment '图片路径' after birthday;

在这里插入图片描述
  对原数据没有影响:
在这里插入图片描述
  修改name,改变其长度为60:

alter table user modify name varchar(80);

在这里插入图片描述
  删除password列:
在这里插入图片描述
  注意:删除字段一定要小心,删除字段及其对应的列数据都没了。

  修改表名字:

alter table 原名字 rename to 修改后的名字;

在这里插入图片描述
  将name列修改为xingming:
在这里插入图片描述

5.5 删除表

  语法格式:

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

  示例:

drop table user1;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1896734.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

力扣热100 滑动窗口

这里写目录标题 3. 无重复字符的最长子串438. 找到字符串中所有字母异位词 3. 无重复字符的最长子串 左右指针left和right里面的字符串一直是没有重复的 class Solution:def lengthOfLongestSubstring(self, s: str) -> int:# 左右指针leftright0ans0#初始化结果tablecolle…

LMT加仿真,十一届大唐杯全国总决赛

这次省赛带了太多个省一了,并且很多都进入了国赛总决赛,具体可看下面的图片,只放了一部分。目前只有B组是只有一个商用设备赛也就是LMT,A组和高职组都是仿真实践赛加上商用设备赛。 针对商用设备赛有对应的资料&#xff…

基于IIS的Windows系统Django项目本地部署

参考: 1. 基于Windows平台的Django本地部署和腾讯云服务器上部署(1)_如何在服务器上发布部署django程序 csdn-CSDN博客 2.Windows server iis部署Django详细操作 - Django中文 - 博客园 (cnblogs.com) 3.在IIS中部署pythonDjango项目时出…

大模型范式下的知识检索增强实践(非常详细)零基础入门到精通,收藏这一篇就够了

导读 OpenKG新开设“TOC专家谈”栏目,推送OpenKG TOC(技术监督委员会)专家成员的观点文章。本期邀请到阿里巴巴通义实验室自然语言处理方向负责人黄非研究员介绍通义大模型在知识检索增强方面的一些实践。 随着人工智能技术的飞速发展&…

AI绘画 Stable Diffusion图像的脸部细节控制——采样器全解析

大家好,我是画画的小强 我们在运用AI绘画 Stable Diffusion 这一功能强大的AI绘图工具时,我们往往会发现自己对提示词的使用还不够充分。在这种情形下,我们应当如何调整自己的策略,以便更加精确、全面地塑造出理想的人物形象呢&a…

数据特征采样在 MySQL 同步一致性校验中的实践

作者:vivo 互联网存储研发团队 - Shang Yongxing 本文介绍了当前DTS应用中,MySQL数据同步使用到的数据一致性校验工具,并对它的实现思路进行分享。 一、背景 在 MySQL 的使用过程中,经常会因为如集群拆分、数据传输、数据聚合等…

24_嵌入式系统输入输出设备

目录 GPIO原理与结构 A/D接口基本原理 A/D接口原理 A/D转换的重要指标 D/A接口基本原理 D/A接口原理 DAC的分类 D/A转换器的主要指标 键盘接口基本原理 键盘接口原理 用I/O口实现键盘接口 显示接口基本原理 基本结构和特点 基本原理 LCD种类 市面上出售的LCD的类…

python怎么样将一段程序无效掉

1、python中可以用注释屏蔽一段语句,具体方法如下,首先打开一段python的示例程序: 2、然后单行注释的方法是在语句前面加上#,程序运行后添加注释的地方的语句会被自动跳过,这里可以看到将打印变量a的语句添加注释就没有…

STM32F1+HAL库+FreeTOTS学习5——内核中断管理及中断控制函数

STM32F1HAL库FreeTOTS学习5——中断管理和临界段代码保护 中断简介中断优先级寄存器拓展FreeRTOS中PendSV和Systick中断优先级配置三个中断屏蔽寄存器FreeRTOS中断管理函数代码验证 上一期我们学习了FreeRTOS中任务挂起与恢复,在中断服务程序中恢复任务过程中&#…

利用谷歌云serverless代码托管服务Cloud Functions构建Gemini Pro API

谷歌在2024年4月发布了全新一代的多模态模型Gemini 1.5 Pro,Gemini 1.5 Pro不仅能够生成创意文本和代码,还能理解、总结上传的图片、视频和音频内容,并且支持高达100万tokens的上下文。在多个基准测试中表现优异,性能超越了ChatGP…

竞赛选题 协同过滤电影推荐系统

文章目录 1 简介1 设计概要2 课题背景和目的3 协同过滤算法原理3.1 基于用户的协同过滤推荐算法实现原理3.1.1 步骤13.1.2 步骤23.1.3 步骤33.1.4 步骤4 4 系统实现4.1 开发环境4.2 系统功能描述4.3 系统数据流程4.3.1 用户端数据流程4.3.2 管理员端数据流程 4.4 系统功能设计 …

【Proteus】按键的实现『⒉种』

🚩 WRITE IN FRONT 🚩 🔎 介绍:"謓泽"正在路上朝着"攻城狮"方向"前进四" 🔎🏅 荣誉:2021|2022年度博客之星物联网与嵌入式开发TOP5|TOP4、2021|2222年获评…

13-错误-ERROR: duplicate key value violates unique constraint “ux_xxx“

13-错误-ERROR: duplicate key value violates unique constraint “ux_xxx” 更多内容欢迎关注我(持续更新中,欢迎Star✨) Github:CodeZeng1998/Java-Developer-Work-Note 技术公众号:CodeZeng1998(纯纯…

Vite: Bundler实现JavaScript的AST解析器—词法分析、语义分析

概述 基于前文,我们写了一个迷你版的 no-bundle 开发服务,也就是 Vite 开发阶段的 Dev Server,而在生产环境下面,处于页面性能的考虑,Vite 还是选择进行打包(bundle),并且在底层使用 Rollup 来完成打包的过…

liunx清理服务器内存和日志

1、查看服务器磁盘占用情况 # 查看磁盘占用大小 df -h 2、删除data文件夹下面的日志 3、查看每个服务下面的日志输出文件,过大就先停掉服务再删除out文件再重启服务 4、先进入想删除输入日志的服务文件夹下,查看服务进程,杀掉进程&#xff…

【算法】(C语言):二分查找

二分查找: 获取查找区域的中间位置。若中间位置的数据就是要找的值,则返回true。若要找的值 小于 中间位置的数据,则往左边查找。若要找的值 大于 中间位置的数据,则往右边查找。重复1和2,若没有要找的值,…

Mall,正在和年轻人重新对话

【潮汐商业评论/原创】 结束了一下午的苦闷培训,当Cindy赶到重庆十字大道时,才发现十字路口上的巨大“飞行棋”在前两天就已经撤展了。 “来了又错过,就会觉得遗憾,毕竟这样的路口不多,展陈又不可能会返场。” 飞行棋…

【机器学习】机器学习在AI Agent中的影响与作用

文章目录 🚀Al Agent是什么📕Al Agent的工作原理与技术💪Al Agent应用领域🚀智能家居应用🌈医疗健康领域⭐金融服务行业🌂交通运输管理🎬教育培训应用 🔒Al Agent优势与挑战✊Al Age…

苹果获得OpenAI董事会观察员职位、Runway最新估值40亿美元

ChatGPT狂飙160天,世界已经不是之前的样子。 更多资源欢迎关注 据知情人士透露,苹果应用商店(App Store)负责人、前营销主管Phil Schiller被选中担任这一职位。这位知情人士说,作为董事会观察员,他不会以正…

【综合能源】计及碳捕集电厂低碳特性及需求响应的综合能源系统多时间尺度调度模型

目录 1 主要内容 2 部分程序 3 实现效果 4 下载链接 1 主要内容 本程序是对《计及碳捕集电厂低碳特性的含风电电力系统源-荷多时间尺度调度方法》方法复现,非完全复现,只做了日前日内部分,并在上述基础上改进升级为电热综合电源微网系统&…