MySQL之库和表操作

目录

一:对库的操作

1.创建数据库

2.查看数据库列表 

3.显示创建数据库的语句 

4.删除数据库

5.字符集与校验集

6.确认当前所处的数据库

7.修改数据库 

8.备份和恢复

9.查看连接情况

 二:对表的操作

1.创建表

2.查看表

3.删除表 

4.修改表 

 接下来的日子会顺顺利利,万事胜意,生活明朗-----------林辞忧

一:对库的操作

1.创建数据库

语法:create database (if not exists) 库名 (charset=编码集) (collate 校验集);

注:(1).此处及后续()中的内容可写可不写

       (2).编码集和校验集后续介绍

       (3).当我们创建数据库没有指定字符集和校验规则时,系统使用默认字符集:utf8,

         校验规则是:utf8_general_ ci

mysql> create database d1;
mysql> create database if not exists d2;
Query OK, 1 row affected (0.00 sec)

当对应数据库存在时,则不再创建一个新的;不存在时,则新创建一个 

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

2.查看数据库列表 

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| d1                 |
| hello              |
| mysql              |
| performance_schema |
| sys                |
| test               |
+--------------------+
7 rows in set (0.00 sec)

3.显示创建数据库的语句 

语法: show create database 库名;

mysql> show create database d1;
+----------+-------------------------------------------------------------+
| Database | Create Database                                             |
+----------+-------------------------------------------------------------+
| d1       | CREATE DATABASE `d1` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+-------------------------------------------------------------+
1 row in set (0.00 sec)

说明:

(1).数据库名字的反引号``,是为了防止使用的数据库名刚好是关键字
(2)./*!40100 default.... */ 这个不是注释,表示当前mysql版本大于4.01版本,就执行这句话

4.删除数据库

语法:drop database 库名;

mysql> drop database d1;
Query OK, 0 rows affected (0.03 sec)

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

因此不要随意删除数据库

5.字符集与校验集

在创建数据库时,有两个编码集:数据库字符集和数据库校验集

字符集:数据库未来存储数据采用的编码格式

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

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

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

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

mysql> show variables like 'character_set_database';
+------------------------+-------+
| Variable_name          | Value |
+------------------------+-------+
| character_set_database | utf8  |
+------------------------+-------+
1 row in set (0.00 sec)

mysql> show variables like 'collation_database';
+--------------------+-----------------+
| Variable_name      | Value           |
+--------------------+-----------------+
| collation_database | utf8_general_ci |
+--------------------+-----------------+
1 row in set (0.00 sec)

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

mysql> show charset;

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

mysql> show collation;

(4) 查看每个默认内部的校验规则

mysql> show variables like 'collation_%';
+----------------------+-----------------+
| Variable_name        | Value           |
+----------------------+-----------------+
| collation_connection | utf8_general_ci |
| collation_database   | utf8_general_ci |
| collation_server     | utf8_general_ci |
+----------------------+-----------------+

(5) 使用指定编码创建数据库

创建一个使用utf8字符集的 db2 数据库

create database db2 charset=utf8;

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

create database db3 charset=utf8 collate utf8_general_ci;

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

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

mysql> create database test1 collate utf8_general_ci;

mysql> use test1;

mysql> create table person(name varchar(20));

mysql> insert into person values('a');

mysql> insert into person values('A');

mysql> insert into person values('b');

mysql> insert into person values('B');

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

mysql> create database test2 collate utf8_bin;

mysql> use test2;

mysql> create table person(name varchar(20));

mysql> insert into person values('a');

mysql> insert into person values('A');

mysql> insert into person values('b');

mysql> insert into person values('B');

不区分大小写的查询以及结果

mysql> use test1;

mysql> select * from person where name='a';
+------+
| name |
+------+
| a    |
| A    |
+------+

区分大小写的查询以及结果

mysql> use test2;

mysql> select * from person where name='a';
+------+
| name |
+------+
| a    |
+------+

 可以看出校验集是会影响比较结果的

