【MySQL】数据库和表的操作

数据库和表的操作

  • 一、数据库的操作
    • 1. 创建数据库
    • 2. 字符集和校验规则
      • (1)查看系统默认字符集以及校验规则
      • (2)查看数据库支持的字符集
      • (3)查看数据库支持的字符集校验规则
      • (4)校验规则对数据库的影响
    • 3. 操纵数据库
      • (1)查看数据库
      • (2)显示创建的语句
      • (3)修改数据库
    • 4. 数据库删除
    • 5. 备份和恢复
      • (1)备份数据库
      • (2)还原
      • (3)拓展
    • 6. 查看连接情况
  • 二、表的操作
    • 1. 创建表
    • 2. 查看表
    • 3. 查看表结构
    • 4. 修改表
    • 5. 删除表

一、数据库的操作

1. 创建数据库

语法:CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [, create_specification] ...]

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

说明:

  • 大写的表示关键字,mysql 不区分大小写,所以也可以用小写
  • [] 是可选项
  • CHARACTER SET: 指定数据库采用的字符集
  • COLLATE: 指定数据库字符集的校验规则

假设现在我们现在需要创建一个名为 d1 的数据库,首先我们先查看一下数据库,查看数据库:show databases;

在这里插入图片描述

下面开始创建 d1 数据库:create database d1;

在这里插入图片描述

如上,d1 数据库就创建好了。

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

  • 创建一个使用 utf8 字符集的 d2 数据库:create database d2 charset=utf8;

  • 创建一个使用 utf8 字符集,并带校对规则的 d3 数据库:create database d3 charset=utf8 collate utf8_general_ci;

创建好如下:

在这里插入图片描述

我们在前面也说过,创建一个数据库其实就是在 Linux 下创建一个目录,这里就不再重复介绍了。

2. 字符集和校验规则

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

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

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

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

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

		show variables like 'character_set_database';  # 默认字符集show variables like 'collation_database';      # 检验规则

如下:

在这里插入图片描述

(2)查看数据库支持的字符集

		show charset;

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

		show collation;

(4)校验规则对数据库的影响

  • 不区分大小写

创建一个数据库,校验规则使用 utf8_ general_ ci (不区分大小写,即在检验的时候不严格匹配,不对大小写字母进行区分)

		create database test1 collate utf8_general_ci;

随后我们需要使用这个数据库:use test1

然后我们为这个数据库创建一张表,并插入一些数据,创建表和插入的语法我们先不做介绍,后面再介绍;如下:

在这里插入图片描述

接下来我们对这个表的插入结果进行查看,注意,该表的校验方法是不进行区分大小写进行匹配的;所以我们先查看整个表的情况:select * from for_test;

在这里插入图片描述

接下来我们筛选出 a 这个字符:select * from for_test where name='a';

在这里插入图片描述

我们可以看到,数据库在匹配 a 这个字符的时候不进行大小写区分,无论大写还是小写都给我们显示出来了。

  • 区分大小写

创建一个数据库,校验规则使用 utf8_ bin (区分大小写,校验时按照严格匹配的方式,区分大小写)

我们按照上面的方式进行创建,如下图:

在这里插入图片描述

接下来我们查看该表的数据:

在这里插入图片描述

接下来我们筛选出 a 字符:

在这里插入图片描述

如上图,因为该数据库的检验规则为 utf8_ bin,进行区分大小写的方式进行严格匹配,所以筛选出来的字符 a 就是字符 a.

3. 操纵数据库

(1)查看数据库

		show databases;

在这里插入图片描述

(2)显示创建的语句

		show create database 数据库名;

例如:

在这里插入图片描述

说明:

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

(3)修改数据库

语法:

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

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

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

假设将我们上面创建的 test1 数据库的字符集改成 gbkalter database test1 charset=gbk;

在这里插入图片描述

如上图 test1 数据库的字符集就修改成了 gbk.

4. 数据库删除

语法:

		DROP DATABASE [IF EXISTS] db_ name;

例如我们删掉我们前面建的 test2 数据库:drop database test2;

如下:

在这里插入图片描述

如上图,test2 数据库就被删除了。

执行删除之后的结果:

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

5. 备份和恢复

(1)备份数据库

在备份数据库之前我们先需要退出 mysql.

语法:

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

其中密码部分我们可以不在命令行输入,当我们执行这条命令的时候命令行会提示我们输入。

例如我们把 test1 库备份到文件中:mysqldump -P3306 -uroot -p -B test1 > /home/lmy/test1.sql

在这里插入图片描述

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

接下来我们进入 mysql 中,把这个数据库删掉:

在这里插入图片描述

如上图,test1 库就被我们删除了,接下来我们进行还原。

(2)还原

语法:

		source 数据库备份的文件路径;

我们在 mysql 中输入指令:source /home/lmy/test1.sql; 即可在 mysql 中恢复 test1 库:

