【MySQL】初始MySQL、库与表的操作

目录

基本使用

使用案例

SQL分类

存储引擎

库的操作

字符集和校验规则

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

查看数据库支持的字符集

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

指定编码常见数据库

 校验规则对数据库的影响

操纵数据库

库的备份与恢复

表的操作

创建表

查看表

修改表

删除表


基本使用

连接服务器 

 mysql -h 127.0.0.1 -P 3306 -u root -p
  • -h:指明登录部署了mysql的主机;
  • -P:指明我们要访问的端口号
  • -u:指明登录用户;
  • -p:指明需要输入密码。

什么是数据库 

mysql--数据库服务的客户端,mysqld--数据库服务的服务器端(带d表明是一种守护进程),mysql本质是基于C(mysql)和S(mysqld)模式的网络服务,

mysql既然是一种网络服务,就要绑定端口号,默认是3306。mysql是一套给我提供数据存取的服务的网络程序。数据库一般指在磁盘或者内存中存储的特定结构组织的数据(将来在磁盘上存储的一套数据库方案)。数据库服务特指mysqld。

存储数据用文件就行了,为什么还要有数据库?

一般文件确实提供了数据的存储功能,但是文件并没有提供非常好的数据管理能力(用户角度)。

数据库本质:对数据内容存储的一套解决方案,你给我字段或要求,我(数据库)给你直接返回结果。

文件保存有如下缺点:

  1. 文件的安全性问题;
  2. 文件不利于数据查询和管理;
  3. 文件不利于存储海量数据;
  4. 文件在程序控制中不方便。

使用案例

  • 创建数据库
create database helloworld;

建立数据库,本质就是linux下的一个目录。

  • 使用数据库
use helloworld;
  • 创建数据库表
create table student(id int,name varchar(32),gender varchar(32)
);

在数据库内建立表,本质就是在Linux下创建对应的文件即可!

  • 表中插入数据
insert into student (name, age, gender) values ('姓名',20,'男');
  • 查询表中数据
select * from student;

这个工作实际上是mysqld帮我们做的。数据库本质也是文件,只不过这些文件并不由程序员直接操作,而是由数据库服务帮我们进行操作。

服务器,数据库,表关系

数据逻辑存储

SQL分类

  1. DDL,数据定义语言,用来维护存储数据的结构代表指令:create、drop、alter;
  2. DML,数据操纵语言,用来对数据进行操作的代表指令:insert、delete、update;其中还包括数据查询语言,代表指令select;
  3. DCL,数据控制语言,主要负责权限管理和事务代表指令:grant,revoke、commit。

存储引擎

存储引擎是:数据库管理系统如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。其中,最常用的是InnoDB和MylSAM。

库的操作

  • 创建数据库:create database db_name; -- 本质就是在/var/lib/mysql创建一个目录
  • 删除数据库:drop database db_name; -- 删除目录

字符集和校验规则

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

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

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

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

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

查看数据库支持的字符集

show charset;

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

show collation;

指定编码常见数据库

1.创建名为d1的数据库,当没有指定字符集和校验规则时,系统默认采用默认字符集:utf8,校验规则:utf8_general_ci;        

create database d1;

2.创建一个使用utf8字符集的d2数据库;

create database d2 charset=utf8;

3.创建一个utf8字符集,并指定检验集utf8_general_ci(这种不区分大小写)的d3数据库

create database d3 charset=utf8 collate utf8_general_ci;

 校验规则对数据库的影响

  • 不区分大小写:校验规则使用utf8_general_ci;
  • 区分大小写:校验规则使用utf8_bin;

采用哪种校验规则,会对查询结果或排序结果有影响。

操纵数据库

数据库删除

drop database [if exists] db_name;

在执行删除数据库操作后,里面的数据表都会被删除,所以,不要随意删除数据库,最好做备份再删除。

查看数据库

show database;

显示创建语句

show create database db_name;

查看当前在哪个数据库

select database();

修改数据库

alter database db_name charset=gbk collate gbk_chinese_ci;

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

库的备份与恢复

备份

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

例如,我们将数据库test备份,形成test.sql,test.sql中其实是我们整个创建数据库,建表,导入数据的语句都放在这个文件中。

还原

source 文件路径;

注意:

  • 如果备份的是数据库中的一张表,那么这样做:
mysqldump -u root -p 数据库名 表名1 表名2 > 路径
  • 同时备份多个数据库
mysqldump -u root -p -B 数据库名1 数据库名2 ... > 数据库存放路径
  • 如果备份一个数据库时,没有带上-B参数,在恢复数据库时,需要先创建空数据库(可以换成别的名字),然后使用数据库,再使用source还原。

