百木园-与人分享,
就是让自己快乐。

Mysql 手册

简介

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。
MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

DDL(数据定义语言)

操作数据库

-- 查询
show databases;

-- 创建数据库
create database 数据库名称;

-- 创建数据库(判断,如果不存在则创建)
create database if not exists 数据库名称;

-- 删除数据库
drop database 数据库名称;

-- 删除数据库(判断,如果存在则删除)
drop database if exists 数据库名称;

-- 查看当前使用的数据库
select database();

-- 使用数据库
use 数据库名称;

操作表

-- 查询表
show tables;

-- 查询表结构
desc 表名称;

-- 创建表
create table 表名称(
	字段名1 数据类型1,
    字段名2 数据类型2,
    字段名3 数据类型3,
    ...
    字段名n 数据类型n
);

-- 删除表
drop table 表名;

-- 删除表时判断表是否存在
drop table if exists 表名;

-- 修改表
alter table 表名 rename to 新的表名;

-- 添加一列
alter table 表名 add 列名 数据类型;

-- 修改数据类型
alter table 表名 modify 列名 新数据类型;

-- 修改列名和数据类型
alter table 表名 change 列名 新列名 新数据类型;

-- 删除列
alter table 表名 drop 列名;

数据类型

数据类型 大小 描述
MEDIUNINT 3 bytes 大整数值
INT或INTEGER 4 bytes 大整数值
BIGINT 8 bytes 极大整数值
FLOAT 4 bytes 单精度浮点数值
DOUBLE 8 bytes 双精度浮点数值
DECIMAL 小数值
DATE 3 日期值
TIME 3 时间值或持续时间
YEAR 1 年份值
DATETIME 8 混合日期和时间值
TIMESTAMP 4 混合日期和时间值、时间戳
CHAR 0-255 bytes 定长字符串
VARCHAR 0-65535 bytes 变长字符串
TINYBLOB 0-255 bytes 不超过255个字符的二进制字符串
TINYTEXT 0-255 bytes 短文本字符串
BLOB 0-65535 bytes 二进制形式的长文本数据
TEXT 0-65535 bytes 长文本数据
MEDIUMBLOB 0-16777215 bytes 二进制形式的中等长度文本数据
MEDIUMTEXT 0-16777215 bytes 中等长度文本数据
LONGBLOB 0-4294967295 bytes 二进制形式的极大文本数据
LONGTEXT 0-4294967295 bytes 极大文本数据

DML(数据操纵语言)

添加数据

-- 给指定列添加数据
insert into 表名(列名1,列名2,...) values (值1,值2,...);

-- 给全部列添加数据
insert into 表名 values (值1,值2,...);

-- 批量添加数据
insert into 表名(列名1,列名2,...) values (值1,值2,...),(值1,值2,...),(值1,值2,...)...;
insert into 表名 values (值1,值2,...),(值1,值2,...),(值1,值2,...)...;

更新数据

-- 更新数据
update 表名 set 列名1=值1, 列名2=值2;

删除数据

-- 删除数据
delete from 表名 where 列名1=值1;

DQL(数据查询语言)

条件查询

select 字段列表 from 表名 where 条件列表;

分页查询

select 字段列表 from 表名 limit 起始索引, 查询条目数;
-- 起始索引:从0开始
-- 计算公式:起始索引=(当前页码-1)*每页显示条数

约束

概念

约束是作用于表中列上的规则,用于限制加入表的数据

约束的存在保证了数据库中数据的正确性、有效性和完整性

分类

约束名称 描述 关键字
非空约束 保证列中所有数据不能有null值 NOT NULL
唯一约束 保证列中所有数据各不相同 UNIQUE
主键约束 主键是一行数据的唯一标识,要求非空白唯一 PRIMARY KEY
检查约束 保证列中的值满足某一条件 CHECK
默认约束 保存数据时,未指定值则采用默认值 DEFAULT
外键约束 外键用来让两个表的数据之间建立链接,保证数据的一致性和完整性 FOREIGN KEY

?MySql不支持检查约束

以外键约束为例

-- 创建表时添加外键约束
create table 表名(
	列名 数据类型,
    ...
    [CONSTRAINT] [外键名称] FOREIGN KEY(外键列名) REFERENCES 主表(主表列名)
);

-- 建完表后添加外键约束
ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY(外键字段名称) REFERENCES 主表名称(主表列名称);

-- 删除约束
ALTER TABLE 表名 DROP FOREIGN KEY 外键名称;

数据库设计

一对多

一对多关系是建立在两张表之间的关系。一个表中的一条数据可以对应另一个表中的多条数据。记住:外键永远在多方。外键允许重复,允许含有空值。

多对多

需要建立一个中间表,中间表里建立两个列,然后需要用这两个列作为这个表的联合主键,然后每个列在作为外键参照各自的表的主键。

一对一

一对一关系多用于表拆分,将一个实体中经常使用的字段放在一张表,不经常使用的字段放另一个表,用于提升查询性能

实现方式:在任意一方加入外键,关联另一方主键,并且设置外键为唯一(UNIQUE)

多表查询

连接查询

  • 内连接:相当于查询A B交集数据

    -- 隐式内连接
    SELECT 字段列表 FROM 1,表2... WHERE 条件;
    
    -- 显示内连接
    SELECT 字段列表 FROM 1 [INNER] JOIN 2 ON 条件;
  • 外连接:

    • 左外连接:相当于查询A表所有数据和交集部分数据

      SELECT 字段列表 FROM 1 LEFT [OUTER] JOIN 2 ON 条件;
    • 右外连接:相当于查询B表所有数据的交集部分数据

      SELECT 字段列表 FROM 1 RIGHT [OUTER] JOIN 2 ON 条件;

子查询

  • 概念:

    • 查询中嵌套查询,称嵌套查询为子查询
  • 根据查询结果不同,作用不同:

    • 单行单列

      SELECT 字段列表 FROM  WHERE 字段名=(子查询);
    • 多行单列

      SELECT 字段列表 FROM  WHERE 字段名 IN (子查询);
    • 多行多列

      SELECT 字段列表 FROM (子查询) WHERE 条件;

事务

简介

  • 数据库的事务是一种机制、一个操作序列,包含了一组数据库操作命令
  • 事务把所有的命令作为一个整体一起向系统提交或撤销操作请求,即这一组数据库命令要么同时成功,要么同时失败
  • 事务是一个不可分割的工作逻辑单元

四大特征

  • 原子性(Atomicity):事务是不可分割的最小操作单元,要么同时成功,要么同时失败
  • 一致性(Consistency):事务完成时,必须使所有的数据都保持一致状态
  • 隔离性(Isolation):多个事务之间,操作的可见性
  • 持久性(Durability):事务一旦提交或回滚,它对数据库中的数据的改变就是永久的

用法

-- 开启事务
START TRANSACTION 或者 BEGIN;
-- 提交事务
COMMIT;
-- 回滚事务
ROLLBACK;

mysql 事务默认自动提交

-- 查看事务的默认提交方式
SELECT @autocommit;
-- 1. 自动提交 0.手动提交
-- 修改事务提交方式
set @@autocommit = 0;

案例:

MySQL事务 - 万般自然 - 博客园 (cnblogs.com)


来源:https://www.cnblogs.com/xiao-sq/p/16139136.html
本站部分图文来源于网络,如有侵权请联系删除。

未经允许不得转载:百木园 » Mysql 手册

相关推荐

  • 暂无文章

登录

注册

正在加载中...