Mysql数据库基础了解及基本操作

1、数据库:database,存数据的仓库;高效的存储和处理数据的介质(介质主要有磁盘和内存)。

2、数据库分类:

<1>基于介质的不同进行分类:

(1) 关系型数据库(SQL): 大型:Oracle,DB2; 中型:SQL-SERVER,Mysql;小型:access等。

(2)非关系型数据库(NoSQL:Not Only SQL):memcached,mongodb,redis

<2>两者区别:

(1)关系型:安全(保存磁盘基本不可能丢失),易理解,但较浪费空间(二维空间)

(2)非关系型:效率高,但不安全(断电丢失)

3、关系型数据库:是一种建立在关系模型(数学模型)上的数据库

4、关系模型:包括三个方面:

(1) 数据结构:数据存储的问题,二维表(有行与列)
(2)操作指令集合:所有SQL语句

(3)完整性约束:表内数据约束(字段与字段),表与表之间的约束(外键)

5、SQL操作主要分为三种:DDL,DML,DCL三种类型:

(1)DDL:Data Definition Language,数据定义语言,用来维护存储数据的结构(数据库,表),代表指令:create,drop,alter等。

(2)DML:Data Manipulation Language,数据操作语言,用来对数据进行操作(数据表中的内容),代表指令:insert,delete,update等:其中DML内部又单独进行了一个分类:DQL(Data Query Language:数据查询语言,如select)。

(3)DCL:Data Control Language,数据控制语言,主要是负责权限管理(用户),代表指令:grant,revoke等。

注:SQL是关系型数据库的操作指令,SQL是一种约束,但不强制(类似W3C):不同的数据库产品(如Oracle,mysql)可能内部会有一些细微的区别。


好了,说完了上面SQL后,再把目光真正转向MySQL数据库上来


1、首先,什么是MySQL数据库呢?MySQL数据库是一种c/s结构的软件(c/s结构即为客户端/服务端结构):若想访问服务器必须通过客户端来访问,其中服务器要一直运行,客户端需要使用时运行。

2、交互方式:

(1)客户单连接认证:连接服务器,认证身份:Mysql.exe-hPup。

mysql.exe -h(主机地址) -p(端口) -u(用户名) -p(用户密码)

Mysql数据库基础了解及基本操作_第1张图片

(2)客户端发送SQL指令

示例:show databases(查看所有数据库)

(3)服务器接受指令,进行处理SQL指令,再返回操作结果

(4)客户端接受结果显示出来

Mysql数据库基础了解及基本操作_第2张图片

(5)断开连接(为了释放资源,服务器并发限制)(简单来说,不能占着空间,其他用户也需要使用)

断开连接的三种操作:exit,quit,\q

3、基本操作:CRUD(增查改删)

4、将SQL的基本操作根据操作对象进行分类,可分为以下三类:

(1)库操作:对数据库的增删改查。

基本语法:

<1>Create database 数据库名字 [库选项];

库选项:用来约束数据库,分为两个选项:
字符集设定:charset/character set 具体字符集(数据存储的编码格式) 常用字符集: GBKUTF8

校对集设定:collate 具体校对集(数据比较的规则)

Mysql数据库基础了解及基本操作_第3张图片

注:其中,数据库名字不能使用关键字(已经被使用的字符)或者保留字(将来可能会用到的)

Mysql数据库基础了解及基本操作_第4张图片

