[ MySQL ] — 库和表的操作

目录

库的操作

创建数据库

语法:

使用:

字符集和校验规则

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

 查看数据库支持的字符集

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

校验规则对数据库的影响

操纵数据库 

查看数据库

显示创建语句

修改数据库

删除数据库

 备份

 恢复

查看连接情况

表的操作

创建表

语法:

说明:

使用:

查看表

查看表结构

修改表

修改表名

修改表结构

使用:

删除表


库的操作

创建数据库

语法:

创建数据库时有两个编码集:

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

数据库无论对数据做任何操作,都必须保证编码格式是一致的。

使用:

create database db_name;

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

在上一篇文章里我们创建过数据库,这里就不创建了,演示一下加了 if not exists 的情况。

创建数据库时指定字符集

create database db_name charset=utf8;

create database db_name character set utf8; 这个语法也是可以的

创建数据库时指定校验规则

create database db_name charset=utf8 collate utf8_general_ci;

字符集和校验规则

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

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

 查看数据库支持的字符集

show charset;

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

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

show collation;

内容太多就不展示了。

校验规则对数据库的影响

可以发现不同的校验方式,查询的结果也是不同的。

操纵数据库 

查看数据库

show databases;

 前面已经演示过了,这里就不演示了。

 查看当前自己在那个数据库:select database();

显示创建语句

show create database db_name;

 说明:

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

修改数据库

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


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

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

删除数据库

DROP DATABASE [IF EXISTS] db_ name;

执行删除之后的结果:

  • 数据库内部看不到对应的数据库
  • 对应的数据库文件夹被删除,级联删除,里面的数据表全部被删

注意:不要随意删除数据库!!!
 

 备份

命令行输入: mysqldump -P3306 -u root -p 密码 -B 数据库名 > 数据库备份存储的文件路径

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

注意事项

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

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

同时备份多个数据库

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

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

 恢复

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


查看连接情况

show processlist

 

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


表的操作

创建表

语法:

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

说明:

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

使用:

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

  • users.frm:表结构
  • users.MYD:表数据
  • users.MYI:表索引

不同的存储引擎,创建表的文件不一样。如下图


查看表

show tables;


查看表结构

desc 表名称

 显示创建表时的详细信息:show create table user2 \G

 有细心的人会发现这里显示的和之前创建表的时候,稍微有点不同。这里因为在mysqld服务器那里会做语法分析,分析完之后进行的操作和存储,所以会稍有不同。


修改表

修改表名

alter table 原表名 rename to 新表名;

修改表结构

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

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

使用:

往表内插入两条数据。

在user表内新增一个字段,用于存储图片路径。 

 将表内 username 这个字段类型 长度改为60。(修改其他属性也是一样的)

 但需要注意,修改时不添加注释,修改后注释也就没有了。

修改表内 username 这个字段的名称。注意:修改字段名称需要把字段类型也添加上。

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


删除表

语法:

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

使用:

drop table tb_name;

 
 

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Linux】计算机网络套接字编写

文章目录 前言TCP协议和UDP协议网络字节序socket接口sockaddr结构1.创建套接字 cs2.绑定端口号 s3.监听socket s4.接受请求 s5.建立连接 c 地址转换函数字符串转in_addrin_addr转字符串 recvfrom和sendto 前言 上篇文章我们学习了计算机网络分层,了解了网络通信的本…

Vue3_对响应式对象解构赋值之后失去响应性——toRefs()

