MySQL基础快速入门知识总结(附思维导图)


Posted in MySQL onSeptember 25, 2021

前言

本文是我这段时间自学MySQL之后,自己总结的一些MySQL的入门基础知识.我自己用的是MySQL 5.7.

MySQL基础快速入门知识总结(附思维导图)

一.数据库基础知识

1.什么是数据库

数据库是按照一定数据结构,进行组织,存储,管理数据的仓库数据的仓库,是一种对大量信息进行管理的高效解决方案.

数据库系统DBS=数据库DB+数据库管理系统DBMS.

2.数据库的分类

数据库的分为关系型数据库和分关系型数据库.

关系型:是建立在关系模型上的数据库,关系模型顾名思义就是二维表模型,用来记录实体和实体与实体信息之间的关系信息.常见的关系型数据库有Oracle ,MySQL ,SQL Server.

非关系型数据库:不建立在关系模型上的数据库.主要有MongoDB Redis

3.数据库的常用语言

数据库系统DBS

结构化查询语言SQL

数据库DB

数据库管理系统DBMS

表table
行row   => 记录record
列column  => 字段field

4.数据库的常用操作方式

DOS命令:

连接远程主机:mysql -h 主机名/IP地址 -P端口号 -u 用户名 -p 密码
连接本机主机:mysql -u用户名 -p密码

客户端(可视化软件):Navicat

代码:

Web网页:PHPMyAdmin

5.MySQL的架构

C/S架构:
 服务端管理和存储数据
 客户端发送操作请求

二.数据库的增删改查

1.创建数据库

#创建数据库的语法
create database `库名` charset=utf8/gbk;

创建数据库前,需要先连接进数据库,可以用自己的本地数据库练习.

2.查询数据库

#查询所有数据库
show databases;
#按条件查询like ,其中%表示任意多个字符,-表示任意一个字符.
create databases like '%-';
#查询建库语句
show create database;

3.修改数据库

#修改数据库(仅能修改选项,也就是字符集这些)
alter database `库名` [新选项];

4.删除数据库

#删除数据库(语法很简单,但后果很严重.一般你也没有权限,哈哈.)
drop database `库名`;

三.表的增删改查

1.创建表

#创建表前,先指定数据库
use `指定库名`;
#创建表的
create table `表名`(
`字段1` 字段1类型 字段1属性,
...
`字段N` 字段N类型 字段N属性);[选项]

其中的选项主要包括三大类:

  1. 字符集 charset=utf8 / GBK …
  2. 数据引擎 engine=innodb / mysiam
  3. 备注 comment='‘备注内容''

其它的字段类型和字段属性,后面有详细写到.

2.查询表

#查询所有表
show tables;
#条件查询
show tables like '%-';
#查询表结构
desc `表名`;
#查询建表语句
show create table `表名`;

3.修改表

#修改表选项
alter table `表名` [新选项];
#修改表名
rename table `旧表命` to `新表名`;
#修改表内的字段
alter table `表名` change `旧字段名` `新字段名` 新字段类型;
#添加新字段到字段末尾
alter table `表名` add `新字段名` 类型 属性;
#添加字段到对应字段后
alter table `表名` add `新字段名` 类型 属性 after `对应字段`
#添加字段到最前面
alter table `表名` add `新字段名` 类型 属性 first;

4.删除表

#如果表存在,则删除表,否则报错
drop table [if exists] `表名`;

四.记录的增删改查

1.插入记录

#插入记录
insert into `表名`(`字段1`,...`字段`) values('值1',...,'值N');
#当一次传入所有值时,可以省不写字段
insert into `表名` values('值1',...,'值N');
#当需一次传入多条记录时
insert into `表名`(`字段1`,...`字段`) values
('值1',...,'值N'),
('值1',...,'值N'),
...,
('值1',...,'值N');
#当需一次传入多条记录,且字段全传入时
insert into `student` values(值列表1),(值列表2),(值列表n);

2.查询记录(最常用)

#查询语法
select [选型] 字段列表 as 别名 from `表名` where 条件表达式;

1、条件表达式:

逻辑运算符:and or not

比较运算符:+ - * / < > = !=

2、选项:

all:查询所有,不写默认就是所有

distinct:去重.重复指查询后的数据里,记录的所有字段全部相同,才认定为重复.

as:别名.给查询后的字段设置一个别名,方便查阅.

常见的聚合函数:count(),Max(),Min(),Sum(),avg()

3、连表查询 join

1.内连接 inner join 
#将参与连接的两个表中符合连接条件的记录查询出来,不符合的过滤掉.
select * form `表1` inner join `表2` on 连接条件;
2.左外连接 left Join
#将参与连接的左表中即使不能匹配连接条件的记录也会查询出来,右表不符合的过滤掉
select * from `表1` left join `表2` on 连接条件;
3.右外连接 right join 
#将参与连接的右表中即使不能匹配连接条件的记录也会查询出来,左表不符合的过滤掉
select * from `表1` right join `表2` on 连接条件;

3.修改记录

#语法
update `表名` set `字段`='新值' where 条件表达式;

4.删除记录

#语法
delete from `表名` where 条件表达式;

五.字段类型

1.数字型

1.1整数型

tinyint:占用一个字节,一共能表示256个数

有符号:-128~127
无符号:0~255

int:占用4个字节

有符号:-21亿~21亿
无字符:0~42亿

1.2小数型

浮点数:

float(M,D):单精度浮点数
double(M,D):双精度浮点数

定点数:

decimal(M,D):数据不会丢失的小数类型,常用于记录货币

