登录
转载

Mysql基础

发布于 2021-03-31 阅读 316
  • 数据库
  • SQL
转载

目录

 

1、数据库基本概念

2、DDL操作数据库和数据表

4、DQL表数据查询

4.1DQL 表数据查询——查询语法 

4.2DQL 表数据查询——查询全部

4.3DQL 表数据查询——条件查询 

 4.4DQL 表数据查询——聚合函数查询

 4.5DQL 表数据查询——排序查询

4.6DQL 表数据查询——分组查询

4.7DQL 表数据查询——分页查询

5、约束

5.1主键约束

5.2主键自增约束

5.3唯一约束

5.4非空约束

5.5外键约束

5.6外键的级联更新和级联删除


1、数据库基本概念

SQL结构化查询语言分类

DDL(Data Definition Language) :数据定义语言。用来操作数据库,表,列等。 DML(Data Manipulation Language) :数据操作语言。用来对数据库中表的数据进行增删改。 DQL(Data Query Language) :数据查询语言。用来查询数据库中表的记录(数据)。 DCL(Data Control Language) :数据控制语言。用来定义数据库的访问权限和安全级别,及创建用户。

2、DDL操作数据库和数据表

DDL操作数据库主要措施:CRUD C(Create):创建 R(Retrieve):查询 U(Update):修改 D(Delete):删除

--DDL查询数据库
--查询所有数据库
SHOW DATABASES;
--查询数据库的创建语句
SHOW CREATE DATABASES 数据库名称;

--DDL 创建数据库
CREATE DATABASE 数据库名称;--创建数据库
CREATE DATABASE IF NOT EXISTS 数据库名称;--创建数据库(判断,如果不存在则创建)
CREATE DATABASE 数据库名称CHARACTER SET 字符集名称;--创建数据库(指定字符集)

--DDL 修改、删除、使用数据库
ALTER DATABASE 数据库名称CHARACTER SET 字符集名称;--修改数据库(修改字符集)
DROP DATABASE 数据库名称;--删除数据库
DROP DATABASE IF EXISTS 数据库名称;--删除数据库(判断,如果存在则删除)
USE 数据库名称;--使用数据库
SELECT DATABASE();--查看当前使用的数据库

--DDL 查询数据表
SHOW TABLES;--查询所有的数据表
DESC 表名;--查询表结构
SHOW TABLE STATUS FROM 库名LIKE '表名';--查询表字符集

--DDL 创建数据表
--创建数据表
CREATE TABLE 表名(
列名数据类型约束,
列名数据类型约束,
...
列名数据类型约束
);
/*
数据类型
int:整数类型
double:小数类型
date:日期类型。包含年月日,格式yyyy-MM-dd
datetime:日期类型。包含年月日时分秒,格式yyyy-MM-ddHH:mm:ss
timestamp:时间戳类型。包含年月日时分秒,格式yyyy-MM-ddHH:mm:ss如果不给该列赋值、或赋值为null,则默认使用当前系统时间自动赋值
varchar(长度):字符串类型
*/
CREATE TABLE 表名LIKE 被复制的表名;--复制数据表

--DDL 修改数据表
ALTER TABLE 表名RENAME TO 新表名;--修改表名
ALTER TABLE 表名CHARACTER SET 字符集名称;--修改表的字符集
ALTER TABLE 表名ADD 列名数据类型;--单独添加一列
ALTER TABLE 表名MODIFY 列名新数据类型;--修改某列的数据类型
ALTER TABLE 表名CHANGE 列名新列名新数据类型;--修改列名和数据类型
ALTER TABLE 表名DROP 列名;--删除某一列

--DDL 删除数据表
DROP TABLE 表名;--删除数据表
DROP TABLE IF EXISTS 表名;--删除数据表(判断,如果存在则删除)

3、DML表数据增删改查

--DML 新增表数据
INSERT INTO 表名(列名1,列名2,…) VALUES (值1,值2,…);--给指定列添加数据
INSERT INTO 表名VALUES (值1,值2,…);--给全部列添加数据
--批量添加数据
INSERT INTO 表名(列名1,列名2,…) VALUES (值1,值2,…), (值1,值2,…),…;
INSERT INTO 表名VALUES (值1,值2,…), (值1,值2,…),…;
--列名和值的数量以及数据类型要对应,除了数字类型,其他数据类型的数据都需要加引号(单引双引都行,推荐单引)。

--DML 修改表数据
UPDATE 表名SET 列名1=值1,列名2=值2,… [WHERE 条件];--修改表中的数据
--修改语句中必须加条件,如果不加条件,则会将所有数据都修改。

--DML 删除表数据
删除表中的数据
DELETE FROM 表名[WHERE 条件];
--删除语句中必须加条件,如果不加条件,则会将所有数据都删除。

4、DQL表数据查询

4.1DQL 表数据查询——查询语法 