6.确认当前所处的数据库

mysql> select database();
+------------+
| database() |
+------------+
| test2      |
+------------+

7.修改数据库 

语法:alter database 库名  (charset=字符集) (collate 对应的校验集)

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

mysql> alter database test2 charset=gbk collate gbk_chinese_ci;
Query OK, 1 row affected (0.00 sec)

8.备份和恢复

备份:

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

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

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

备份数据库中的表

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

同时备份多个数据库

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

还原:

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

9.查看连接情况

show processlist;        可以告诉我们当前有哪些用户连接到我们的MySQL 

 二:对表的操作

1.创建表

(1)语法:

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

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

 (2)实例

mysql> create table if not exists t1(
    -> id int,
    -> name varchar(20) comment'用户名',
    -> password char(32) comment'密码',
    -> birthday date comment'生日'
    -> )character set utf8 collate utf8_general_ci engine MyIsam;
Query OK, 0 rows affected (0.01 sec)

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

默认存储引擎是innodb

2.查看表

(1) 显示当前所在数据库有几张表

mysql> show tables;
+-----------------+
| Tables_in_test2 |
+-----------------+
| person          |
| t1              |
+-----------------+

(2) 查看具体一个表的详细信息/表结构信息

语法: desc 表名

mysql> desc t1;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(11)     | YES  |     | NULL    |       |
| name     | varchar(20) | YES  |     | NULL    |       |
| password | char(32)    | YES  |     | NULL    |       |
| birthday | date        | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+

 (3)显示创建表时的详细信息

语法:show create table 表名 \G;

mysql> show create table t1 \G;
*************************** 1. row ***************************
       Table: t1
Create Table: CREATE TABLE `t1` (
  `id` int(11) DEFAULT NULL,
  `name` varchar(20) DEFAULT NULL COMMENT '用户名',
  `password` char(32) DEFAULT NULL COMMENT '密码',
  `birthday` date DEFAULT NULL COMMENT '生日'
) ENGINE=MyISAM DEFAULT CHARSET=utf8

3.删除表 

语法格式:drop table 表名;

mysql> drop table person;
Query OK, 0 rows affected (0.02 sec)

4.修改表 

(1)修改表名为employee

语法: alter table 原表名 rename to 新表名;

mysql> alter table t1 rename to employee;
Query OK, 0 rows affected (0.00 sec)

(2)在指定列后新增一列

语法:alter table 表名 add 新列名 列类型 其它  after 原有列名;

mysql> alter table employee add imagepath varchar(128) comment'图片路径' after birthday;
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc employee;
+-----------+--------------+------+-----+---------+-------+
| Field     | Type         | Null | Key | Default | Extra |
+-----------+--------------+------+-----+---------+-------+
| id        | int(11)      | YES  |     | NULL    |       |
| name      | varchar(20)  | YES  |     | NULL    |       |
| password  | char(32)     | YES  |     | NULL    |       |
| birthday  | date         | YES  |     | NULL    |       |
| imagepath | varchar(128) | YES  |     | NULL    |       |
+-----------+--------------+------+-----+---------+-------+

(3)指定列属性做修改

语法: alter table 表名 modify 列名 新的列属性;

