这是关于五天学习MYSQL数据库的笔记,如果想要观看视频可以访问(视频链接(b站)
或者访问视频链接
之前的笔记已经记到了1.3的mysql基本介绍,接下来主要是:

2.1MySQL服务端框架

一. Mysql服务端架构以下几层构成

  1. 数据库管理系统(最外层):DBMS,专门管理服务器端的所有内容。
  2. 数据库(第二层):DB,专门用于存储数据的仓库(可以有很多个)。
  3. 二维数据表(第三层):Table,专门用于存储具体实体的数据
  4. 字段(第四层):Field,具体存储某种类型的数据(实际存储单元)
    数据库中常用的几个关键字:
    row:行
    column:列(field)
    这里只是简单说了mysql分层的一个存储架构,如果需要再深入了解底层架构,可以访问mysql服务器架构(链接)

2.2SQL基本操作----库操作(创建数据库)

数据库是数据存储的最外层(最大单元)。
创建数据库:
基本语法:create database 数据库名 [库选项];
库选项:数据库的相关属性
字符集:charset 字符集,代表当前数据库下的所有表存储的数据默认指定的字符集(如果不指定,则采用DBMS默认)

create database 数据库名 charset 字符集名称;

校对集:collate 校对集(校对集默认是随字符集的)

2.3SQL基本操作----库操作(显示数据库)

用户每通过SQL指令创建一个数据库,那么系统就会产生一个对应的存储数据的文件夹(data)。每个数据库文件夹下面有一个opt文件,保存的是对应的数据库选项。
一. 显示全部
基本语法:show databases;

二. 显示部分
基本语法:show databases like ‘匹配模式’;
匹配模式:
_:匹配当前位置的单个字符。
%:匹配指定位置多个字符,前后。
三. 显示数据库创建语句
基本语法:show create database 数据库名字;
如图:

2.4SQL基本操作----库操作(选择+修改+删除)

一. 选择数据库
为什么要选择数据库?
因为数据存储再数据表中,数据表存在数据库下,要操作数据,必须首先进入到数据库下。
基本语法:use 数据库名字;
二. 修改数据库
修改数据库的字符集(库选项)
是否可以修改数据库的名字?mysql5.5之前可以,rename命令,但是5.5之后就不可以了
基本语法:alter database数据库名字 charset[=]字符集;
一旦修改成功,opt文件改变。
三 .删除数据库
基本语法:drop database 数据库名字;
删除要做好安全操作,确保里面数据没有问题。
删除数据库之后,对应的存储数据的文件夹也会被删除。

3.1SQL基本操作----表操作(创建数据表)

一.创建数据表

  1. 普通创建表
    基本语法:create table 表名(字段名 字段类型 [字段属性],字段名
    字段类型 [字段属性]……)[表选项];
    有两种方式可以将表挂到指定的数据库下面:
    第一种:在数据表名字前面加上数据库名字用‘.’连接:数据库名.数据表名
    第二种:在创建数据表之前先进入到某个数据库:use 数据库名;

表选项和数据库选项类似:
Engine:存储引擎,mysql提供的具体存储数据的方式,默认有一个innodb(5.5之前默认是myisam)
Charset:字符集(只对当前自己表有效,级别比数据库高)
Collate:校对集

 例:create table student(
name varchar(10)
)charset utf8;
  1. 复制已有表结构
    从已经存在的表复制一份(只复制结构,如果表中有数据不复制)。
    基本语法:create table 新表名 like 表名;
    只要使用数据库.(小数点)表名,就可以在任何数据库下访问其他数据库里的表名。

3.2SQL基本操作----表操作(多维度显示表)

每当一个数据表创建,就会在对应的数据库下面创建一些文件(与存储引擎有关)。 Frm代表结构文件。
注意:这个结构文件来自于innodb存储引擎。Innodb存储引擎的所有文件都存储在外部的ibdata文件中。
一 .显示所有表
基本语法:show tables;
二 .匹配显示表
基本语法:show tables like ‘匹配模式’;
三 .显示表结构
本质含义:显示表中所包含的字段信息(名字,类型,属性等等)
基本语法:
describe 表名;
desc 表名;
show columns from 表名;


四. 显示表的创建语句
查看数据表创建时的语句,显示结果不一定是用户之前输入的。
基本语法:show create table 表名;
Mysql中有多种语句结束符:
;和\g效果一样,都是字段在横排,下面是对应的数据。
\G字段在竖排,右侧是对应的数据。

4.1SQL基本操作----表操作(多维度修改表)

一 .设置表属性
表属性就是表选项,engine,charset,collate
基本语法:alter table 表名 表选项[=]值;
例:alter table class charset gbk;
注意:如果数据库已经确定,里面有很多数据,不要轻易的修改表选项(字符集影响不大)。
二 .修改表结构
数据库中数据表名字通常有前缀,取数据库的前两个字母加下划线
修改表名:rename table 旧表名 to 新表名;
修改表选项:alter table 表名 表选项[=]新值;
新增字段:alter table 表名 add [column] 新字段名 列类型 [列属性] [位置first/after字段名];
例:alter table teacher add column age int; 默认加在表的最后面
修改字段名:alter table 表名 change 旧字段名 新字段名 字段类型 [列属性] [新位置];
修改字段类型(属性):alter table 表名 modify 字段名 新类型 [新属性]
[新位置];
删除字段:alter table 表名 drop 字段名;
三.删除表结构
基础语法:drop table 表名1[,表名2……];可以同时删除多个数据表

5.1SQL基本操作----数据操作(插入数据)

一 插入操作
本质含义:将数据以SQL的形式存储到指定的数据表(字段)里面
基本语法:
Insert into 表名 [(字段列表)] values(对应字段列表);
例:
注意:后面values中的对应的值列表只需要与前面的字段列表相对应即可,不一定与表结构完全一致。
字段列表不一定非要有表中的所有字段。
Insert into 表名 values (对应表结构);(向表中所有字段插入数据,值列表必须与字段列表一致)

5.2SQL基本操作----数据操作(查删改)

一. 查询操作
查询表中全部数据:select * from 表名; // *表示匹配所有的字段
查询表中部分字段:
select 字段列表 from 表名;//字段列表使用逗号隔开
简单条件查询数据:
select 字段列表/ * from 表名 where 字段名 = 值;
二 .删除操作
基本语法:
delete from 表名 [where 条件];
如果没有where条件,系统会自动删除该表的所有数据(慎用)。
三. 更新操作
更新:将数据进行修改,通常是修改部分字段数据。
基本语法:update 表名 set 字段名 = 新值 [where 条件];
如果没有where条件,那么表中那个字段会被修改成统一值。

6.1字符集----简介

一. 字符编码的概念
字符:各种文字和符号的总称。
在计算机中看到的任何内容都是字符构成的。
字符编码: 是计算机针对各种符号,在计算机中的一种二进制存储代号。
二. 字符集概念
字符集是多个字符的集合,字符集种类较多,每个字符集包含的字符个数不同。
常见字符集名称: ASCII字符集、GB2312字符集、BIG5字符集、GB18030 字符集、Unicode 字符集等。计算机要准确的处理各种字符集文字,需要进行字符编码,以便计算机能够识别和存储各种文字。中文文字数目大,而且还分为简体中文和繁体中文两种不同书写规则的文字,而计算机最初是按英语单字节字符设长的,因此,对中文字符进行编码,是中文信息交流的技术基础。

6.2字符集----mysql字符集设置

一. 设置客户端所有字符集
如果直接通过cmd下的mysql.exe进行中文数据插入,可能出错。

出错原因:

  1. 用户是通过mysql.exe来操作mysqld.exe

  2. 真正的SQL执行是mysql.exe来执行

  3. mysql.exe将数据传入mysqld.exe的时候,没有告知其对应的符号规则(字符集),而mysqld.exe也没有能力自己判断,就会使用自己默认的字符集。
    解决方案:
    Mysql.exe客户端在进行数据操作之前将自己所使用的字符集告诉mysqld.exe。
    Cmd下的mysql.exe默认都只有一个字符集:GBK

如何告知mysqld.exe字符集是gbk呢?
快捷方式: set names 字符集;
深层原理: 客户端,服务端,连接层
(show variable like ‘character set_%’)
Mysql.exe与mysqld.exe之间的处理关系一共分为三层:

客户端传入数据给服务端:client--------character_set_client

服务端返回数据给客户端:server---------character_set_result

客户端与服务端之间的连接:collection----------character_set_collection

set names 字符集;
语句的本质: 就是一次性打破三层关系的字符集,变得一致。
在系统中有三个变量来记录着这三个关系对应的字符集: show variable
like ‘character_set%;
查看一个新的客户端的对应的字符集关系:
修改变量的值:
set 变量 = 值;
如果只修改服务器端变量的值为gbk,则插入中文能够成功,但是查询显示出插入的中文数据是乱码。
因为:客户端给服务端的数据正确,服务端返回的结果默认是utf8,但是当前窗口只识别gbk
解决方法:set character_set_results = gbk;
对应的character_set_database也会自动修改为gbk;
Connection只是为了更方便客户端与服务端进行字符集转换而设。
set names gbk;
等价于
set character_set_client = gbk;//为了让服务器识别客户端传来的数据
set character_set_connection = gbk; //更好的帮助客户端与服务端之间进行字符集转换
set character_set_results= gbk; //为了告诉客户端服务端所有的返回的数据字符集

5天学习MYSQL数据库第一天剩余全部笔记(超级详细的mysql入门笔记适合新手反复看加深记忆)相关推荐

  1. MySQL数据库安装-Windows10为例【超级详细安装过程(每一步的截图)、检测安装是否成功、登录数据库并查看版本号、将MySQL添加到环境变量中、在命令行窗口操作数据库】

    哈哈,这是在哔哩哔哩网站上 看的 MySQL安装步骤. 我安装的时候,截截图,希望对大家 有所帮助. 链接:https://pan.baidu.com/s/1fKFQCVHMQOmbg84UyGrKB ...

  2. 【宋红康 MySQL数据库 】【高级篇】【06】MySQL的逻辑架构

    持续学习&持续更新中- 学习态度:守破离 [宋红康 MySQL数据库 ][高级篇][06]MySQL的逻辑架构 逻辑架构剖析 服务器处理客户端请求 Connectors 第一层 连接层 第二层 ...

  3. 【宋红康 MySQL数据库 】【高级篇】【17】MySQL事务日志:redo、undo

    持续学习&持续更新中- 学习态度:守破离 [宋红康 MySQL数据库 ][高级篇][17]MySQL事务日志 概述 redo日志 为什么需要redo日志 redo日志的好处.特点 redo的组 ...

  4. 【宋红康 MySQL数据库 】【高级篇】【07】MySQL的存储引擎

    持续学习&持续更新中- 学习态度:守破离 [宋红康 MySQL数据库 ][高级篇][07]MySQL的存储引擎 存储引擎 查看存储引擎 设置系统默认的存储引擎 设置表的存储引擎 引擎介绍 In ...

  5. 【宋红康 MySQL数据库 】【高级篇】【03】MySQL的数据目录

    持续学习&持续更新中- 学习态度:守破离 [宋红康 MySQL数据库 ][高级篇][03]MySQL的数据目录 MySQL8的主要目录 数据文件的存放目录 命令存放目录 配置文件目录 数据库和 ...

  6. 【宋红康 MySQL数据库 】【高级篇】【02】MySQL字符集、比较规则、大小写规范、sql_mode

    持续学习&持续更新中- 学习态度:守破离 [宋红康 MySQL数据库 ][高级篇][02]MySQL字符集.比较规则.大小写规范.sql_mode 默认字符集 MySQL8 MySQL5 修改 ...

  7. mac下php mysql数据库文件怎么打开_Mac环境下php操作mysql数据库的方法分享

    今天在mac上搭建好了php的环境,我们就把php操作mysql数据库的方法分享给大家,有需要的小伙伴参考下. Mac本地环境搭建 在Mac系统,我们可以使用MAMP Pro 软件来搭建本地服务器.安 ...

  8. db2 mysql sql server_下文给大家介绍mysql数据库介绍,具体详情如下所示:MySQL数据库:Oracle、DB2、SQL Server、MySQL、access、mang...

    下文给大家介绍mysql数据库介绍,具体详情如下所示: MySQL 数据库: Oracle.DB2.SQL Server.MySQL.access.mangodb.bigtable 关系型数据库 大型 ...

  9. 【MySQL】MySQL数据库安装方式之MSI安装,贼详细的安装过程

    MySQL数据库安装方式之MSI安装 很多刚学mysql数据库的小伙伴们可能不知道怎么去安装mysql数据库,大家可以去官网下载mysql的安装包msi后缀的,也可以去下载解压版进行安装,本人推荐的是 ...

最新文章

  1. 使用BCH彩色币方案发行Token已实现
  2. Updater Application Block for .NET
  3. Linux运行可执行文件
  4. Tomcat设置URL兼容特殊符号
  5. php 备份数据库 Backup Your MySQL Database Using PHP
  6. 漫步数理统计六——条件概率与独立(下)
  7. 解决xgboost报错XGBoostError: XGBoost Library (libxgboost.dylib) could not be loaded
  8. Mybatis generator创建项目核心文件
  9. Python Day 19 面向对象(初识面向对象)
  10. Quartz.net 任务调度
  11. 一个人php建站_人人站CMS-简单安全的PHP开源CMS建站系统
  12. 一个js内存泄露的好例子
  13. 什么是设计思维Design Thinking——风靡全球的创造力培养方法
  14. 千兆路由器怎么设置网速最快_如何设置路由器使网速最快
  15. Bootstrap 框架-下拉菜单
  16. Pandas 学习笔记二
  17. 本机号码校验不只是免输密码、免输短信验证码
  18. V神的2019和2021
  19. 微信小程序和抖音小程序的区别?如何选择?
  20. 把多个不连续的commit合并成一个commit

热门文章

  1. 初识Mysql(part16)--我需要知道的2条Mysql语句之子查询
  2. linux怎么用jconsole_jconsole监控linux系统的jvm使用
  3. 我们为什么要做数据分析?
  4. SAP UI5 应用开发教程之十三 - 如何添加自定义 CSS 类
  5. 给基于SAP Spartacus 3.4.1 版本的 Storefront 添加对服务器端渲染的支持
  6. RxJS switchMap, mergeMap, concatMap,exhaustMap 的比较
  7. jasmine spyOn的单步调试
  8. SAP Spartacus里的injector
  9. 如何使用SAP UI5 web Component的React框架的柱状图和折线图
  10. Offline creation url pattern