MySQL——数据库、表的操作

news2025/3/3 4:42:38

文章目录

  • 数据库的操作
    • 创建数据库
    • 创建数据库例子
    • 字符集和校验规则
    • 查看数据库支持的字符集
    • 查看默认的字符校验规则
    • 校验规则对数据库的影响
    • 查看数据库
      • 显示详细的创建数据库语句
    • 修改数据库
    • 删除数据库
    • 查看连接情况
  • 表的操作
    • 创建表
    • 显示创建表的详细过程
    • 不同的数据库引擎
    • 查看表结构
    • 修改表
    • 删除表

数据库的操作

创建数据库

语法:
create database [if not exists] db_name [create_specification] [create_specifation];
create_specifation:
[default] character set charset_name
[default] collate collation_name

说明:

  • 大小写并不是特别区分,标准建议关键字采用大写,但是小写的辨识度更高
  • [ ]方括号是可选项
  • character set:指定数据库采用的字符集
  • collate:指定数据库字符集采用的校验规则

创建数据库例子

如果修改了/etc/my.cnf下的文件,我们是不用带上默认选项的,他会自动默认使用字符集utf8,校验规则utf8_general_ci

字符集和校验规则

查看字符集和校验规则:
show variables like 'character_set_database';
show variables like 'collation_database';
结果演示:
在这里插入图片描述

查看数据库支持的字符集

show charset;
结果展示:
在这里插入图片描述
字符集主要控制用什么语言,比如utf8可以适配中文,不会出现报错。

查看默认的字符校验规则

show collation
结果展示:
在这里插入图片描述

校验规则对数据库的影响

例子:建立两个数据库,在里面分别见两张表,然后查询

utf8_general_ci不区分大小写:

mysql> create database utf8_test collate utf8_general_ci;
Query OK, 1 row affected (0.00 sec)
mysql> use utf8_test;
Database changed
mysql> create table person (name varchar(20));
Query OK, 0 rows affected (0.02 sec)

mysql> desc person;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| name  | varchar(20) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
1 row in set (0.01 sec)

mysql> insert into person values ('a');
Query OK, 1 row affected (0.00 sec)

mysql> insert into person values ('A');
Query OK, 1 row affected (0.01 sec)

mysql> insert into person values ('b');
Query OK, 1 row affected (0.01 sec)

mysql> insert into person values ('B');
Query OK, 1 row affected (0.01 sec)

mysql> select *  from person where name='a';
+------+
| name |
+------+
| a    |
| A    |
+------+
2 rows in set (0.00 sec)

utf8_bin区分大小写:

mysql> use utf8_bin_test;
Database changed
mysql> show tables;
Empty set (0.00 sec)

mysql> create table person(name varchar(20));
Query OK, 0 rows affected (0.03 sec)

mysql> insert into person values ('a');
Query OK, 1 row affected (0.01 sec)

mysql> insert into person values ('A');
Query OK, 1 row affected (0.01 sec)

mysql> insert into person values ('b');
Query OK, 1 row affected (0.01 sec)

mysql> insert into person values ('B');
Query OK, 1 row affected (0.01 sec)

mysql> select * from person where name ='a';
+------+
| name |
+------+
| a    |
+------+
1 row in set (0.00 sec)

查看数据库

show databases;注意带s,表示复数。
在这里插入图片描述

显示详细的创建数据库语句

