MYSQL算是我们程序员必不可少的一份求职工具了
无论在什么岗位,我们都可以看到应聘要求上所书写的”精通MYSQL等数据库及优化“
那么我们今天就先来了解一下MYSQL的整体布局并且带你掌握MYSQL的基本内容,希望能为你带来帮助!
MYSQL基本布局
基础篇
MYSQL概述
SQL语法
函数
约束
多表查询
事务
进阶篇
存储引擎
索引
SQL优化
视图/存储过程/触发器
锁
InnoDB核心
MYSQL管理
运维篇
日志
主从复制
分库分表
读写分离
#即使看到这么多内容,也不要太过害怕#我们这篇文章只为大家介绍到基础篇的内容,而我们如果不深入的话,学习到进阶篇已经是足够工作使用的了
MYSQL概述
我们先来整体了解一下MYSQL
数据库相关概念
数据库整体而言,分为三个部分:
目前主流关系型数据库
目前主流关系型数据库有四种:
ORACLE
MYSQL
SQLServer
PostgreSQL
#注意:我们所学习的SQL语句是针对所有关系型数据库,所以不存在你学习了MYSQL却在工作中遇到ORACLE却无法使用的情况
数据库的启动和连接
数据库的正常启动一般在cmd命令行中:
#启动:netstartmysql80#关闭:netstopmysql80#客户端连接:在电脑中找到客户端命令行,并输入密码即可
但我们的日常使用中,使用cmd命令行是极其不美观且不实用的,我们一般使用软件代替:
这里我们推荐使用DataGrip软件
但下载只有30天试用,需要收费,可以到其他网站找到破解版,这里暂不做内容讲解
关系型数据库
关系型数据库概念:
建立在关系模型基础上,由多张相互连接的二维表组成的数据库
特点:
使用表存储数据,格式统一,便于维护
使用SQL语言操作,标志统一,使用方便
数据模型
数据模型示意图:
客户端-DBMS-数据库-表
注意:
DBMS可以操作多个数据库
单个数据库可以存在多个表
SQL数据类型
我们在讲解SQL语法之前需要先来了解一下SQL中的数据类型:
数值类型
注意:TINYINT可以用于一些非常小的数值中,因为只占用1byte,可以减少内存使用SIGNED可以用于非负数的情况下,增大数值
字符串类型
注意:CHAR属于定长字符串,长度不可改变,未书写长度用空格代替,但性能好VARCHAR属于变长字符串,长度可变,但性能较差
日期类型
SQL语法
SQL语法分为多个部分,让我们来逐步了解:
SQL通用语法
SQL通用语法适用于所有SQL语句中:
SQL语句可以单行或多行书写,以分号结尾
SQL语句可以使用空格/缩进来增强语句的可读性
MYSQL数据库的SQL语句不区分大小写,但关键字建议大写
注释:#单行注释,/**/多行注释
SQL语句分类
SQL语句主要分为四种:
DDL讲解
DataDefinitionLanguage:数据定义语言,用来定义数据库对象(数据库,表,字段)。
库操作:
查询:
#查询所有数据库SHOWDATABASES;#查询当前数据库SELECTDATABASE();
创建:
#创建数据库CREATEDATABASE[IFNOTEXISTS]数据库名[DEFAULTCHARSET字符集][COLLATE排序规则];/*注意:[IFNOTEXISTS]:当数据库不存在时创建数据库(防止重复创建)*/
删除:
#删除数据库DROPDATABASE[IFEXISTS]数据库名;注意:[IFEXISTS]:当数据库存在时删除数据库(防止出错)*/
使用:
#使用/转换数据库USE数据库名;
表操作:
创建:
#创建表CREATETABLE表名( 字段1字段1类型[COMMENT字段1注释],字段2字段2类型[COMMENT字段2注释],字段3字段3类型[COMMENT字段3注释],字段4字段4类型[COMMENT字段4注释])[COMMENT表注释];/*注意:数据之间用“,”隔开,最后一个没有“,”*/
查询:
#查询表SHOWTABLES;
查询表结构:
#查询表结构DESC表名;
查询指定表的创表语句:
#查询指定表的创表语句SHOWCREATETABLE表名;
添加字段:
#添加字段ALTERTABLE表名ADD字段名类型(长度)[COMMENT注释][约束];
修改数据类型:
#修改数据类型ALTERTABLE表名MODIFY字段名新数据类型(长度);
修改字段名和字段类型:
#修改字段名和字段类型ALTERTABLE表名CHANGE旧字段名新字段名类型(长度)[COMMENT注释][约束];
删除字段:
#删除字段ALTERTABLE表名DROP字段名;
修改表名:
#修改表名ALTERTABLE表名RENAMETO新表名;
删除表:
#删除表DROPTABLE[IFEXISTS]表名;#删除表并重建该表TRUNCATETABLE表名;/*注意:无论哪种方法,里面数据都会被全部删除*/
案例展示:
设计一张员工信息表,要求如下:
编号(纯数字)
员工工号(字符串,长度不超过10)
员工姓名(字符串,长度不超过10)
性别(男/女,存放一个字)
年龄(正常人年龄,没有负数)
身份证号(二代身份证均为18位,且包含X)
入职时间(年月日即可)
代码展示:
createtableemp(idint