官网toRefs() :响应式 API:工具函数 | Vue.js toRefs 在调用时只会为源对象上可以枚举的属性创建 ref。如果要为可能还不存在的属性创建 ref,请改用 toRef。 setup(){const state reactive({name:"张三"age:14})const stateAsToRefs toRef…

保留网络:大型语言模型的Transformer继任者

原文信息 原文题目:《Retentive Network: A Successor to Transformer for Large Language Models》 原文引用:Sun Y, Dong L, Huang S, et al. Retentive Network: A Successor to Transformer for Large Language Models[J]. arXiv preprint arXiv:2…

ArduPilot开源代码之Companion Computers简单分析

ArduPilot开源代码之Companion Computers简单分析 1. 源由2. 伴机系统2.1 APSync2.2 DroneKit2.3 FlytOS2.4 Maverick2.5 ROS2.6 Rpanion-server 3. 总结4. 参考资料 1. 源由 从稳定性,社区群体,以及开源方式的角度看,Ardupilot是不错的选择…

Python3 处理PDF之PyMuPDF 入门

PyMuPDF 简介 PyMuPDF是一个用于处理PDF文件的Python库,它提供了丰富的功能来操作、分析和转换PDF文档。这个库的设计目标是提供一个简单易用的API,使得开发者能够轻松地在Python程序中实现PDF文件的各种操作。 PyMuPDF的主要特点如下: 跨平台兼容性&a…

Spring Data JPA源码

导读: 什么是Spring Data JPA? 要解释这个问题,我们先将Spring Data JPA拆成两个部分,即Sping Data和JPA。 从这两个部分来解释。 Spring Data是什么? 摘自: https://spring.io/projects/spring-data Spring Data’s mission is to provide a familiar and cons…

1、Spark SQL 概述

1、Spark SQL 概述 Spark SQL概念 Spark SQL is Apache Spark’s module for working with structured data. 它是spark中用于处理结构化数据的一个模块 Spark SQL历史 Hive是目前大数据领域,事实上的数据仓库标准。 Shark:shark底层使用spark的基于…

NOsql之MongoDB入门分享

目录 一、MongoDB简介 1、概念理解 2、yum安装部署 3、二进制安装部署 4、配置文件解析 二、MongoDB基本管理 1、登录操作 2、管理命令 3、用户管理 一、MongoDB简介 1、概念理解 关系型数据库(RDBMS:Relational Database Management System) MySql、Ora…

oop基础--成员方法传参机制(重要)

文章目录 1. 基本数据类型的传参机制2. 引用数据类型的传参机制 1. 基本数据类型的传参机制 先让我们猜一下如下代码的输出结果~ public class MethodParameter01 {//编写一个 main 方法public static void main(String[] args) {int a 10;int b 20;//创建 A 对象 名字 obj…

计算机毕设 深度学习疫情社交安全距离检测算法 - python opencv cnn

文章目录 0 前言1 课题背景2 实现效果3 相关技术3.1 YOLOV43.2 基于 DeepSort 算法的行人跟踪 4 最后 0 前言 🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两…

oracle数据库创建用户并插入数据

Oracle第一话 数据库权限设置 序言 ​ 具体的错误类型,我看大概是这样的 一 Oracle比mysql复杂一点 首先,创建一个表空间 -- 创建名为"TEST_DATA"表空间 CREATE TABLESPACE TEST_DATA NOLOGGING -- 数据存放的位置 DATAFILE D:\test_data…

Qt项目---简单的计算器

在这篇技术博客中,我们将介绍如何使用Qt框架实现一个简单的计算器应用。我们将使用C编程语言和Qt的图形用户界面库来开发这个应用,并展示如何实现基本的算术操作。 项目设置 首先,我们需要在Qt Creator中创建一个新的Qt Widgets应用程序项目…

【二进制安全】堆漏洞:Double Free原理

参考:https://www.anquanke.com/post/id/241598 次要参考:https://xz.aliyun.com/t/6342 malloc_chunk 的源码如下: struct malloc_chunk { INTERNAL_SIZE_T prev_size; /*前一个chunk的大小*/ INTERNAL_SIZE_T size; /*当前chunk的…

TPlink DDNS 内网穿透?外网访问设置方法

有很多小伙伴都想知道:TPlink路由器怎么设置DDNS内网穿透?今天,小编就给大家分享一下TPlink DDNS 外网访问设置方法,下面是图文教程,帮助新手快速入门DDNS设置。 本文介绍的是云路由器TP-LINK DDNS的设置方法。TP-LIN…

Keil软件添加STC数据包方法

添加数据包方法如下: (1)首先,打开STC-ISP烧录工具; (2)点击“Keil仿真设置”,然后点击“添加型号和头文件到Keil中,添加STC仿真器驱动到Keil中”。 (3&…

60多行代码仿制B站首页一个好看的卡片效果

文章目录 1、为啥是这个?2、仿制效果3、实现思路4、代码5、查看B站如何实现 1、为啥是这个? 看到Bilibili首页的一个卡片,看着效果很不错,给人很舒适的感觉。一琢磨貌似也不难,甚至只需要一层 div 就可以实现主要框架…

MacBook Pro 16 M1 Max 升级 macOS Ventura 13.5 兼容测评

今天给大家带来了 MacBook Pro 16 M1 Max 升级 macOS Ventura 13.5 兼容 100 挑战赛 的视频,现在充电头再以文章的形式呈现给大家,让大家更清楚、直白的了解这款笔记本在升级系统后的兼容性如何。 MacBook Pro 16 M1 Max 配置了 140W 的 MagSafe 充电口&…

mybatisJava对象、list和json转换

1. 参考mybatis-plus mybatis Java对象、list和json转换 网上好多不靠谱,参考mybatis-plus中TableField,mybatis中自定义实现 这样不需要对象中属性字符串接收,保存到表中,都是转义字符,使用时还要手动转换为对象或者…

【Opencv入门到项目实战】(四):图像梯度计算|Sobel算子|Scharr算子|Laplacian算子

文章目录 0.引言1. Sobel算子2. Scharr算子3. Laplacian算子 0.引言 在图像处理中,梯度是指图像中像素灰度变化的速率或幅度,我们先来看下面这张图 假设我们想要计算出A点的梯度,我们可以发现A点位于边缘点,A点左边为黑色&#x…

骨传导耳机真不伤耳吗?骨传导耳机有什么好处?

骨传导耳机真不伤耳吗?骨传导耳机有什么好处? 我先来说说骨传导耳机的工作原理吧,骨传导是一种传声方式,声波通过颅骨、颌骨等头部骨头的振动,将声音传到内耳。其实骨传导的现象我们很常见,就像我们平时嗑瓜…