2.文本型

  1. char(M):定长字符,M表示最大的字符数.优势为运算速度快.常用在255个字符内的固定长度的字符.如:身份证,电话号码等.
  2. varchar(M):变长字符,M表示最大的字符数.优势为节省空间.常用在255个字符以内,长度不确定的字符.
  3. text:常用在256个字符以上的文本中

3.日期时间

  1. datetime:固定的日期时间
  2. timestamp:时间戳:当新增记录或更新记录时自动更新为当前系统时间,用于记录最后一次修改的时间或新插入记录的时间

六.字段属性

  1. not null:设置该字段的值不能为空,不写就是默认可以为空
  2. default 默认值:设置一个默认值,没有数据传入就是使用默认值.有数据传入则使用传入的值
  3. comment:备注用汉字备注字段,方便后期维护
  4. unique key:唯一值该字段的值不能重复,但可以为空
  5. primary key 主键:
    用于唯一标识一条记录
    一个表最能只能有一个主键
    不能为空
    不能重复
  6. auto_increment 自动增长:在新插入记录时,自动在本字段最大值的基础上加1,条件本字段的类型必须为整数型.常与主键一起使用,但不是必须与主键一起使用.

总结

到此这篇关于MySQL基础快速入门知识总结的文章就介绍到这了,更多相关MySQL基础入门内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

MySQL 相关文章推荐
Mysql 如何批量插入数据
Apr 06 MySQL
linux下导入、导出mysql数据库命令的实现方法
May 26 MySQL
MySQL 不等于的三种使用及区别
Jun 03 MySQL
浅谈MySQL next-key lock 加锁范围
Jun 07 MySQL
MySQL修改默认引擎和字符集详情
Sep 25 MySQL
Mysql中一千万条数据怎么快速查询
Dec 06 MySQL
MySQL RC事务隔离的实现
Mar 31 MySQL
MySql重置root密码 --skip-grant-tables
Apr 11 MySQL
优化Mysql查询的示例
Apr 26 MySQL
mysql查找连续出现n次以上的数字
May 11 MySQL
mysql字段为NULL索引是否会失效实例详解
May 30 MySQL
MySQL中JOIN连接的基本用法实例
Jun 05 MySQL
MySQL连接控制插件介绍
Sep 25 #MySQL
Mysql案例刨析事务隔离级别
Sep 25 #MySQL
MySQL定时备份数据库(全库备份)的实现
Sep 25 #MySQL
MySQL修改默认引擎和字符集详情
Sep 25 #MySQL
MySQL 用 limit 为什么会影响性能
Sep 15 #MySQL
一次MySQL启动导致的事故实战记录
Sep 15 #MySQL
MySQL中几种插入和批量语句实例详解
Sep 14 #MySQL
You might like
使用GROUP BY的时候如何统计记录条数 COUNT(*) DISTINCT
2011/04/23 PHP
PHP开发框架Laravel数据库操作方法总结
2014/09/03 PHP
PHP之正则表达式捕获组与非捕获组(详解)
2015/07/29 PHP
WordPress中用于获取文章作者与分类信息的方法整理
2015/12/17 PHP
浅谈PHP的数据库接口和技术
2016/12/09 PHP
实例讲解PHP表单验证功能
2019/02/15 PHP
一个网马的tips实现分析
2010/11/28 Javascript
一个不错的字符串转码解码函数(自写)
2014/07/31 Javascript
简单实现兼容各大浏览器的js复制内容到剪切板
2015/09/09 Javascript
jQuery使用contains过滤器实现精确匹配方法详解
2016/02/25 Javascript
angular 基于ng-messages的表单验证实例
2017/05/04 Javascript
bootstrapvalidator之API学习教程
2017/06/29 Javascript
详解webpack-dev-server的简单使用
2018/04/02 Javascript
Vue引入jquery实现平滑滚动到指定位置
2018/05/09 jQuery
Node.js模拟发起http请求从异步转同步的5种用法
2018/09/26 Javascript
基于Vue-Cli 打包自动生成/抽离相关配置文件的实现方法
2018/12/09 Javascript
JS表格的动态操作完整示例
2020/01/13 Javascript
实例讲解JavaScript 计时事件
2020/07/04 Javascript
[02:08]DOTA2英雄基础教程 马格纳斯
2014/01/17 DOTA
Python列表推导式与生成器表达式用法示例
2018/02/08 Python
详解Python字典小结
2018/10/20 Python
Python参数类型以及常见的坑详解
2019/07/08 Python
django template实现定义临时变量,自定义赋值、自增实例
2020/07/12 Python
Python+Opencv身份证号码区域提取及识别实现
2020/08/25 Python
Python读取多列数据以及用matplotlib制作图表方法实例
2020/09/23 Python
工程师必须了解的LRU缓存淘汰算法以及python实现过程
2020/10/15 Python
scrapy头部修改的方法详解
2020/12/06 Python
CSS3中background-clip和background-origin的区别示例介绍
2014/03/10 HTML / CSS
HTML5新特性之语义化标签
2017/10/31 HTML / CSS
巴西婴儿用品商店:Bebe Store
2017/11/23 全球购物
澳大利亚先进的皮肤和激光诊所购物网站:Soho Skincare
2018/10/15 全球购物
给幼儿园老师的表扬信
2014/01/19 职场文书
物流专员岗位职责
2014/02/17 职场文书
校园标语大全
2014/06/19 职场文书
合作协议书格式
2014/08/19 职场文书
开展批评与自我批评发言稿
2014/10/16 职场文书