在这里插入图片描述

(3)拓展

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

		mysqldump -uroot -p 数据库名 表名1 表名2 > 备份文件路径

如果同时备份多个数据库,如下:

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

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

6. 查看连接情况

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

语法:

		show processlist;

例如:

在这里插入图片描述

二、表的操作

1. 创建表

语法:

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

在创建表之前需要指定数据库,即使用:use 数据库; 为该数据库创建表。

注意,数据库的数据类型我们暂时先不介绍,后续会介绍。

说明:

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

例如我们创建一个 users 表,里面存储用户的 id用户名密码生日

		create table users(-> id int,-> name varchar(20) comment '用户名',-> password char(20) comment '密码',-> birther date comment '生日'-> ) character set utf8 engine MyISAM;

说明:不同的存储引擎,创建表的文件不一样。users 表存储引擎是 MyISAM ,在数据库目录中有三个不同的文件,我们可以进入该目录查看:cd /var/lib/mysql/d1,分别是:

在这里插入图片描述

其中,它们分别表示:

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

db.opt 则是该数据库对应的字符集和检验规则。

2. 查看表

上面我们已经创建好了一张 users 表,此时我们可以查看该数据库有哪些表:show tables;

在这里插入图片描述

3. 查看表结构

语法:desc 表明;

例如查看 users 表的结构:

在这里插入图片描述

以上就是表的结构中的介绍,我们后面会详细介绍每一列的功能的。

4. 修改表

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

		ALTER TABLE tablename ADD (column datatype [DEFAULT expr][,columndatatype]...);  # 添加ALTER TABLE tablename MODIfy (column datatype [DEFAULT expr][,columndatatype]...);  # 修改ALTER TABLE tablename DROP (column);  # 删除

例如:

先在 users 表添加两条记录:

	mysql> insert into users values(1, 'a', 'b', '2000-01-01'), -> (2, 'c', 'd', '2000-01-02');

在这里插入图片描述

  • 在 users 表添加一个字段,用于保存图片路径:alter table users add assets varchar(100) comment '图片路径' after birther;

在这里插入图片描述

插入新字段后,我们查看原表的数据,对原来表中的数据没有影响:

在这里插入图片描述

  • 修改 name,将其长度改成 60: alter table users modify name varchar(60);

在这里插入图片描述

  • 删除 password 列: alter table users drop password;

在这里插入图片描述

我们再查看表中的数据,发现 password 这一列的数据都不见了:

在这里插入图片描述

所以删除字段一定要小心,删除字段及其对应的列数据都没了。

  • 修改表名为 employee: alter table users rename to employee; ,其中 to 可以省略

在这里插入图片描述

  • 将 name 列修改为 xingming: alter table employee change name xingming varchar(60); ,新字段需要完整定义

在这里插入图片描述

5. 删除表

语法:DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...

例如:

在这里插入图片描述

再次查看:

在这里插入图片描述

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

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

相关文章

Powershell Install 一键部署Openssl+certificate证书创建

前言 Openssl 是一个方便的实用程序,用于创建自签名证书。您可以在所有操作系统(如 Windows、MAC 和 Linux 版本)上使用 OpenSSL。 Windows openssl 下载 前提条件 开启wmi,配置网卡,参考 自签名证书 创建我们自己的根 CA 证书和 CA 私钥(我们自己充当 CA)创建服务器…

【蓝桥杯嵌入式】新建工程 | 点亮LED | LCD配置

目录 源代码 硬件资源 产品图片 硬件布局 资源配置表 跳线 下载方式 新建工程 点亮LED code 函数调用 LED初始化 Delay点灯 流水灯 积累流水灯 整合效果 LCD移植 lcd.c lcd.h fonts.h LCD初始化 main.c预览 闲话 源代码 网址:后续会上传…

FL Studio版本升级-FL Studio怎么升级-FL Studio升级方案

已经是新年2024年了,但是但是依然有很多朋友还在用FL Studio12又或者FL Studio20,今天这篇文章教大家如何升级FL Studio21 FL Studio 21是Image Line公司开发的音乐编曲软件,除了软件以外,我们还提供了FL Studio的升级服务&#…

设计模式2-对象池模式

对象池模式,Object Pool Pattern,当你的应用程序需要频繁创建和销毁某种资源(比如数据库连接、线程、socket连接等)时,Object Pool 设计模式就变得很有用。它通过预先创建一组对象并将它们保存在池中,以便在…

海量数据处理商用短链接生成器平台 - 3

第三章 商用短链平台实战-账号微服务流量包设计 第1集 账号微服务和流量包数据库表索引规范讲解 简介:账号微服务和流量包数据库表索引规范讲解 索引规范 主键索引名为 pk_字段名; pk即 primary key;唯一索引名为 uk_字段名;uk 即 unique key普通索引…

Linux 36.2@Jetson Orin Nano基础环境构建

