MySQL基础快速入门知识总结(附思维导图)
作者:不二灵灭 发布时间:2024-01-18 01:33:06
目录
前言
一.数据库基础知识
1.什么是数据库
2.数据库的分类
3.数据库的常用语言
4.数据库的常用操作方式
5.MySQL的架构
二.数据库的增删改查
1.创建数据库
2.查询数据库
3.修改数据库
4.删除数据库
三.表的增删改查
1.创建表
2.查询表
3.修改表
4.删除表
四.记录的增删改查
1.插入记录
2.查询记录(最常用)
3.修改记录
4.删除记录
五.字段类型
1.数字型
1.1整数型
1.2小数型
2.文本型
3.日期时间
六.字段属性
总结
前言
本文是我这段时间自学MySQL之后,自己总结的一些MySQL的入门基础知识.我自己用的是MySQL 5.7.
一.数据库基础知识
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属性);[选项]
其中的选项主要包括三大类:
字符集 charset=utf8 / GBK …
数据引擎 engine=innodb / mysiam
备注 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.文本型
char(M):定长字符,M表示最大的字符数.优势为运算速度快.常用在255个字符内的固定长度的字符.如:身份证,电话号码等.
varchar(M):变长字符,M表示最大的字符数.优势为节省空间.常用在255个字符以内,长度不确定的字符.
text:常用在256个字符以上的文本中
3.日期时间
datetime:固定的日期时间
timestamp:时间戳:当新增记录或更新记录时自动更新为当前系统时间,用于记录最后一次修改的时间或新插入记录的时间
六.字段属性
not null:设置该字段的值不能为空,不写就是默认可以为空
default 默认值:设置一个默认值,没有数据传入就是使用默认值.有数据传入则使用传入的值
comment:备注用汉字备注字段,方便后期维护
unique key:唯一值该字段的值不能重复,但可以为空
primary key 主键:
用于唯一标识一条记录
一个表最能只能有一个主键
不能为空
不能重复auto_increment 自动增长:在新插入记录时,自动在本字段最大值的基础上加1,条件本字段的类型必须为整数型.常与主键一起使用,但不是必须与主键一起使用.
来源:https://blog.csdn.net/m0_56232078/article/details/119428368


猜你喜欢
- 一、下载PyCharm下载最新版PyCharm,官方地址:https://www.jetbrains.com/pycharm/downloa
- 前言:本文介绍如何构建简单线性回归模型及计算其准确率,最后介绍如何持久化模型。线性回归模型线性回归表示发现函数使用线性组合表示输入变量。简单
- 之前看到很多人一直都问这个问题,不过当时我没当一回事,因为在 CSS 中要垂直居中,多数是在有高度的情况下,或者容器高度不定的情况下才用,看
- Python字符串的format函数format()函数用来收集其后的位置参数和关键字段参数,并用他们的值填充字符串中的占位符。通常格式如下
- django ajax发送post请求的两种方法,具体内容如下所述:第一种:将csrf_token放在from表单里 <script&
- 本文实例讲述了PHP实现对数组分页处理方法。分享给大家供大家参考,具体如下:最近用到了用数组数据分页,这里整理了一下,具体代码如下:<
- 环境:win7+python3.5(anaconda3)理论上,win7及以上的系统和python任意版本均可。一、基础脚本首先我们构建一个
- 前言最近在回答问答python区的问题的时候,发现很多人对于这个break和continue分不清。所以,今天我就写篇文章来讲一下(绝对不是
- 有点抱歉的是我的数学功底确实是不好,经过了高中的紧张到了大学之后松散了下来。原本高中就有点拖后腿的数学到了大学之后更是一落千丈。线性代数直接
- MySql总是定时弹出一个MySQLInstallerConsole.exe的窗口,如何解决呐?这貌似是一条安装命令,Installing
- python中random.sample()方法可以随机地从指定列表中提取出N个不同的元素,但在实践中发现,当N的值比较大的时候,该方法执行
- 前言工作中,Git的使用越来越频繁。。除了最常用的clone,add,commit,push,pull等命令;还有回退命令reset。这一篇
- 学习网络爬虫难免遇到使用代理的情况,下面介绍一下如何使用requests设置代理:如果需要使用代理,你可以通过为任意请求方法提供 proxi
- Vue.js是一个轻巧、高性能、可组件化的MVVM库,同时拥有非常容易上手的API。分页一般和表格一起用,分页链接作为表格的一部分,将分页链
- php+lottery.js制作九宫格抽奖实例,本抽奖功能效果表现好,定制方便简单,新手学习跟直接拿来用都非常不错,兼容IE、火狐、谷歌等浏
- ewebeditor支持兼容IE8 的方法方法:前几天ie8正式公布了,当天中午我就去下载了一个迫不急待的将自己的浏览器升级到ie8,偶还刻
- 一、变量声明的方式let / constlet / const 共同点1.都是块级作用域2.在同一个作用域下,变量名不允许重复3.他们声明的
- 前言 随机数可以用于数学,游戏,安全等领域中,还经常被嵌入到算法中,用以提高算法效率,并提高程序的安全性。平时数据分析各种分布的数据构造也
- 我想把本篇作为css基础教程的序曲,从今天开始翻译和整理我从设计网页以来所学到的css基础知识。本教程会分成N个部分,单独发表,其间可能会插
- 模拟动态产生字母验证码图片模拟生成验证码,首先要做的是生成随机的字母,然后对字母进行模糊处理。这里介绍一下 Python 提供的 Pillo