MySQL基础快速入门知识总结(附思维导图)
前言
本文是我这段时间自学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,条件本字段的类型必须为整数型.常与主键一起使用,但不是必须与主键一起使用.
总结
到此这篇关于mysql基础快速入门知识总结的文章就介绍到这了,更多相关mysql基础入门内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
下一篇: C++ delete之静态变量问题详解