Linux 36.2Jetson Orin Nano基础环境构建 1. 源由2. 步骤2.1 安装NVIDIA Jetson Linux 36.2系统2.2 必备软件安装2.3 基本远程环境2.3.1 远程ssh登录2.3.2 samba局域网2.3.3 VNC远程登录 2.4 开发环境安装 3. 总结 1. 源由 现在流行什么,也跟风来么一个一篇。当然&…

vue3 中使用pinia 数据状态管理(在Taro 京东移动端框架中的使用)

1.pinia 介绍 pinia 是 Vue 的存储库,它允许您跨组件/页面共享状态。就是和vuex一样的实现数据共享。 依据Pinia官方文档,Pinia是2019年由vue.js官方成员重新设计的新一代状态管理器,更替Vuex4成为Vuex5。 Pinia 目前也已经是 vue 官方正式的…

[机器学习]K-means——聚类算法

一.K-means算法概念 二.代码实现 # 0. 引入依赖 import numpy as np import matplotlib.pyplot as plt # 画图依赖 from sklearn.datasets import make_blobs # 从sklearn中直接生成聚类数据# 1. 数据加载 # 生成(n_samples:样本点,centers&…

python+ flask+MySQL旅游数据可视化81319-计算机毕业设计项目选题推荐(免费领源码)

摘要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题。针对旅游数据可视化等问题,对旅游数据…

深入解析 Spring 事务机制

当构建复杂的企业级应用程序时,数据一致性和可靠性是至关重要的。Spring 框架提供了强大而灵活的事务管理机制,成为开发者处理事务的首选工具。本文将深入探讨 Spring 事务的使用和原理,为大家提供全面的了解和实际应用的指导。 本文概览 首…

IAR报错:Error[Pa045]: function “halUartInit“ has no prototype

在IAR工程.c文件末尾添加一个自己的函数,出现了报错Error[Pa045]: function "halUartInit" has no prototype 意思是没有在开头添加函数声明,即void halUartInit(void); 这个问题我们在keil中不会遇到,这是因为IAR编译器规则的一…

编程实例分享,手表养护维修软件钟表维修开单管理系统教程

编程实例分享,手表养护维修软件钟表维修开单管理系统教程 一、前言 以下教程以 佳易王钟表维护维修管理系统软件V16.0为例说明 软件文件下载可以点击最下方官网卡片——软件下载——试用版软件下载 左侧为导航栏, 1、系统设置:可以设置打…

DataBinding源码浅析---初始化过程

作为Google官方发布的支持库,DataBinding实现了UI组件和数据源的双向绑定,同时在Jetpack组件中,也将DataBinding放在了Architecture类型之中。对于DataBinding的基础使用请先翻阅前两篇文章的详细阐述。本文所用代码也是建立在之前工程基础之…

Android 移动应用开发 创建第一个Android项目

文章目录 一、创建第一个Android项目1.1 准备好Android Studio1.2 运行程序1.3 程序结构是什么app下的结构res - 子目录(所有图片、布局、字AndroidManifest.xml 有四大组件,程序添加权限声明 Project下的结构 二、开发android时,部分库下载异…

模型 煤气灯效应

系列文章 主要是 分享 思维模型,涉及各个领域,重在提升认知。情感操控,认知扭曲。 1 煤气灯效应的应用 1.1 电影《煤气灯下》故事 宝拉继承了姨妈的一大笔遗产,居心不良的安东得知后,就动起了这笔钱的念头。安东利用…

U3D记录之FBX纹理丢失问题

今天费老大劲从blender建了个模型,然后导出进去unity 发现贴图丢失 上网查了一下 首先blender导出要改设置 这个path mode要copy 然后unity加载纹理也要改设置 这里这个模型的纹理load要改成external那个模式 然后就有了,另外这个导出还有好多选项可…

HCIA-HarmonyOS设备开发认证V2.0-3.2.轻量系统内核基础-中断管理

目录 一、中断基础概念二、中断管理使用说明三、中断管理模块接口四、代码分析(待续...)坚持就有收获 一、中断基础概念 在程序运行过程中,出现需要由 CPU 立即处理的事务时,CPU 暂时中止当前程序的执行转而处理这个事务&#xf…

下个目标,突破 10w+

转眼间,2023 年已经过去了,今天是大年初四,还有十来天就马上除夕了,迈入新的一年。 回顾 2023 年,如果让我给自己打分,我算是 7.5 分吧。 在这一年了,工作上表现平平,并没有什么突…

Hugging Face 刚刚推出了一款开源的 AI 助手制造工具,直接向 OpenAI 的定制 GPT 挑战

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

sqli靶场完结篇!!!!

靶场,靶场,一个靶场打一天,又是和waf斗智斗勇的一天,waf我和你拼啦!! 31.多个)号 先是一套基本的判断 ,发现是字符型,然后发现好像他什么都不过滤?于是开始poc 3213131…