查看连接情况

show processlist;

可以告诉当前有哪些用户连接到我们的MySQL,这可以帮助我们看有没有异常用户,是不是数据库被入侵了。

表的操作

创建表

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

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

下面创建一个表实例:

创建表的存储引擎是InnoDB。

存储引擎是MyIsam。(在当前云服务器上,要使用utf8mb4而不能utf8)

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

查看表

查看表结构

desc 表名;

查看表的更详细信息

加\G可以清晰看到主要字段。

修改表

修改表名 

关于表的修改,我们需要有表的增加列,删除列,修改列,修改表名字,修改列名字等。 

alter table user1 rename to user;

案例:

  • 先向表中插入两条记录:
insert into user values(1, '张三', '123456', '1');
insert into user values(1, '李四', '54321', '2');
  • 在user中添加一个字段,用于保存图片路径
mysql> alter table user add image_path varchar(200) comment '这个是图片路径' after sex;

  • 修改name,将其长度修改为60,

修改的结果是,把原来name所有的属性用新设置的属性全都覆盖掉了。

  • 删除password列

注意,删除字段及其对应的列数据全都没了。

  • 修改表名为User

其中,to可以省略。

  • 修改表中某一列的名称。
alter table User change name xingming varchar(60) COLLATE utf8mb4_general_ci DEFAULT NULL;

其中,新名称xingming后面必须加上对应的属性(可以通过show create table User;查询)。

删除表

温馨提示:不要轻易修改表名字以及列名字,如果一改,那上层所有都得改。

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

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

相关文章

three.js用粒子使用canvas生成的中文字符位图材质

three.js用粒子使用canvas生成中文字符材质 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Three.…

unity实现回旋镖函数

最近学习unity2D&#xff0c;想实现一个回旋镖武器&#xff0c;发出后就可以在角色周围回旋。 一、目标 1.不是一次性的&#xff0c;扔出去、返回、没有了&#xff1b;而是扔出去&#xff0c;返回到角色后方相同距离&#xff0c;再次返回&#xff1b;再次返回&#xff0c;永远…

Cursor 帮你写一个小程序

Cursor注册地址 首先下载客户端 点击链接下载 1 打开微信开发者工具创建一个小程序项目 选择TS-基础模版 官方 2 然后使用Cursor打开小程序创建的项目 3 在CHAT聊天框输入自己的需求 比如 小程序功能描述&#xff1a;吃什么助手 项目名称&#xff1a; 吃什么小程序 功能目标…

oracle比较一下统计信息差异吧

统计信息发生了哪些变化&#xff1f; 从上次收集到最近一次收集有什么不同&#xff1f; set long 999999 longc 99999 line 100 select report, maxdiffpct from table(dbms_stats.diff_table_stats_in_history(SYS,T1,to_timestamp(2025-01-22 09:01:46,YYYY-MM-DD hh24:mi:s…

STM32 LED呼吸灯

接线图&#xff1a; 这里将正极接到PA0引脚上&#xff0c;负极接到GND&#xff0c;这样就高电平点亮LED&#xff0c;低电平熄灭。 占空比越大&#xff0c;LED越亮&#xff0c;占空比越小&#xff0c;LED越暗 PWM初始化配置 输出比较函数介绍&#xff1a; 用这四个函数配置输…

机器人基础深度学习基础

参考&#xff1a; &#xff08;1&#xff09;【具身抓取课程-1】机器人基础 &#xff08;2&#xff09;【具身抓取课程-2】深度学习基础 1 机器人基础 从平面二连杆理解机器人学 正运动学&#xff1a;从关节角度到末端执行器位置的一个映射 逆运动学&#xff1a;已知末端位置…

低代码产品表单渲染架构

在React和Vue没有流行起来的时候&#xff0c;低代码产品的表单渲染设计通常会使用操作Dom的方式实现。 下面是一个表单的例子&#xff1a; 产品层 用户通过打开表单&#xff0c;使用不同业务场景业务下的表单页面&#xff0c;中间的Render层就是技术实现。 每一个不同业务的表单…

【教学类-89-01】20250127新年篇01—— 蛇年红包(WORD模版)

祈愿在2025蛇年里&#xff0c; 伟大的祖国风调雨顺、国泰民安、每个人齐心协力&#xff0c;共同经历这百年未有之大变局时代&#xff08;国际政治、AI技术……&#xff09; 祝福亲友同事孩子们平安健康&#xff08;安全、安全、安全&#xff09;、巳巳如意&#xff01; 背景需…

SpringBoot统一数据返回格式 统一异常处理