mysql> alter table employee modify name varchar(60);
Query OK, 0 rows affected (0.00 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc employee;
+-----------+--------------+------+-----+---------+-------+
| Field     | Type         | Null | Key | Default | Extra |
+-----------+--------------+------+-----+---------+-------+
| id        | int(11)      | YES  |     | NULL    |       |
| name      | varchar(60)  | YES  |     | NULL    |       |
| password  | char(32)     | YES  |     | NULL    |       |
| birthday  | date         | YES  |     | NULL    |       |
| imagepath | varchar(128) | YES  |     | NULL    |       |
+-----------+--------------+------+-----+---------+-------+

(4) 删除一列

语法:alter table 表名 drop 列名;

mysql> alter table employee drop imagepath;
Query OK, 0 rows affected (0.00 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc employee;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(11)     | YES  |     | NULL    |       |
| name     | varchar(60) | YES  |     | NULL    |       |
| password | char(32)    | YES  |     | NULL    |       |
| birthday | date        | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+

(5) 修改列名称

语法:alter table 表名 change name 新列名以及相关属性;

mysql> alter table employee change name xingming varchar(60);
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc employee;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(11)     | YES  |     | NULL    |       |
| xingming | varchar(60) | YES  |     | NULL    |       |
| password | char(32)    | YES  |     | NULL    |       |
| birthday | date        | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

终端文件管理神器 !!!【送源码】

项目简介 nnn是一款专为命令行爱好者打造的高效终端文件管理器。它以其超小的体积、几乎零配置的要求以及卓越的速度表现而著称。nnn不仅适用于Linux、macOS、BSD等操作系统,还能够在诸如树莓派、Android上的Termux、WSL、Cygwin等多个平台运行。它遵循POSIX标准&am…

Linux——解压大型zip文件报错:bad zipfile offset (local header sig) 的解决方法

一、现象描述 完整一行报错信息: error: invalid compressed data to inflate file #14: bad zipfile offset (local header sig) 二、解决办法 利用 -F 去修复: zip -F xxx.zip --out large.zip得到: 解压: unzip large.zi…

Python爱心射线(完整代码)

目录 系列目录 写在前面​ 完整代码 下载代码 代码分析 写在后面 系列目录 序号直达链接表白系列1Python制作一个无法拒绝的表白界面2Python满屏飘字表白代码3

代码随想录训练营Day2 | 209.长度最小的子数组 | 59.螺旋矩阵II | 58. 区间和

1. 学习滑动窗口 2.学习标准输入输出模式 3.学习文档代码随想录 (programmercarl.com) 数组总结 Leetcode 209.长度最小的子数组 题目描述: 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 子数组…

Unity Addressables 使用说明(二)管理 Addressables

组织和管理 Addressables 的主要方式是使用组(groups)和配置文件(profiles)。本节概述了如何使用这些工具来有效地管理 Addressables。 【概述】管理 Addressables 在决定如何管理项目中的资源之前,先熟悉资源如何创…

CCF推荐A类会议和期刊总结(计算机网络领域)- 2022

CCF推荐A类会议和期刊总结(计算机网络领域)- 2022 在中国计算机学会(CCF)的推荐体系中,A类会议和期刊代表着计算机网络领域的顶尖水平。这些会议和期刊不仅汇集了全球顶尖的研究成果,还引领着该领域的前沿发…

Python操作ES集群API(增删改查等)

前言:本博客仅作记录学习使用,部分图片出自网络,如有侵犯您的权益,请联系删除 学习B站博主教程笔记: 最新版适合自学的ElasticStack全套视频(Elk零基础入门到精通教程)Linux运维必备—Elastic…

【信号】信号的保存

信号的保存 信号其他相关常见概念 实际执行信号的处理动作称为信号递达(Delivery) 信号从产生到递达之间的状态,称为信号未决(Pending)。 进程可以选择阻塞 (Block )某个信号。 被阻塞的信号产生时将保持在未决状态,直到进程解除对此信号的阻塞,才执行递达的动作.注意,阻塞和…

[数据集][目标检测]智慧农业草莓叶子病虫害检测数据集VOC+YOLO格式4040张9类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):4040 标注数量(xml文件个数):4040 标注数量(txt文件个数):4040 标注…

linux 安装redis

1. 更新系统和安装依赖 sudo apt update sudo apt install build-essential tcl2. 下载 Redis 源码(没有opt文件夹,则先创建opt文件夹) cd /opt wget http://download.redis.io/releases/redis-6.2.6.tar.gz3. 解压和编译 Redis 解压下载的文件,并进入…

Error: PostCSS plugin autoprefixer requires PostCSS 8.

引言 uniapp坑之使用vue-cli 拉去官方模板出错 版本: node:v14.15.0 npm:6.14.8 Vue CLI v5.0.8 拉取官方模板运行直接报错 原因: 通用说明是: autoprefixer 是版本过高 话说官方咋不解决这个插件问题,那位大佬知道原因 解决:…

OJ 括号生成

题目&#xff1a; 数字 n 代表生成括号的对数&#xff0c;请你设计一个函数&#xff0c;用于能够生成所有可能的并且 有效的 括号组合。 示例&#xff1a; 代码分析&#xff1a; class Solution { public://进行回溯调用vector<string> generateParenthesis(int n) {if(…

Vue 项目hash和history模式打包部署与服务器配置

你好&#xff0c;我是沐爸&#xff0c;欢迎点赞、收藏、评论和关注。 在开发 Vue 项目时&#xff0c;Vue Router 提供了两种模式来创建单页面应用&#xff08;SPA&#xff09;的 URL&#xff1a;hash 模式和 history 模式。 简单说下两者的主要区别&#xff1a; hash 模式下的…

麦克风哪款好,领夹麦克风十大品牌,无线领夹麦克风推荐

在直播与Vlog盛行的今天&#xff0c;一款高质量的无线领夹麦克风无疑是内容创作者们提升音质、展现专业度的关键装备。传统有线麦克风及部分品质参差的无线领夹麦&#xff0c;虽能在一定程度上传递声音&#xff0c;却难以克服信号干扰、音质失真等技术瓶颈。更要警惕的是&#…

智能家居系统(基于STM32F103C8T6标准库+FreeRTOS+Qt串口开发实现)

视频演示&#xff1a;基于STM32F103C8T6标准库FreeRTOSQt串口开发实现的智能家居项目_哔哩哔哩_bilibili 基于STM32F103C8T6标准库FreeRTOSQt串口开发实现的智能家居项目: https://pan.baidu.com/s/1f41gAfOOnlcQoKoMx3o84A?pwd6j2g 提取码: 6j2g 注&#xff1a;本项目为学习完…

数据结构之红黑树的 “奥秘“

目录&#xff1a; 一.红黑树概念 二. 红黑树的性质 三.红黑树的实现 四.红黑树验证 五.AVL树和红黑树的比较 一.红黑树概念 1.红黑树&#xff0c;是一种二叉搜索树&#xff0c;但在每个结点上增加一个存储位表示结点的颜色&#xff0c;可以是Red或Black。 通过对任何 一条从根…

MySQL--库的操作

文章目录 1.创建数据库2.创建数据库案例3.字符集和校验规则3.1默认字符集3.2默认校验规则3.3查看系统默认字符集以及校验规则3.4查看数据库支持的字符3.5查看数据库支持的字符集校验规则3.6校验规则对数据库的影响不区分大小写查询&#xff1a;排序结果&#xff1a;区分大小写查…

综合案例-数据可视化-地图

一、pyecharts—地图快速入门 假设我们要将6个地区的某种数量在地图上标注出来&#xff0c;首先导入pyecharts包内地图相关模块&#xff0c;然后准备地图数据&#xff08;数据类型是列表&#xff0c;列表的元素类型为元组&#xff09;&#xff0c;然后把准备好的数据添加进地图…

51单片机个人学习笔记11(AT24C02-I2C总线)

前言 本篇文章属于STC89C52单片机&#xff08;以下简称单片机&#xff09;的学习笔记&#xff0c;来源于B站教学视频。下面是这位up主的视频链接。本文为个人学习笔记&#xff0c;只能做参考&#xff0c;细节方面建议观看视频&#xff0c;肯定受益匪浅。 [1-1] 课程简介_哔哩…

Ubuntu查看系统用户信息

0 Preface/Foreword 1 查看方式 1.1 查看系统用户 getent passwd getent: Get entries for Name Service Switch Libraries. 该命令会列出系统上所有用户的详细信息&#xff0c;包括用户名、密码、用户ID&#xff08;UID&#xff09;、组ID&#xff08;GID&#xff09;、用户描…