一、基础知识:
1.数据库基础知识
数据(Data):文本信息(字母、数字、符号等)、音频、视频、图片等;
数据库(DataBase):存储数据的仓库,本质文件,以文件的形式将数据保存到电脑磁盘中
数据库管理系统(DBMS):管理、操作、维护数据库的软件
数据库应用程序(DBAS):DataBase Application System操作数据库管理系统,使用数据
数据库管理员(DBA):DataBase Administrator负责数据库的维护和运营。
2.数据库分类:
关系型数据库:MySql、Oracle、DB2、SQL server
非关系型数据库:Redis、MongoDB、MemCache、HBase
2.1关系型数据库
将复杂的数据,以二维表(存储关系:行、列)来展示,由二维表之间的联系组成数据组
单表操作、多表操作;
优点:易于维护(二维表结构格式一致)、使用方(通用SQL)、复杂操作(单表多表联合)
缺点:操作磁盘文件(读写性能差)、固定的表结构(灵活度降低)、处理高并发读写较差
2.2非关系型数据库(NoSQL)
非关系型数据库NoSQL(Not Only SQL)数据库,数据结构化存储方法的集合,可以是文档、键值对等。
二、MySql基础知识
MySQL 是一个关系型数据库管理系统, 由瑞典 MySQL AB 公司开发, 目前属于 Oracle 公司。MySQL从最初的1.0、3.1到后来的8.0,发生了各种各样的变化。被Oracle收购后,MySQL的版本演化出了多个分支,除了需要付费的MySQL企业版本,还有很多MySQL社区版本。
1.SQL(Strcutured Query Language)语句
1.1SQL基本概念
SQL:Structured Query Language结构化查询语句,是目前使用最广泛的关系型数据库操作语言。在数据库管理系统中,使用SQL语言来实现数据的存取、更新等功能。
SQL标准,涉及的内容其实是SQL92里头最基本或者说最核心的一部分。SQL92本身是分级的,包括入门级、过度级、中间级和完全级。不过,SQL标准包含的内容实在太多了,而且有很多特性对新的SQL产品而言也越来越不重要了。从SQL99之后,标准中符合程度的定义就不再分级,而是改成了核心兼容性和特性兼容性;也没有机构来推出权威的SQL标准符合程度的测试认证了。
1.4SQL分类
1.4.1数据查询语言DQL(Data Query Language)
主要用于数据查询,基本结构SELECT 字段 FROM 及 WHERE 子句组合查询一条或多条语句
SELECT、 FROM、 WHERE、 GROUP BY、having、ORDER BY、limit
1.4.2数据操作语言DML(Data Manipulation Language)
主要用于数据的增、删、改的操作
INSERT INTO 、 DELETE FROM、 UPDATE 表名 SET
1.4.3数据定义语言DDL(Data Definition Language)
主要用于对数据库对象(库、表、索引、视图),进行创建、修改、删除
CREATE、ALTER、DROP 配合 table、database、default、rename to、change等关键字操作
1.4.4数据控制语言DCL(Data Control Language)
主要用于授予或回收访问数据库的权限;
GRANT(授予权限),REVOKE(回收权限)
1.4.5事务控制语言TCL(Transaction Control Language)
数据库的事务管理
START TRANSACTION:开启事务
COMMIT:提交事务
2.DDL(Definition)操作
DDL主要用针对是数据库对象(数据库、表、索引、视图、存储过程)进行创建, 修改和删除操作。
create创建、drop删除、alter修改;
3.DML(Manipulation)操作
3.1 添加数据 insert into
-- 1. 插入部分或全部字段
insert into 表名(字段名1,字段名2,...,字段名n) values(值1,值2,...,值n);
-- 2. 插入全部字段
insert into 表名 values(值1,值2,...,值n);3.2 修改数据
3.2修改数据 update...set
-- 语法格式
update 表名 set 字段1=值1,字段2=值2,...,字段n=值n where 条件;
3.3 删除数据 delete from
-- 语法格式
delete from 表名 where 条件;
4.DQL(Query)数据查询语句
MySQL提供了一张虚拟表,该表名为“dual”,是MySQL为了满足用“SELECT ••• from•••”的习惯而增设的一张虚拟表。 在使用dual表时,如果没有where子句,则可以省略“from dual”, 没有实际意义, 查询的字段不属于任何表的时候, 就可以使用dual这张虚拟表。
select 字段,[聚合函数(字段)] from 表名 [where 条件] group by 字段名 [having 条件] [排序]
5.TCL(Transaction Contral)事务控制语句
常用的存储引擎有InnoDB(MySQL5.5以后默认的存储引擎)和MyISAM(MySQL5.5之前默认的存储引擎),其中InnoDB支持事务处理机制,而MyISAM不支持。
事务是一个整体, 由一条或者多条SQL语句组成, 这些SQL语句要么都执行成功, 要么就失败, 只要有一条SQL出现异常, 整个操作就会回滚。
回滚: 就是事务运行的过程中发生了某种故障, 或者SQL出现了异常, 事务不能继续执行, 系统将事务中对数据库的所有已完成的操作全部取消, 回滚到事务开始时的状态。