一、数据库基础(Database)
1.1 认识数据库
1.1.1 基本概念
DB:能将大量数据保留起来,通过计算机加工而成的可以进行高效拜候的数据集合称为数据库(database,db)
DBMS:用来办理数据库的计算机系统称为数据库办理系统(database management system,dbms)。
RDBMS:关系型数据库通过关系数据库办理系统(relational database management system,rdbms)进行办理。
我们常常会用“数据库”简单代称上面的三个概念,但是要注意使用场景。
1.1.2 数据库作用
B站等网站、微信等APP背后都是一个巨大的数据库系统,我们点击或者输入文字都会存储在数据库中或者从数据库中取出对应数据。
数据库办理系统的构成:
a.能让我们使用表、列和索引实现一个数据库(如何存入数据)
b.解析和执行一个SQL查询,并将结果返回给客户端(如何读出数据)
c.提供办理接口(如何办理数据I/O过程)
数据库的构成:
a.(子)数据库:是表的集合,带有相关的元数据。
b.表:)一个表是由列和行组成的数据矩阵。数据库基础对象。
c.列(字段):一个列(数据元素)包含同一类型的数据。
d.行(记录):是一组相关的数据。
e.约束:用于确保数据库满足业务规则。
1.1.3 数据库分类
a.关系型数据库:
MySQL,oracle,SQLserver,db2,access等,传统数据库一般都是使用这类关系型数据库。所有的数据存储在不同表中,使用主键或外键建立表间的关系。
b.非关系型数据库(NoSQL):
文档型数据库(mongodb),键值(Key-Value)存储数据库(redis),列存储数据库(Cassandra),图形(Graph)数据库等,为解决大规模数据集合、多重数据种类、高并发的新需求。
1.1.4 数据库办理系统(DBMS)
a.数据库文件
按照必然规则,存放在硬盘上的数据文件集合。所以,MySQL 里的数据库都能在计算机硬盘内某个文件夹里找到对应的数据文件。
b.数据库办理系统
用来办理数据库文件一套程序(比如关系型/非关系型数据库)。
c.数据库实例
指计算机内存中处于运行状态的数据库程序,以及为这些程序分配的一些内存空间。
实例是位于内存中,只在数据库处运行状态时才存在。简单点来讲,数据库实例就是把数据库加载到内存里面。
d.数据库应用
建立在数据库上,对其功能进行扩充的程序。比如支付宝和微信都属于数据库应用程序,它们的后台都需要数据库来存储数据。
1.2 MySQL
1.2.1 MySQL官方下载地址
MySQL :: Download MySQL Community Server
1.2.2 MySQL的种类
MySQL community server 社区版本,开源免费,但不提供官方技术支持,通常情况下都是选择社区版。
MySQL enterprise edition 企业版本,需付费,可以试用30天。
MySQL cluster集群版,开源免费。可将几个MySQLserver封装成一个server。
MySQL clustercge高级集群版,需付费。
对MySQL的二次开发:percona(淘宝在用,用作定制化开发);mariadb(银行经常它用来取代MySQL)
1.2.3 MySQL版本
MySQL 的命名是按照发行版本不同由三个数字和一个后缀组成,如:MySQL-5.7.2。发行版名称中的数字使用如下规则解析:
5表示主版本(major version),同时也定义了文件格式(file format)。所有主版本相同的版本有着同样的文件格式,不消主版本的不同会很大;
7表示发行版本(release level),主版本和发行版本一同构成该发行版序列号(series number);
5表示该发行版系列的小版本(version),该数字随着发行版本的每次新发布递增,通常我们会选择最新的次版本。
1.3如何拜候数据库
要拜候数据库办事器,必需通过客户端.客户端可以分为两大类:命令行(自带),可视化工具。
1.3.1 通过命令行客户端拜候数据库办事器
第一步:配置环境变量path
第二步:打开命令窗口
在“开始”输入“cmd”+回车,也可以按键盘上的“微软logo”+“R”
第三步:启动MySQL客户端程序
如果数据库在当前电脑上,可以直接输入指定账户和密码,连接办事。如下图输入:
mysql -u -root -p
如果数据库在办事器上,不在你电脑上。比如你们公司数据库的ip 地址是:192.168.1.122。上面输入命令行的时候需要改成输入:
mysql -h 192.168.1.122-u -root -p
第四步:退出命令行模式
执行退出语句“exit”
1.3.2 内置的命令行模式拜候
也可以不在cmd进入命令行模式,通过MySQL内置的命令行模式:
1.3.3 图形化界面工具拜候
常用的MySQL可视化工具:
MySQL workbench:官方自带免费工具
navicat:收费版本,界面和功能更加强大,还可以支持SQLserver
MySQL workbench的使用
添加连接数据库名字和IP地址,默认的地址是本机数据库地址。
1.4MySQL办事启动与关闭命令
从命令行或者图形化界面客户端连接数据库办事器时,一般都会自动启动MySQL办事实例,但是有时候会出现不测,办事没有启动,这时候需要手动启动。
方法一:命令行模式
在开始菜单中输入cmd,然后右击“命令提示符”,用办理员权限打开,不然有可能无法拜候。
使用启动或者关闭MySQL默认办事实例:
使用net start/stop mysql57启动或者关闭MySQL默认办事实例:
方法二:窗口模式
进入控制面板-办理工具-办事-MySQL57,右键启动或关闭MySQL默认办事实例。
右击 MySQL57这一行,可以启动和关闭 MySQL57。
二、MySQL简介
2.1 SQL和MySQL
SQL:结构化查询语言(structured query language),是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和办理关系数据库系统。
MySQL是一个关系型数据库办理系统,是一种开源的数据库软件,简单一点的理解就是 MySQL 用来存储数据,而 SQL 是用来办理 MySQL 的一种语言。
SQL是一种语言,MySQL 是一种数据库软件。
SQL的标准并不强制每种RDMS都必需使用。
2.2 SQL的基本书写规则
SQL 语句以分号“;”结尾。
SQL语句不区分大小写,但是插入到表中的数据是区分大小写的。
字符串和日期常数需要使用单引号“ ' ”括起来,数字直接写即可。
单行注释可以用“-- ”
多行注释可以用快捷键:ctrl+/(小键盘的”/”)
2.3 数据库基本操作
SQL用关键字、表名、列名等组合而成的一条语句(SQL语句)来描述操作的内容。关键字是指那些含义或使用方法已事先定义好的英语单词。
2.4 SQL语句分类
按照对RDBMS 赋予的指令种类的不同,SQL语句可以分为以下三类。
DDL
DDL(data definition language,数据定义语言)用来创建或者删除存储数据用的数据库以及数据库中的表等对象。DDL包含以下几种指令。
create:创建数据库和表等对象
alter:修改数据库和表等对象的结构
drop:删除数据库和表等对象
DML
DML(data manipulation language,数据把持语言)用来查询或者变换表中的记录。DML 包含以下几种指令。
insert:向表中插入新数据
update:更新表中的数据
delete:删除表中的数据
DCL
DCL(data control language,数据控制语言)用来确认或者取消对数据库中的数据进行的变换。除此之外,还可以对 RDBMS的用户是否有权限操作数据库中的对象(数据库表等)进行设定。DCL 包含以下几种指令。
commit:确认对数据库中的数据进行的变换
rollback:取消对数据库中的数据进行的变换
grant:赋予用户操作权限
revoke:取消用户的操作权限
DQL
DQL(data query language)数据查询语言(select),实现对数据库中数据的读操作。是数据分析重点学习的重点。
TCL
TCL(transaction control language) 事务控制语言(save commit roll back)用于事务的操作。
2.5 创建数据库
方法一:使用SQL代码
create database school;
use school;
方法二:在数据库区域点击建库
2.6 显示和使用数据库
Show databases;
use school;
MySQL自身会有一些系统库,一般不要删除或变换。
sys库:MySQL5.7增加了sys系统数据库,通过这个库可以快速的了解系统的元数据信息。
information_schema库:提供了拜候数据库元数据的方式。
mysql库:主要负责存储数据库的用户、权限设置、关键字等MySQL本身需要使用的控制和办理信息。
performance_schema库:主要用于收集数据库办事器性能参数。
2.7 删除数据库
方法一:SQL代码
drop database school;
方法二:在workbench上删除
2.8 创建表
方法一:SQL代码
在建一个新表之前就指定数据库,这里指定数据库school。
use school;
creat table+表名;
方法二:在workbench上建表
2.9 数据库引擎
2.9.1 什么是数据库引擎
相当于数据库实例的发动机。数据库引擎是用于存储、处理和庇护数据的核心办事。利用数据库引擎可控制拜候权限并快速处理事务,从而满足企业内大多数需要处理大量数据的应用程序的要求。使用数据库引擎创建用于联机事务处理或联机分析处理数据的关系数据库。这包罗创建用于存储数据的表和用于查看、办理和庇护数据安全的数据库对象(如索引、视图和存储过程)。
不同的数据库引擎有不同的特点,可以满足各种不同的业务场景。MySQL。
2.9.2 常见的数据库引擎
包罗innodb、myisam、memery、csv、blackhole、archive、federated、performance_schema。其中innodb和myisam占到95%以上。
innodb是一个强大的事务型存储引擎,这种存储引擎已经被很多互联网公司使用,为用户操作非常大的数据存储提供了一个强大的解决方案。
innodb还引入了行级锁定和外键约束,在以下场合下,使用innodb 是最抱负的选择:
更新密集的表:innodb 存储引擎特别适合处理多重并发的更新请求。
事务:innodb 存储引擎是支持事务的标准 MySQL 存储引擎。
外键约束:MySQL支持外键的存储引擎只有innodb
The most popular courses