1、数据库的介绍
①定义:database,简称DB,实际上是一个文件集合,是一个储存数据的仓库,本质就是一个文件系统,MySQL数据库就是按照特定的格式把数据存储起来的仓库,用户可以对这些数据进行CURD(增删改查)
②分类:数据库分为关系型和非关系型,之前有写过redis和mongodb等非关系数据库的介绍和使用,也比较过关系与非关系型之间的区别以及数据库的发展史,详情点击mongodb的介绍和redis的介绍
③优点:持久化存储、读写速度高、保证数据的有效性(不符合约束的数据存不进去)、对程序支持友好,易扩展
2、MySQL的安装
2.1前言
MySQL和redis一样都具有客户端和服务端,只有打开服务端,才能去连接客户端使用sql查询数据库,在公司中,公司服务器电脑会打开服务端,给你账号和密码你连接就好了,这里主要讲如何学习
2.2安装
①第一种是去官网下载MySQL安装百度一个教程学着装(卸载很麻烦,要去注册表删东西,安装也很麻烦,要添加很多包和环境,工作上一点都用不上,如果是初学者及其不推荐用这种方式安装)
②第二种安装phpstudy(一种集成开发环境,支持MySQL服务)使用的时候手动开启MySQL服务就好,phpstudy的安装包我放在评论区,像安装qq一样安装完毕后按照图片操作启动MySQL服务
2.3连接
前提:要开启MySQL服务才能连接客户端
使用图形界面管理工具连接数据库,SQLyog和Navicat随便下在我以sqlyog举例,点击文件点击新连接,输入127.0.0.1或者localhost(回返ip会返回本机地址),用户名和密码都是root,端口号是3306,点击连接
2.4操作数据库
3、SQL的介绍
3.1定义
SQL是结构化查询语言,是一种用来操作RDBMS(关系型数据库管理系统)的数据库语言,用来对数据库进行管理,当前的关系型数据库都支持使用SQL语句进行操作,也就是说可以通过SQL操作oracle、sqlserver、mysql等关系型数据库
3.2分类
DDL语句:数据定义语句,这些语句定义了不同的数据段、数据库、表、列、索引等数据库对象
DML语句:数据操纵语句,用于添加、删除、更新、和查询数据库记录,并检查数据完整性
DCL语句:数据控制语句,用于控制不同数据段直接许可和访问的级别的语句(数据库管理员给的权限)
3.3约束
主键primary key:物理上存储的顺序,唯一非空的字段
非空not null:此字段不允许填写空值
惟一unique:此字段的值不允许重复(身份证号,银行卡号等)唯一可以空的字段
默认default:当不填写此值时会使用默认值,如果填写时以填写为准
外键foreign key:对关系字段进行约束,当为关系字段填写值时,会到关联的表中查询此值是否存在,如果存在则填写成功,如果不存在则填写失败并抛出异常
3.4补充
数据完整性:在表中为了更加准确的存储数据,保证数据的正确有效,在创建表的时候,为表添加一些强制性验证(约束、类型)
数据类型:数值类型、日期时间类型、字符串类型
4、用DOS连接MySQL学习SQL语句
前言:要开启MySQL服务才能连接客户端(上面讲的都是用图形化界面操作MySQL,接下来进入主题学习)
①添加系统环境变量,将安装好的目录中的bin以及它自身添加到环境变量(要明白为什么这么做,我以前的文章有写)
②进入cmd输入mysql -u root -p
然后他会让输入密码输入root即可连接成功,建议使用cmder这个软件(支持很多linux命令比如ls)用cmd也可以
DOS和图形化工具都操作的是同一个MySQL服务,所以他们是相通的,内容一致
③数据库层面上常用命令:(注意sql语句要以分号结束;它不严格区分大小写,只要命令没输错就可以出结果)
连接MySQL:mysql -u root -p root
退出数据库:exit或者quit
查看已经创建的数据库:show databases;
查看MySQL的版本:select version();
显示当前时间:select now();
创建数据库:create database `数据库名称` [可选参数指定字符集,‘utf8’可加引号也可不加];
查看创建数据库的命令:show create database `数据库名称` ;
查看数据库支持的引擎:show engines;
查看当前使用的数据库:select database();
切换想要使用的数据库:use `数据库名称` ;
删除数据库:drop database `数据库名称` ;
④数据库中的表层面常用的命令
创建表:create table 表面 (字段 类型 约束,[字段 类型 约束]);必须要指定数据类型才可以创建成功
查看有哪些表:show tables;
查看表的创建语句:show create table test01;
创建一个主键为id的非空自增表create table test01 (id int primary key not null auto_increment,name varchar(30));
可以去sqlyog验证表结构也可以通过命令查看:desc test01;
5、数据库范式
数据库常用的范式有123范式,但是一共有6种范式
5.1第一范式
属于第一范式关系的所有属性都不可再分,即数据项不可分。
由于会存在数据冗余过大、删除异常、插入异常、修改异常等问题,
所以就诞生了第二范式
5.2第二范式
第二范式是指每个表必须有一个(有且仅有一个)数据项作为关键字或主键(primary key),其他数据项与关键字或者主键一一对应,即其他数据项完全依赖于关键字或主键。
5.3第三范式
第三范式要求在满足第二范式的基础上,任何非主属性不依赖于其他非主属性,即在第二范式的基础上,消除了传递依赖。
必须得将选修相关得重新开一张表才可以满足第三范式