当前位置:网站首页>三、mysql 存储引擎-建库建表操作
三、mysql 存储引擎-建库建表操作
2022-08-01 22:05:00 【[email protected]】
目录
知识点1:mysql里面的数据库和表都以文件形式存储在linux系统里面
我们在mysql里面创建数据库和表以后,也会生成对应的目录和文件
方法1:直接输入语句 show create database wangsh;
方法2:进入新建库对应的文件夹里面查看db.opt文件的内容也可以查看数据库的字符集内容
将数据库删除以后,linux系统里面对应数据库的那个目录也会删除
知识点1:mysql里面的数据库和表都以文件形式存储在linux系统里面
linux里面一切皆文件,我们在数据库里面创建的数据库和表都是以文件的形式存储于机器里面
[email protected](none) 15:41 mysql>create database sanchuang;
Query OK, 1 row affected (0.01 sec)
[email protected](none) 15:41 mysql>show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sanchuang |
| student |
| sys |
+--------------------+
6 rows in set (0.01 sec)
[email protected](none) 15:41 mysql>use sanchuang;
Database changed
[email protected] 15:41 mysql>show tables;
Empty set (0.00 sec)
[email protected] 15:41 mysql>create table student(id int,name varchar(20));
Query OK, 0 rows affected (0.01 sec)
###################################################
我们在mysql里面创建数据库和表以后,也会生成对应的目录和文件
[[email protected] etc]# cd /data/mysql/
[[email protected] mysql]# ls
auto.cnf ib_buffer_pool localhost.localdomain.err performance_schema server-key.pem
ca-key.pem ibdata1 localhost.localdomain.pid private_key.pem student
ca.pem ib_logfile0 mysql public_key.pem sys
client-cert.pem ib_logfile1 mysql.sock sanchuang
client-key.pem ibtmp1 mysql.sock.lock server-cert.pem
[[email protected] mysql]# cd sanchuang/
[[email protected] sanchuang]# ls
db.opt
[[email protected] sanchuang]# ls
db.opt student.frm student.ibd
[[email protected] sanchuang]# pwd
/data/mysql/sanchuang
[[email protected] sanchuang]#
###################################################
知识点2: 存储引擎是什么?
数据库存储引擎是数据库底层软件组件,数据库管理系统使用数据引擎进行创建、查询、更新和删除数据操作。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎还可以获得特定的功能,许多数据库管理系统都支持多种不同的存储引擎。MySQL 的核心就是存储引擎。
innodb 是MYSQL 的存储引擎(默认的存储引擎)
还有哪些存储引擎?
InnoDB、MyISAM、Memory
myisam
student.frm文件 ---》存储表结构的 frame
student.ibd文件 ---》 innodb data 和index
###################################################
示例:查看数据库里有哪些表:
[email protected] 15:50 mysql>show tables;
+---------------------+
| Tables_in_sanchuang |
+---------------------+
| student |
+---------------------+
1 row in set (0.00 sec)
示例:查看student表的结构:
[email protected] 16:00 mysql>desc student;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| name | varchar(20) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)
当我们不知道某个命令的具体语法时候可以使用help来查看语法规则
###################################################
示例:查看insert帮助文档
[]里面的代表可接可不接
{}里面的表示可以选择一个
[email protected] 16:00 mysql>help insert
Name: 'INSERT'
Description:
Syntax:
INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
[INTO] tbl_name
[PARTITION (partition_name [, partition_name] ...)]
[(col_name [, col_name] ...)]
{VALUES | VALUE} (value_list) [, (value_list)] ...
[ON DUPLICATE KEY UPDATE assignment_list]
INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
[INTO] tbl_name
[PARTITION (partition_name [, partition_name] ...)]
SET assignment_list
[ON DUPLICATE KEY UPDATE assignment_list]
INSERT [LOW_PRIORITY | HIGH_PRIORITY] [IGNORE]
[INTO] tbl_name
[PARTITION (partition_name [, partition_name] ...)]
[(col_name [, col_name] ...)]
SELECT ...
[ON DUPLICATE KEY UPDATE assignment_list]
value:
{expr | DEFAULT}
value_list:
value [, value] ...
assignment:
col_name = value
assignment_list:
assignment [, assignment] ...
###################################################
示例:向刚创建的表里面插入数据
[email protected] 16:05 mysql>insert into student(id,name) value(1,"cali");
Query OK, 1 row affected (0.00 sec)
[email protected] 16:10 mysql>select * from student;
+------+------+
| id | name |
+------+------+
| 1 | cali |
+------+------+
1 row in set (0.00 sec)
###################################################
知识点3:新建数据库操作
新建一个数据库
[email protected](none) 09:17 mysql>create database wangsh;
Query OK, 1 row affected (0.00 sec)
[email protected](none) 09:21 mysql>show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sanchuang |
| student |
| sys |
| wangsh |
+--------------------+
7 rows in set (0.00 sec)
###################################################
查看刚才创建的数据库的字符集结构
方法1:直接输入语句 show create database wangsh;
[email protected](none) 09:22 mysql>show create database wangsh;
+----------+-----------------------------------------------------------------+
| Database | Create Database |
+----------+-----------------------------------------------------------------+
| wangsh | CREATE DATABASE `wangsh` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+-----------------------------------------------------------------+
1 row in set (0.00 sec)
###################################################
方法2:进入新建库对应的文件夹里面查看db.opt文件的内容也可以查看数据库的字符集内容
[[email protected] /]# cd /data/mysql/
[[email protected] mysql]# ls
auto.cnf ib_buffer_pool localhost.localdomain.err performance_schema server-key.pem
ca-key.pem ibdata1 localhost.localdomain.pid private_key.pem student
ca.pem ib_logfile0 mysql public_key.pem sys
client-cert.pem ib_logfile1 mysql.sock sanchuang wangsh
client-key.pem ibtmp1 mysql.sock.lock server-cert.pem
[[email protected] mysql]# cd wangsh/
[[email protected] wangsh]# ls
db.opt
[[email protected] wangsh]# cat db.opt
default-character-set=utf8
default-collation=utf8_general_ci
###################################################
show variables;会将所有的变量都显示出来
[email protected](none) 09:29 mysql>show variables;
[email protected](none) 09:30 mysql>show variables like "%character%";
+--------------------------+----------------------------------+
| Variable_name | Value |
+--------------------------+----------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/mysql/share/charsets/ |
+--------------------------+----------------------------------+
8 rows in set (0.01 sec)
system -->mysql系统
server --> linux系统
character_set_database -->数据里的字符集
server -->system --》database
###################################################
示例:删除数据库 drop database
[email protected](none) 21:59 mysql>drop database wangsh;
Query OK, 0 rows affected (0.01 sec)
[email protected](none) 21:59 mysql>show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sanchuang |
| student |
| sys |
+--------------------+
6 rows in set (0.00 sec)
将数据库删除以后,linux系统里面对应数据库的那个目录也会删除
[[email protected] mysql]# cd /data/mysql/
[[email protected] mysql]# ls | grep wangsh
[[email protected] mysql]#
###################################################
库和表的关系
库里有表,库里面包含表
库:文件夹
表:文件
###################################################
新建表操作
[email protected] 22:08 mysql>use sanchuang;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
[email protected] 22:08 mysql>create table wangsh.table1(id int,name varchar(20));
Query OK, 0 rows affected (0.01 sec)
[email protected] 22:09 mysql>show tables in wangsh;
+------------------+
| Tables_in_wangsh |
+------------------+
| table1 |
+------------------+
1 row in set (0.00 sec)
###################################################
当一个表存在时,我们再次新建这个表名会报错
[email protected] 22:09 mysql>create table wangsh.table1(id int,name varchar(20));
ERROR 1050 (42S01): Table 'table1' already exists
但是我们可以加 if not exists 来解决这个问题
如果表已经存在,那么不报错,不存在则新建
有一条警告,可以用show warnings;来查看
[email protected] 22:12 mysql>create table if not exists wangsh.table1(id int,name varchar(20));
Query OK, 0 rows affected, 1 warning (0.00 sec)
[email protected] 22:12 mysql>show warnings;
+-------+------+-------------------------------+
| Level | Code | Message |
+-------+------+-------------------------------+
| Note | 1050 | Table 'table1' already exists |
+-------+------+-------------------------------+
1 row in set (0.00 sec)
###################################################
主键:表里面的一列或多列不能重复
[email protected] 22:41 mysql>create table t2(id int(4) not null primary key, name varchar(10) not null);
Query OK, 0 rows affected (0.01 sec)
[email protected] 22:41 mysql>desc t2
-> ;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(4) | NO | PRI | NULL | |
| name | varchar(10) | NO | | NULL | |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.01 sec)
###################################################
查看表结构:
方法1: show create table t2;
[email protected] 22:44 mysql>show create table t2;
+-------+--------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+-------+--------------------------------------------------------------------------------------------------------------------------------------+
| t2 | CREATE TABLE `t2` (
`id` int(4) NOT NULL,
`name` varchar(10) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+-------+--------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
方法2: desc t2;
[email protected] 22:46 mysql>desc t2;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(4) | NO | PRI | NULL | |
| name | varchar(10) | NO | | NULL | |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)
###################################################
存储引擎和字符集的捆绑问题
字符集可以和库捆绑,也可以和表捆绑,但是存储引擎和表捆绑的,不是和库捆绑,因为库是一个文件夹,而表示文件,是存放在磁盘上面的
###################################################
字符集的继承问题:
库 -- 表 -- 字段
如果不给字段,表指定字符集的话,它会自动继承,字段继承表,表继承库,如果指定则使用指定的字符集。
###################################################
关系型数据库
Mysql,oracle, MSSQL,postgresql
非关系型数据库
redis,mongDB,TIDB,timeseriesDB
非关系型数据库一般是 KEY:VALUE 键值对来存储,例如redis
###################################################
结构化数据和非结构化数据
结构化数据一般是指关系型数据库表示和存储,可以用二维表来逻辑表达实现的数据
非结构化数据顾名思义,就是没有固定结构的数据,包括所有格式的办公文档,文本,图片,XML,HTML,各类报表,等都属于非结构化数据,对于这类数据,我们一般直接整体进行存储,而且一般存储为二进制的数据格式。
版权声明
本文为[[email protected]]所创,转载请带上原文链接,感谢
https://blog.csdn.net/qq_48391148/article/details/125873969
边栏推荐
- Spark shuffle tuning
- NgRx Selector 的 Memoization 特性学习笔记
- 论文解读(GSAT)《Interpretable and Generalizable Graph Learning via Stochastic Attention Mechanism》
- 深度学习Course2第二周Optimization Algorithms习题整理
- C语言必杀技3行代码把运行速度提升4倍
- Flink cluster construction
- 小程序容器+自定义插件,可实现混合App快速开发
- 递归(各经典例题分析)
- 9. SAP ABAP OData 服务如何支持删除(Delete)操作
- Chapter 12, target recognition of digital image processing
猜你喜欢

