Mysql 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 关系型数据库(Relational Database Management System:关系数据库管理系统)应用软件之一。mysql在问开发中,几乎必不可少,因为其他的可能是要收费的,所以mysql变成了首选。
1、mysql中常见的术语:
- 数据库: 数据库是一些关联表的集合。
- 数据表: 表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。
- 列: 一列(数据元素) 包含了相同类型的数据, 例如邮政编码的数据。
- 行:一行(元组,或记录)是一组相关的数据,例如一条用户订阅的数据。
- 冗余:存储两倍数据,冗余降低了性能,但提高了数据的安全性。
- 主键:主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据。
- 外键:外键用于关联两个表。
- 复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引。
- 索引:使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录。
- 参照完整性: 参照的完整性要求关系中不允许引用不存在的实体。与实体完整性是关系模型必须满足的完整性约束条件,目的是保证数据的一致性。
2、mysql基本语法:
创建数据库
CREATE DATABASE 数据库名;
删除数据库
drop database 数据库名;
3、mysql数据类型
4、mysql的SQL基本语法
创建一个表
CREATE TABLE table_name (column_name column_type);
例如:
CREATE TABLE IF NOT EXISTS `maoheyeren`(
`id` INT UNSIGNED AUTO_INCREMENT,
`title` VARCHAR(100) NOT NULL,
`author` VARCHAR(40) NOT NULL,
`submission_date` DATE,
PRIMARY KEY ( `id` )
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
删除一个表
DROP TABLE table_name ;
对一个表插入数据:
INSERT INTO table_name ( field1, field2,...fieldN )
VALUES
( value1, value2,...valueN );
查询一个表数据:
SELECT column_name,column_name
FROM table_name
[WHERE Clause]
分组查询语句:
SELECT column_name, function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;
更新一个表数据:
UPDATE table_name SET field1=new-value1, field2=new-value2
[WHERE Clause]
删除一个表数据:
DELETE FROM table_name [WHERE Clause]
创建视图:
CREATE [OR REPLACE] VIEW 视图名称[(列名列表)] AS SELECT语句 [ WITH [
CASCADED | LOCAL ] CHECK OPTION ]
创建存储过程:
CREATE PROCEDURE 存储过程名称 ([ 参数列表 ])
BEGIN
-- SQL语句集合
END ;
调用存储过程:
CALL 存储过程名称 ([ 参数 ]);
如果所要调用的存储过程是无参的,括号() 可省略
删除存储过程
DROP PROCEDURE [ IF EXISTS ] 存储过程名称 ;
5、mysql事务
事务
是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。
事务的特性(ACID):
原子性(Atomicity):事务是不可分割的最小操作单元,要么全部成功,要么全部失败。
一致性(Consistency):事务完成时,必须使所有的数据都保持一致状态。
隔离性(Isolation):数据库系统提供的隔离机制,保证事务在不受外部并发操作影响的独立环境下运行。
持久性(Durability):事务一旦提交或回滚,它对数据库中的数据的改变就是永久的。
上述就是事务的四大特性。
mysql事务的隔离级别:(其中默认隔离级别是可重复读)
查看事务的隔离级别:
SELECT @@TRANSACTION_ISOLATION;
设置事务的隔离级别语法:
SET [ SESSION | GLOBAL ] TRANSACTION ISOLATION LEVEL { READ UNCOMMITTED |
READ COMMITTED | REPEATABLE READ | SERIALIZABLE }
6、mysql索引(默认的索引是B+树数据结构)
索引(index)是帮助MySQL高效获取数据的数据结构 ,相当于课本的目录。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据, 这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。
在无索引情况下,在我们执行查询语句的时候默认会全表扫描。
创建索引的语句:
-- 创建索引
CREATE [ UNIQUE | FULLTEXT ] INDEX index_name ON table_name (
index_col_name,... ) ;
查看索引:
-- 查看索引
SHOW INDEX FROM table_name ;
删除索引:
-- 查看索引
SHOW INDEX FROM table_name ;