SELECT
字段列表
FROM
表名列表
WHERE
条件列表
GROUP BY
分组字段
HAVING
分组后的过滤条件
ORDER BY
排序
LIMIT
分页

4.2DQL 表数据查询——查询全部

SELECT * FROM 表名;--查询全部的表数据
SELECT 列名1,列名2,… FROM 表名;--查询指定字段的表数据
SELECT DISTINCT 列名1,列名2,… FROM 表名;--去除重复查询
SELECT 列名1 运算符(+ -* /) 列名2 FROM 表名;--计算列的值(四则运算)
SELECT 列名AS 别名FROM 表名;--起别名查询 

4.3DQL 表数据查询——条件查询 

SELECT 列名列表FROM 表名WHERE 条件;

 4.4DQL 表数据查询——聚合函数查询

SELECT 函数名(列名)FROM 表名[WHERE 条件];

将一列数据作为一个整体,进行纵向的计算。 

 4.5DQL 表数据查询——排序查询

SELECT 列名列表FROM 表名[WHERE 条件] ORDER BY 列名排序方式,列名排序方式,…;

排序方式:ASC-升序,DESC-降序 如果有多个排序条件,只有当前边的条件值一样时,才会判断第二条件。

4.6DQL 表数据查询——分组查询

SELECT 列名列表FROM 表名[WHERE 条件] GROUP BY 分组列名
[HAVING 分组后的条件过滤]
[ORDER BY 排序列名排序方式];

4.7DQL 表数据查询——分页查询

SELECT 列名列表FROM 表名
[WHERE 条件]
[GROUP BY 分组列名]
[HAVING 分组后的条件过滤]
[ORDER BY 排序列名排序方式]
LIMIT 当前页数,每页显示的条数;

 当前页数:(当前页数-1) * 每页显示的条数

5、约束

约束作用
PRIMARY KEY主键约束
PRIMARY KEY AUTO_INCREMENT主键自增
UNIQUE唯一约束
NOT NULL非空约束
FOREIGN KEY外键约束
FOREIGN KEYON UPDATE CASCADE外键级联更新
FOREIGN KEYON DELETE CASCADE外键级联删除

5.1主键约束

主键非空,唯一

--建表时添加主键约束
CREATE TABLE 表名(
列名数据类型PRIMARY KEY,
...
列名数据类型约束
);

ALTER TABLE 表名DROP PRIMARY KEY;--删除主键约束

ALTER TABLE 表名MODIFY 列名数据类型PRIMARY KEY;--建表后单独添加主键约束

5.2主键自增约束

--建表时添加主键自增约束
CREATE TABLE 表名(
列名数据类型PRIMARY KEY AUTO_INCREMENT,
...
列名数据类型约束
);

ALTER TABLE 表名MODIFY 列名数据类型;--删除主键自增约束

ALTER TABLE 表名MODIFY 列名数据类型AUTO_INCREMENT;--建表后单独添加主键自增约束

MySQL 中的自增约束,必须配合键的约束一起使用!

5.3唯一约束

--建表时添加唯一约束
CREATE TABLE 表名(
列名数据类型UNIQUE,
...
列名数据类型约束
);

ALTER TABLE 表名DROP INDEX 列名;--删除唯一约束

ALTER TABLE 表名MODIFY 列名数据类型UNIQUE;--建表后单独添加唯一约束

5.4非空约束

--建表时添加非空约束
CREATE TABLE 表名(
列名数据类型NOT NULL,
...
列名数据类型约束
);

ALTER TABLE 表名MODIFY 列名数据类型;--删除非空约束

ALTER TABLE 表名MODIFY 列名数据类型NOT NULL;--建表后单独添加非空约束

5.5外键约束

--建表时添加外键约束
CREATE TABLE 表名(
列名数据类型约束,
...
CONSTRAINT 外键名FOREIGN KEY (本表外键列名) REFERENCES 主表名(主表主键列名)
);

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

--建表后单独添加外键约束
ALTER TABLE 表名ADD CONSTRAINT 外键名FOREIGN KEY (本表外键列名) REFERENCES 主表名(主键列名);

5.6外键的级联更新和级联删除

对主表的数据进行更新删除时,从表相关数据也要更新删除

--添加级联更新
ALTER TABLE 表名ADD CONSTRAINT 外键名FOREIGN KEY (本表外键列名) REFERENCES 主表名(主键列名) ON UPDATE CASCADE;

--添加级联删除
ALTER TABLE 表名ADD CONSTRAINT 外键名FOREIGN KEY (本表外键列名) REFERENCES 主表名(主键列名) ON DELETE CASCADE;

--同时添加级联更新和级联删除
ALTER TABLE 表名ADD CONSTRAINT 外键名FOREIGN KEY (本表外键列名) REFERENCES 主表名(主键列名) ON UPDATE CASCADE ON DELETE CASCADE;

 

评论区

励志做一条安静的咸鱼,从此走上人生巅峰。

0

1

0

举报