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)*每页显示条数

约束是作用于表中的列以限制添加到表中的数据的规则

[En]

Constraints are rules that act on columns in a table to limit the data added to the table

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

[En]

The existence of constraints ensures the correctness, validity and integrity of the data in the database.

约束名称 描述 关键字 非空约束 保证列中所有数据不能有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 外键名称;

数据库设计

一对多关系基于两个表之间的关系。一个表中的一条数据可以对应于另一张表中的多条数据。记住:外键总是在很多方面。允许外键重复并包含空值。

[En]

An one-to-many relationship is based on a relationship between two tables. One piece of data in one table can correspond to multiple pieces of data in another table. Remember: foreign keys are always in many ways. Foreign keys are allowed to repeat and contain null values.

您需要创建一个中间表,在中间表中创建两列,然后将这两列作为表的联合主键,然后每列引用自己表的主键作为外键。

[En]

You need to create an intermediate table, create two columns in the intermediate table, and then use these two columns as the joint primary key of the table, and then each column references the primary key of its own table as a foreign key.

一对一关系主要用于表拆分,将一个实体中经常使用的字段放在一个表中,而将不常用的字段放在另一个表中,以提高查询性能。

[En]

One-to-one relationships are mostly used for table splitting, placing fields that are often used in one entity in one table and infrequently used fields in another table to improve query performance.

实现方式:在任意一方加入外键,关联另一方主键,并且设置外键为 唯一(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 条件;
  • 概念:
  • 查询中嵌套查询,称嵌套查询为子查询
  • 根据查询结果,函数会有所不同:
    [En]

    the function varies according to the query result:*

  • 单行单列
SELECT 字段列表 FROM 表 WHERE 字段名=(子查询);
  • 多行单列
SELECT 字段列表 FROM 表 WHERE 字段名 IN (子查询);
  • 多行多列
SELECT 字段列表 FROM (子查询) WHERE 条件;
  • 数据库事务是一种机制,一种操作序列,包含一组数据库操作命令
    [En]

    A database transaction is a mechanism, an operation sequence, which contains a set of database operation commands*

  • 事务向系统整体提交或撤销操作请求,即这套数据库命令要么同时成功,要么同时失败。
    [En]

    the transaction submits or revokes the operation request to the system as a whole, that is, this set of database commands either succeed or fail at the same time.*

  • 交易是一个不可分割的工作逻辑单元

    [En]

    transaction is an indivisible working logical unit*

  • 原子性(Atomicity):事务是不可分割的最小操作单元,要么同时成功,要么同时失败

  • 一致性(Consistency):事务完成时,必须使所有的数据都保持一致状态
  • 隔离性(Isolation):多个事务之间,操作的可见性
  • 持久性(Durability):事务一旦提交或回滚,它对数据库中的数据的改变就是永久的
-- 开启事务
START TRANSACTION 或者 BEGIN;
-- 提交事务
COMMIT;
-- 回滚事务
ROLLBACK;
-- 查看事务的默认提交方式
SELECT @autocommit;
-- 1. 自动提交 0.手动提交
-- 修改事务提交方式
set @@autocommit = 0;

Original: https://www.cnblogs.com/xiao-sq/p/16139136.html
Author: 飞翔的稻草
Title: Mysql 手册

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/505486/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球