show create database name
在这里插入图片描述
说明:

  • 数据库名字采用反引号,是为了防止使用的数据库名字刚好是关键字。
  • /* !40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_bin * /这不是注释!!这表示当前数据库版本大于4.01,就执行这句话。

修改数据库

语法:
alter database db_name [alter_specification] [alter_specification];
alter_specification:
[default] character set charset_name
[default] collate collate_name

说明:对于数据库的修改主要是指修改数据库的字符集、校验规则

在这里插入图片描述
注意:我们一般强烈不建议修改数据库名字以及属性!

删除数据库

在这里插入图片描述
注意:不要随意删除数据库!
执行删除之后的结果:数据库内部看不到对应的数据库。
对应的数据库文件夹被删除,级联删除,里面的数据表全部被删。

查看连接情况

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

表的操作

创建表

语法:
create table [if not exists] table_name( field1 datatype, field2 datatype, field3 datatype ) charset set 字符集 collate 校验规则 engine 存储引擎;

说明:

  • 先是列,再是类型;先是名字,再是类型。语义优先!
  • 其他见名知意。

实例:
在这里插入图片描述

显示创建表的详细过程

通过show create table table_name \G;
\G去除一些格式,方便查看
在这里插入图片描述

不同的数据库引擎

默认采用InnoDB,stu表在数据库中对应2个文件
在这里插入图片描述
而我们可以看一下采用MyISAM,它对应的表下面有3个文件
在这里插入图片描述

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

查看表结构

desc table_name;
在这里插入图片描述

修改表

我们可以对于某表的结构、字段名字、字段大小、字段类型等等作后续修改,但是强烈不建议修改,在创建的时候最好声明定义好表的结构。
语法:
alter table table_name add(column datatype );
alter table table_name modify(column datatype );
alter table table_name drop(column);

现在有这样一张表:
在这里插入图片描述

我们在其基础上进行修改:

1️⃣在表中增加一个字段,用于保存图片路径。
在这里插入图片描述
如果你的表中已经有了数据了,那么新增加的字段默认就是NULL。

还可以控制新增列的位置:
在这里插入图片描述
注意:只能有after,没有before的说法!我们特别不建议,将一个字段往前插入,最好还是在末位插入新字段。

2️⃣删除一个字段,直接删除名字即可
在这里插入图片描述
注意:删除的时候,如果某列有数据的,那么数据也会没有。

3️⃣调整一个字段
在这里插入图片描述
4️⃣修改名字

  • rename修改表名字

在这里插入图片描述

  • change修改列名字

在这里插入图片描述

删除表

语法:
drop table table_name;
在这里插入图片描述

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

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

相关文章

【C语言】操作符与优先级详解

C的操作符 文章目录C的操作符前言一、算术操作符二、移位操作符三、位操作符四、赋值操作符五、单目操作符六、条件操作符七、逻辑操作符八、条件操作符九、逗号表达式十、下标引用、函数调用和结构成员十一、表达式求值11.1 隐式类型转换12.2 算术转换12.2 操作符的属性总结前…

解决Vue前后端跨域问题的多种方式

1 前言 本文主要介绍借助解决Vue前后端跨域问题的几种方式 说到ajax请求,就不得不说下xhr(XMLHttpRequest)了,它可以说是鼻祖,但是实际开发中,我们不会直接使用它,而是进行二次封装或者使用成熟的第三方封装&#xf…

Zookeeper:分布式过程协同技术

Zookeeper 是一个高性能的分布式一致系统,在分布式系统中有着广泛的应用。基于它,可以实现诸如“分布式同步”、“配置管理”、“命名空间管理”等众多功能,是分布式系统中常见的基础系统。Zookeeper 主要用来解决分布式集群中应用系统的一致…

http,https,ip,tcp,udp

http:超文本传输协议,明文传输,不安全 超文本:早期,文本存在本地,文本可以被计算机解析为二进制的数据包,随着发展,出现图片,视频,链接等,成为超文本 传输&a…

批量生成Excel文件,可以按模板进行自动生成

目录 一、文件目录结构 二、编辑生成名单 三、编辑模板 四、生成操作 软件描述:根据Excel模板 和 生成名单 可以批量生成相同格式的文件,可以应用于考核、工资单等文件的批量生成。方便快捷,有需求的小伙伴可以到最下面点击下载 注&#…

mysql 客户端简单搭建

主要使用的是mysql开发包中的api接口 操作流程 1.初始化mysql操作句柄 MYSQL *mysql_init(MYSQL *mysql); 对传人的句柄进行初始化 若传入的句柄为NULL,则内部会动态申请空间,进行初始化,并返回句柄首地址 返回值:若…

基于51单片机的ds18b20数字华氏温度计

资料编号:114 下面是相关功能视频演示: 114-基于51单片机的数字华氏温度计报警(源码仿真全套资料)功能讲解: 采用51单片机采集DS18B20的温度,LCD1602显示,并且可以设置上下限值,超…

Unity UI 框架

开源地址: GitHub - NRatel/NRFramework.UI: 基于 Unity UGUI 的 UI 开发框架基于 Unity UGUI 的 UI 开发框架. Contribute to NRatel/NRFramework.UI development by creating an account on GitHub.https://github.com/NRatel/NRFramework.UI 一、需求/功能要点…

headscale的部署方法和使用教程

headscale的部署方法和使用教程1. headscale文件下载2. 上传并赋予文件权限3. 创建以及修改相关配置文件3.1 创建配置目录:3.2 创建目录用来存储数据与证书:3.3 创建空的 SQLite 数据库文件:3.4 创建 Headscale 配置文件:3.5 创建…

Vue 组件间通信并不是每一次操作都会触发新的通信

需求:新增或者修改都需要组件间立马通信。 操作:把B组件(子组件,这里指的是三级联动组件)的数据传输过来,在A(父组件)组件中处理 即 子传父 这里指的是修改页面或者新增页面三级联动下拉选择完之后 点击 提交 会执行A组件的修改操…

开启安全测试评估赛道,永信至诚发布“数字风洞”产品体系

11月19日,永信至诚产品战略发布会上,面向安全测试评估领域的“数字风洞”产品体系战略发布,标志着永信至诚作为网络靶场和人才建设领军企业,再次以“产品乘服务”的价值体系,开启网络安全测试评估专业赛道。 数字化时代…

MySQL安装

本笔记来自B站黑马程序员讲解的MySQL的使用。 目录 ​编辑 一、MySQL的安装 1、数据库基础概念 2、MySQL下载并安装​编辑 三、启动MySQL 四、连接MySQL数据库 1、使用MySQL提供的客户端命令来连接 2、使用Windows 命令打开: 第一步 配置path的环境变量 第…

uniapp入门:常用事件绑定与数据同步

1.常见事件与事件绑定 1.1点击事件bindtap 1.2 文本输入事件bindinput 1.3 切换事件bindtouchend 2.数据同步 2.1事件回调 2.2逻辑层中page对象中的中数据如何进行改变 2.3页面触发事件如何传参到page中数据 …

ASEMI代理艾赛斯二极管DSA300I100NA,肖特基DSA300I100NA

编辑-Z 艾赛斯硅肖特基二极管DSA300I100NA参数: 型号:DSA300I100NA 最大重复反向阻断电压(VRRM):100V 反向电流、漏极电流(IR):3mA 正向电压降(VF)&…

STM32CubeMX外部中断

建议提前学习:使用STM32CubeMX实现按下按键,电平反转; 目录 EXTI 中断 中断的概念 抢占优先级与响应优先级 中断分组 事件 上升沿,下降沿以及双边沿触发 上升沿,下降沿以及双边沿的概念 上升沿,下…

数据结构-双链表思路解析及代码实现

双链表是单链表的进阶版,单链表是1-2-3-4 一个个排排坐链接,只管向后拉手,其主要思想是当前节点与下一节点的关系,那么双链表就多了一层关系,当前节点不仅和一下一点连起来,也要和上一节点串联起来。与前与…

【全志T113-S3_100ask】13-1 Linux c语言ioctl驱动oled(iic、ssd1306)屏幕

【全志T113-S3_100ask】13-1 Linux C通过ioctl驱动oled[ssd1306]屏幕 背景(一)i2c关键结构体1、i2c_rdwr_ioctl_data结构体2、struct i2c_msg结构体(二)i2c关键代码1、写函数2、读函数(三)对oled的操作&…

深度学习和神经网络的介绍(一)

1、深度学习和神经网络 1.1 深度学习的介绍 目标: 知道什么是深度学习知道深度学习和机器学习的区别能够说出深度学习的主要应用场景知道深度学习的常见框架 1.1.1 深度学习的概念 深度学习是机器学习的分支,是一种以人工神经网络为架构&#xff0c…

计算机网络4小时速成:计算机网络基础,计网组成,计网分类,性能指标,标准化组织,计网结构模型,五层模型

计算机网络4小时速成:计算机网络基础,计网组成,计网分类,性能指标,标准化组织,计网结构模型,五层模型 2022找工作是学历、能力和运气的超强结合体,遇到寒冬,大厂不招人&…

05_TCP并发服务器

知识点1【TCP并发服务器】 1、多线程(常用) 2、解决上述问题:端口复用 仅仅是端口的复用 3、并发服务器 多进程实现 总结: 知识点2【HTTP协议】 HTTP基于TCP 1、HTTP协议的概述 2、Webserver 通信过程 3、Web编程开发 知识…