900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 5天学习MYSQL数据库第一天剩余全部笔记(超级详细的mysql入门笔记适合新手反复看加深

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

时间:2020-06-16 06:22:20

相关推荐

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

这是关于五天学习MYSQL数据库的笔记,如果想要观看视频可以访问(视频链接(b站)

或者访问视频链接

之前的笔记已经记到了1.3的mysql基本介绍,接下来主要是:

2.1MySQL服务端框架

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

数据库管理系统(最外层):DBMS,专门管理服务器端的所有内容。数据库(第二层):DB,专门用于存储数据的仓库(可以有很多个)。二维数据表(第三层):Table,专门用于存储具体实体的数据字段(第四层):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基本操作----表操作(创建数据表)

一.创建数据表

普通创建表

基本语法:create table 表名(字段名 字段类型 [字段属性],字段名

字段类型 [字段属性]……)[表选项];

有两种方式可以将表挂到指定的数据库下面:

第一种:在数据表名字前面加上数据库名字用‘.’连接:数据库名.数据表名

第二种:在创建数据表之前先进入到某个数据库:use 数据库名;

表选项和数据库选项类似:

Engine:存储引擎,mysql提供的具体存储数据的方式,默认有一个innodb(5.5之前默认是myisam)

Charset:字符集(只对当前自己表有效,级别比数据库高)

Collate:校对集

例:create table student(name varchar(10))charset utf8;

复制已有表结构

从已经存在的表复制一份(只复制结构,如果表中有数据不复制)。

基本语法: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进行中文数据插入,可能出错。

出错原因:

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

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

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入门笔记适合新手反复看加深记忆)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。