C语言必杀技3行代码把运行速度提升4倍

MySQL related knowledge

Recycling rental system 100% open source without encryption Mall + recycling + rental

Based on php online examination management system acquisition (php graduation design)

shell specification and variables

ARFoundation Getting Started Tutorial U2-AR Scene Screenshot Screenshot
![[深入研究4G/5G/6G专题-48]: 5G Link Adaption链路自适应-4-下行链路自适应DLLA-PDCCH信道](/img/6b/d4ff120493e878fcf5c9aa728eced7.png)
[深入研究4G/5G/6G专题-48]: 5G Link Adaption链路自适应-4-下行链路自适应DLLA-PDCCH信道

程序员必备的 “ 摸鱼神器 ” 来了 !

毕业十年,财富自由:那些比拼命努力更重要的事,从来没人会教你

No more rolls!After joining ByteDance for a week, he ran decisively.
随机推荐
Implementation principle of VGUgarbage collector (garbage collector)
User Experience | How to Measure User Experience?
毕业十年,财富自由:那些比拼命努力更重要的事,从来没人会教你
易周金融分析 | 银行ATM机智能化改造提速;互联网贷款新规带来挑战
NgRx Selector 的 Memoization 特性学习笔记
JS prototype hasOwnProperty in 加方法 原型终点 继承 重写父类方法
Shell programming conditional statement
Scala practice questions + answers
罗克韦尔AB PLC RSLogix5000中的比较指令使用方法介绍
【C语言实现】两种计算平均成绩题型,博主精心整理,值得一读
找工作必备!如何让面试官对你刮目相看,建议收藏尝试!!
Based on php online music website management system acquisition (php graduation design)
Today's sleep quality record 74 points
Based on php hotel online reservation management system acquisition (php graduation project)
【ASM】字节码操作 MethodWriter
Based on php animation peripheral mall management system (php graduation design)
【牛客刷题-SQL大厂面试真题】NO4.出行场景(某滴打车)
Lecture 3: Several common table field data types in MySQL database
【开源】Sentinel高性能高可用集群限流解决方案
SOM Network 2: Implementation of the Code