目录

知识点1:mysql里面的数据库和表都以文件形式存储在linux系统里面

我们在mysql里面创建数据库和表以后,也会生成对应的目录和文件

知识点2: 存储引擎是什么?

innodb 是MYSQL 的存储引擎(默认的存储引擎)

还有哪些存储引擎?

示例:查看数据库里有哪些表:

示例:查看student表的结构:

示例:查看insert帮助文档

示例:向刚创建的表里面插入数据

知识点3:新建数据库操作

新建一个数据库

查看刚才创建的数据库的字符集结构

方法1:直接输入语句  show create database wangsh;

方法2:进入新建库对应的文件夹里面查看db.opt文件的内容也可以查看数据库的字符集内容

show variables;会将所有的变量都显示出来

示例:删除数据库 drop database

将数据库删除以后,linux系统里面对应数据库的那个目录也会删除

库和表的关系

新建表操作

当一个表存在时,我们再次新建这个表名会报错

但是我们可以加 if not exists 来解决这个问题

主键:表里面的一列或多列不能重复

查看表结构:

方法1: show create table t2;

方法2: desc t2;

存储引擎和字符集的捆绑问题

字符集的继承问题:

关系型数据库

非关系型数据库

结构化数据和非结构化数据


知识点1:mysql里面的数据库和表都以文件形式存储在linux系统里面

linux里面一切皆文件,我们在数据库里面创建的数据库和表都是以文件的形式存储于机器里面

root@(none) 15:41  mysql>create database sanchuang;
Query OK, 1 row affected (0.01 sec)root@(none) 15:41  mysql>show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sanchuang          |
| student            |
| sys                |
+--------------------+
6 rows in set (0.01 sec)root@(none) 15:41  mysql>use sanchuang;
Database changed
root@sanchuang 15:41  mysql>show tables;
Empty set (0.00 sec)root@sanchuang 15:41  mysql>create table student(id int,name varchar(20));
Query OK, 0 rows affected (0.01 sec)

###################################################

我们在mysql里面创建数据库和表以后,也会生成对应的目录和文件