如果非要使用关键字和保留字,那么必须使用反引号(esc键下面的键再英文状态下的输出:`)

Mysql数据库基础了解及基本操作_第5张图片

注:中文数据库是可以的,但是有前提条件:保证数据库能够识别(建议不用)


当创建数据库的SQL语句执行后,发生了什么?
1、在数据库系统中,增加了对应的数据库信息
2、会在保存数据的文件夹下:Data目录,创建一个对应的数据库名字的文件夹

(下图即为创建中文数据库的弊端,名字不一样,而且创建多个中文数据库时很难区分)

Mysql数据库基础了解及基本操作_第6张图片

3、每个数据库下都有一个opt文件:保存了库选项

Mysql数据库基础了解及基本操作_第7张图片

<2>查看数据库:

Show databases;(查看所有数据库)

Mysql数据库基础了解及基本操作_第8张图片

Show database like 'pattern'; ----pattern是匹配模式(查看指定部分的数据库:模糊查询)
%:表示匹配多个字符。

_:表示匹配单个字符。

Mysql数据库基础了解及基本操作_第9张图片

——查看以information_开始的数据库,需要被转义

show databases like 'information_%';            ---相当于information%

show databases like 'information\_%';


Show create database 数据库名字;(查看数据库的创建句子)

Mysql数据库基础了解及基本操作_第10张图片

<3>更新数据库(数据库名字不可修改;数据库的修改仅限库选项:字符集和校对集(校对集依赖字符集))
Alter database 数据库名字 [库选项];
Charset/character set [=] 字符集

Collate 校对集

Mysql数据库基础了解及基本操作_第11张图片

<4>删除数据库(所有操作中最简单的)

drop database 数据库名字;


当删除数据库语句执行后,发生了什么?

1、在数据库内部看不到对应的数据库

Mysql数据库基础了解及基本操作_第12张图片

2、在对应的数据库存储的文件夹内:数据库名字对应的文件夹也被删除(级联删除:里面的数据表全部删除)

Mysql数据库基础了解及基本操作_第13张图片

注:删除数据库需谨慎!(应进行备份后进行删除操作)

(2)表操作(包含字段操作,因为表与字段关联是离不开的)
<1>新增数据表
Create table [if no exists] 表名(
字段名字 数据类型,
字段名字 数据类型     -- 最后一行不需要逗号
)[表选项];



if no exists:如果表名不存在,就创建对应名字的表,否则不执行创建代码(称为检查功能)
表选项:控制表的表现
字符集:charset/character set 具体字符集; --保证表中数据存储的字符集
校对集:collate 具体校对集;

存储引擎:engine 具体的存储引擎(innodb和myisam)

Mysql数据库基础了解及基本操作_第14张图片

(注:任何一个表的设计都需要指定数据库)
方案一:显示指定表所属的数据库

Create table 数据库名.表名();  -- 将当前数据表创建到指定数据库下

Mysql数据库基础了解及基本操作_第15张图片

方案二:隐式的指定表所属数据库:先进入某个数据库环境,然后创建的表自动归属到这个进入的数据库。

use 数据库名;

Mysql数据库基础了解及基本操作_第16张图片

当创建数据表的SQL指令执行后,到底发生了什么?
1、指定数据库下已经存在对应的表

2、在数据库对应的文件夹下,会产生对应表的结构文件(跟存储引擎有关系)

Mysql数据库基础了解及基本操作_第17张图片

<2>查看数据表

Show tables;(查看所有数据表);

Mysql数据库基础了解及基本操作_第18张图片

Show tables like 'pattern';(查看部分表:模糊匹配)

Mysql数据库基础了解及基本操作_第19张图片

Show create table 表名;(查看表的创建语句)

Mysql数据库基础了解及基本操作_第20张图片

Desc/describe/show columns from 表名;(查看表结构:查看表中的字段信息)

Mysql数据库基础了解及基本操作_第21张图片

<3>更新(修改)数据表(表可以修改的有:表名和表选项)

rename table 原表名 to 新表名字

Mysql数据库基础了解及基本操作_第22张图片

修改表选项:字符集,校对集和存储引擎

Alter table 表名 表选项 [=] 值;

Mysql数据库基础了解及基本操作_第23张图片

修改字段:新增,修改,重名,删除
1、新增字段
Alter table 表名 add [column] 字段名 数据类型 [列属性] [位置];
位置:字段名可以存放在表中的任意位置
First:第一个位置

After:在某个字段之后;用法:after 字段名;默认的是最后一个字段之后

Mysql数据库基础了解及基本操作_第24张图片

2、修改字段:修改通常是修改属性或者数据类型
Alter table 表名 modify 字段名 数据类型 [属性] [位置];

Mysql数据库基础了解及基本操作_第25张图片

3、重命名字段

Alter table 表名 change 旧字段 新字段 数据类型 [属性] [位置];

Mysql数据库基础了解及基本操作_第26张图片

4、删除字段
Alter table 表名 drop 字段名;

Mysql数据库基础了解及基本操作_第27张图片

(注:删除方面的操作都要注意备份,删除的数据表内的数据基本无法恢复)

<4>删除数据表

Drop table 表名1,表名2...;   --- 可以一次性删除多张表

Mysql数据库基础了解及基本操作_第28张图片

当删除数据表的指令执行之后,发生了什么?
1、在表空间中,没有了指定的表(表内数据也不存在了)
2、在数据库对应的文件夹下,表对应的文件(与存储引擎有关)也会被删除

Mysql数据库基础了解及基本操作_第29张图片

(3)数据操作
<1>方案一:给全表字段插入数据,不需要指定字段列表;要求数据的值出现的顺序必须与表中设计的字段出现的顺序一致;凡是非数值数据,都需要引号(建议是单引号)包裹。
Insert into 表名 values(值列表)[,(值列表)];   -- 可以一次性插入多条记录

Mysql数据库基础了解及基本操作_第30张图片

方案二:给部分字段插入数据,需要选定字段列表;字段列表出现的顺序与字段的顺序无关,但是值列表的顺序必须与选定的字段顺序一致。
Insert into 表名(字段列表) values (值列表)[,(值列表)];

Mysql数据库基础了解及基本操作_第31张图片

你可能感兴趣的:(学习笔记,mysql)