统一数据返回格式 & 统一异常处理 1. 统一数据返回格式1.1 快速入门1.2 存在问题1.3 案列代码修改1.4 优点 2. 统一异常处理 1. 统一数据返回格式 强制登录案例中,我们共做了两部分⼯作 通过Session来判断⽤⼾是否登录对后端返回数据进⾏封装,告知前端处理的结果 回顾 后…

Hive:日志,hql运行方式,Array,行列转换

日志 可以在终端通过 find / | grep hive-log4j2 命令查找Hive的日志配置文件 这些文件用于配置Hive的日志系统。它们不属于系统日志也不属于Job日志&#xff0c;而是用于配置Hive如何记录系统日志和Job日志, 可以通过hive-log4j2 查找日志的位置 HQL的3种运行方式 第1种就是l…

mamba论文学习

rnn 1986 训练速度慢 testing很快 但是很快就忘了 lstm 1997 训练速度慢 testing很快 但是也会忘&#xff08;序列很长的时候&#xff09; GRU实在lstm的基础上改进&#xff0c;改变了一些门 transformer2017 训练很快&#xff0c;testing慢些&#xff0c;时间复杂度高&am…

二叉树介绍

一.树的概念 树的图&#xff1a; 1.结点的度&#xff1a;一个结点含有子树的个数称为该结点的度&#xff1b; 如上图&#xff1a;A的度为6 2.树的度&#xff1a;一棵树中&#xff0c;所有结点度的最大值称为树的度&#xff1b; 如上图&#xff1a;树的度为6 3.叶子结点或终…

【HarmonyOS之旅】基于ArkTS开发(三) -> 兼容JS的类Web开发(一)

目录 1 -> 概述 1.1 -> 整体架构 2 -> 文件组织 2.1 -> 目录结构 2.2 -> 文件访问规则 2.3 -> 媒体文件格式 3 -> js标签配置 3.1 -> pages 3.2 -> window 3.3 -> 示例 4 -> app.js 4.1 -> 应用生命周期 4.2 -> 应用对象6…

SpringCloud基础二(完结)

HTTP客户端Feign 在SpringCloud基础一中&#xff0c;我们利用RestTemplate结合服务注册与发现来发起远程调用的代码如下&#xff1a; String url "http://userservice/user/" order.getUserId(); User user restTemplate.getForObject(url, User.class);以上代码就…

什么是长短期记忆网络?

一、概念 长短期记忆网络&#xff08;Long Short-Term Memory, LSTM&#xff09;是一种特殊的循环神经网络&#xff08;RNN&#xff09;&#xff0c;旨在解决标准RNN在处理长序列时的梯度消失和梯度爆炸问题。LSTM通过引入三个门&#xff08;输入门、遗忘门和输出门&#xff09…

LangChain的开发流程

文章目录 LangChain的开发流程开发密钥指南3种使用密钥的方法编写一个取名程序 LangChain表达式 LangChain的开发流程 为了更深人地理解LangChain的开发流程&#xff0c;本文将以构建聊天机器人为实际案例进行详细演示。下图展示了一个设计聊天机器人的LLM应用程序。 除了Wb服务…

【Numpy核心编程攻略:Python数据处理、分析详解与科学计算】1.20 极值追踪:高效获取数据特征的秘诀

1.20 极值追踪&#xff1a;高效获取数据特征的秘诀 1.20.1 目录 #mermaid-svg-RBxy2YCCN23ydzFu {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-RBxy2YCCN23ydzFu .error-icon{fill:#552222;}#mermaid-svg-RBxy2YC…

Vscode的AI插件 —— Cline

简介 vscode的一款AI辅助吃插件&#xff0c;主要用来辅助创建和编辑文件&#xff0c;探索大型项目&#xff0c;使用浏览器并执行终端命令&#xff08;需要多个tokens&#xff09;&#xff0c;可以使用模型上下文协议&#xff08;MCP&#xff09;来创建新工具并扩展自己(比较慢…

C++ unordered_map和unordered_set的使用,哈希表的实现

文章目录 unordered_map&#xff0c;unorder_set和map &#xff0c;set的差异哈希表的实现概念直接定址法哈希冲突哈希冲突举个例子 负载因子将关键字转为整数哈希函数除法散列法/除留余数法 哈希冲突的解决方法开放定址法线性探测二次探测 开放定址法代码实现 哈希表的代码 un…

c#使用log4Net配置日志文件

1.# 写一个通用类 LogHelper using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using log4net;namespace WindowsFormsApplication22 {public class LogHelper{static ILog mylog LogManager.GetLogge…