[root@localhost etc]# cd /data/mysql/
[root@localhost 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
[root@localhost mysql]# cd sanchuang/
[root@localhost sanchuang]# ls
db.opt
[root@localhost sanchuang]# ls
db.opt  student.frm  student.ibd
[root@localhost sanchuang]# pwd
/data/mysql/sanchuang
[root@localhost sanchuang]#

###################################################

知识点2: 存储引擎是什么?

数据库存储引擎是数据库底层软件组件,数据库管理系统使用数据引擎进行创建、查询、更新和删除数据操作。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎还可以获得特定的功能,许多数据库管理系统都支持多种不同的存储引擎。MySQL 的核心就是存储引擎。

 innodb 是MYSQL 的存储引擎(默认的存储引擎)

还有哪些存储引擎?

InnoDB、MyISAM、Memory

myisam

student.frm文件  ---》存储表结构的  frame

student.ibd文件   ---》 innodb data 和index

###################################################

示例:查看数据库里有哪些表:

root@sanchuang 15:50  mysql>show tables;
+---------------------+
| Tables_in_sanchuang |
+---------------------+
| student             |
+---------------------+
1 row in set (0.00 sec)

示例:查看student表的结构:

root@sanchuang 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帮助文档

[]里面的代表可接可不接

{}里面的表示可以选择一个

root@sanchuang 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 = valueassignment_list:assignment [, assignment] ...

###################################################

示例:向刚创建的表里面插入数据

root@sanchuang 16:05  mysql>insert into student(id,name) value(1,"cali");
Query OK, 1 row affected (0.00 sec)root@sanchuang 16:10  mysql>select * from student;
+------+------+
| id   | name |
+------+------+
|    1 | cali |
+------+------+
1 row in set (0.00 sec)

###################################################

知识点3:新建数据库操作

新建一个数据库

root@(none) 09:17  mysql>create database wangsh;
Query OK, 1 row affected (0.00 sec)root@(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;

root@(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文件的内容也可以查看数据库的字符集内容

[root@localhost /]# cd /data/mysql/
[root@localhost 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
[root@localhost mysql]# cd wangsh/
[root@localhost wangsh]# ls
db.opt
[root@localhost wangsh]# cat db.opt
default-character-set=utf8
default-collation=utf8_general_ci

###################################################

show variables;会将所有的变量都显示出来

root@(none) 09:29  mysql>show variables;
root@(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

root@(none) 21:59  mysql>drop database wangsh;
Query OK, 0 rows affected (0.01 sec)root@(none) 21:59  mysql>show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sanchuang          |
| student            |
| sys                |
+--------------------+
6 rows in set (0.00 sec)

将数据库删除以后,linux系统里面对应数据库的那个目录也会删除

[root@localhost mysql]# cd /data/mysql/
[root@localhost mysql]# ls | grep wangsh
[root@localhost mysql]#

###################################################

库和表的关系

库里有表,库里面包含表

库:文件夹

表:文件

###################################################

新建表操作

root@wangsh 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 -ADatabase changed
root@sanchuang 22:08  mysql>create table wangsh.table1(id int,name varchar(20));
Query OK, 0 rows affected (0.01 sec)root@sanchuang 22:09  mysql>show tables in wangsh;
+------------------+
| Tables_in_wangsh |
+------------------+
| table1           |
+------------------+
1 row in set (0.00 sec)

###################################################

当一个表存在时,我们再次新建这个表名会报错

root@sanchuang 22:09  mysql>create table wangsh.table1(id int,name varchar(20));
ERROR 1050 (42S01): Table 'table1' already exists

但是我们可以加 if not exists 来解决这个问题

如果表已经存在,那么不报错,不存在则新建

有一条警告,可以用show warnings;来查看

root@sanchuang 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)root@sanchuang 22:12  mysql>show warnings;
+-------+------+-------------------------------+
| Level | Code | Message                       |
+-------+------+-------------------------------+
| Note  | 1050 | Table 'table1' already exists |
+-------+------+-------------------------------+
1 row in set (0.00 sec)

###################################################

主键:表里面的一列或多列不能重复

root@sanchuang 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)root@sanchuang 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;

root@sanchuang 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;

root@sanchuang 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,各类报表,等都属于非结构化数据,对于这类数据,我们一般直接整体进行存储,而且一般存储为二进制的数据格式。

三、mysql 存储引擎-建库建表操作相关推荐

  1. MySQL 存储引擎(InnoDB、MyISAM、MEMORY)

    一.MySQL的体系结构 1.连接层:最上层是一些客户端和链接服务,主要完成一些类似于连接处理.授权认证.及相关的安全方案.服务器也会为安全接入的每个客户端验证它所具有的操作权限. 2.服务层:第二成 ...

  2. Mysql 数据库实战-建库-建表-查多表

    前文:MySql数据库基本概念 数据库 DataBase(数据库),存储数据的仓库. 第一方或第三方提供的图形化界面的客户端(DBeaver,Mariadb) 在Mysql中创建若干个数据库,每个数据 ...

  3. MySQl建库建表及增删改查

    通过可视化工具建库建表 创建数据库 CREATE DATABASE studb2 CHAR SET utf8; 切换数据库(使用use 将数据库切换到 studb2) USE studb2 ; 在st ...

  4. mysql exercise --- one 建库建表练习参考

    建库建表操作练习 1 .表名 User Name Tel Content Date 张三 133******** 大专毕业 2006-10-11 张三 136******** 本科毕业 2006-10 ...

  5. mysql存储引擎的方式_Mysql转换表存储引擎的三种方式

    或许会有一些场景需要改变表的存储引擎,例如存储日志的表如果几乎只有insert和少量的select操作,为了追求更好的插入性能有可能会需要把存储引擎更换为MyISAM.但是,本文不建议在同一个数据库中 ...

  6. 第三篇 :Mysql存储引擎、数据导入导出、管理表记录、匹配条件

    一,存储引擎 1,Mysql工作原理 mysql服务 体系结构     管理工具:    命令 连接池:     (空闲进程.内存.CPU) SQL接口:   (客户端与服务器建立连接传递SQL给my ...

  7. MySQL存储引擎 lnnoDB逻辑架构 innodb存储引擎表空间(ibd文件)详解 回滚日志的物理空间

    文章目录 存储引擎 一 MySQL组织架构 二 查看存储引擎信息 三 修改存储引擎 3.1 配置文件修改存储引擎 3.2 临时修改存储引擎 3.3 建表时修改存储引擎 四 存储引擎实验 五 数据库升级 ...

  8. 《MySQL高级篇》三、存储引擎

    文章目录 1. 查看存储引擎 2. 设置系统默认的存储引擎 3. 设置表的存储引擎 3.1 创建表时指定存储引擎 3.2 修改表的存储引擎 4. 引擎介绍 4.1 InnoDB 引擎:具备==外键== ...

  9. 导学+初识MySQL+SQL语法规范+数据库相关操作+表相关操作+MySql存储引擎介绍+MySQL表的创建+测试数据类型

    一.导学 1.什么是SQL? 结构化查询语言,数据库管理系统通过SQL语言来管理数据库中的数据: 2.SQL语言组成部分 (1)DDL--数据定义语言,主要定义数据库.表.视图.索引和触发器等 (2) ...

  10. SqlService基础一篇搞定(建库建表、插入数据、修改和删除数据、基础查询、条件查询、模糊查询、聚合函数、分组查询、多表查询)

    SqlService基础知识总汇 前言 一.SQLSERVER建库建表 1.检查数据库名是否存在 2.创建数据库 3.建表 4.修改表结构 5.删除添加约束 二.SQLSERVER插入数据 1.向部门 ...

最新文章

  1. 1.12 Java空对象(null)是怎么回事?
  2. 用区块链确保用户数据自主权,看DCC如何玩转“普惠金融”?
  3. SQL查询效率:100w数据查询只需要1秒钟
  4. Understanding Quaternions 中文翻译《理解四元数》
  5. Spark读取文本文件并转换为DataFrame
  6. 跟踪异常–第4部分– Spring的邮件发件人
  7. 计算机磁盘分为硬盘和什么,fat32是什么?
  8. radius java_Java处理Radius access-challenge
  9. 《为自己工作——世界顶级设计师成功法则》—第1章1.2节有同情心
  10. 《王阳明心学及其当代意义》观后总结
  11. 从delphi 10.3到delphi 10.4的改变实务
  12. android视频添加特效,安卓手机视频特效软件 用手机给视频加特效 安卓手机视频加闪电特效...
  13. ESP8266连接网络,获取网络天气api
  14. ios支付宝客户端集成流程
  15. 弘辽科技:拼多多类目选错了有什么影响?怎么办?
  16. python随机密码生成以整数17为随机数种子_python习题 随机密码生成 + 连续质数计算...
  17. 电视android已停止运行是什么意思,com.android.systemui已停止是什么意思 怎么解决...
  18. Oracle分区表操作
  19. android 微博字体高亮,安卓开发札记——高仿新浪微博文字处理(实现关键字高亮,自定义表情替换并加入点击事件实现)...
  20. Twincat3 Win32 Error:577

热门文章

  1. 20145209 刘一阳 《网络对抗》实验四:恶意代码分析
  2. Oracle的海量存储技术
  3. surprise库中evaluate函数弃用解决方法
  4. java char unicode_在Java的基本数据类型中,char型采用Unicode编码方案,每个Unicode码占用______字节内存空间,这样,无论是中文_搜题易...
  5. 垃圾回收之ZGC/Shenandoah GC
  6. 6.副词性从句的起源与本质
  7. codeup27940 数字等腰三角形
  8. 学计算机找对象容易吗,这4个大学专业单身率最高,找到对象很不容易,一直单身到毕业...
  9. NKOI 2505 秋静叶秋穣子
  10. kdevtmpfsi木马清除