Java小白 --MySQL学习

Java小白——MySQL学习基础

DDL(Data Definition Language)  数据定义语言,用来定义数据库对象:数据库,表,列等 DDL简单理解就是用来操作数据库,表等

DML(Data Manipulation Language) 数据操作语言,用来对数据库中表的数据进行增删改 DML简单理解就对表中数据进行增删改

DQL(Data Query Language) 数据查询语言,用来查询数据库中表的记录(数据) DQL简单理解就是对数据进行查询操作。从数据库表中查询到我们想要的数据。

DCL(Data Control Language) 数据控制语言,用来定义数据库的访问权限和安全级别,及创建用户。DCL简单理解就是对数据库进行权限控制。比如我让某一个数据库表只能让某一个用户进行操作等。

PS:以后最常操作的是 DML 和 DQL

 一、DDL:操作数据库,主要对数据库进行增删改查操作。

1.查询

查询所有的数据库

1 SHOW DATABASES;

2.创建数据库

1 CREATE DATABASE 数据库名称;

创建数据库(判断,如果不存在则创建)

CREATE DATABASE IF NOT EXISTS 数据库名称;

3.删除数据库

DROP DATABASE 数据库名称;

删除数据库(判断,如果存在则删除)

DROP DATABASE IF EXISTS 数据库名称;

4.使用数据库

USE 数据库名称;

查看当前使用的数据库

SELECT DATABASE();

二、DDL:操作表,主要是对表进行增(Create)删(Retrieve)改(Update)查(Delete)。

1.查询表

查询当前数据库下所有表名称

SHOW TABLES;

PS:需要使用数据库后才能对表进行操作

查询表结构

DESC 表名称;

2.创建表

1 CREATE TABLE 表名 (
2     字段名1 数据类型1,
3     字段名2 数据类型2,
4 5     字段名n 数据类型n
6 );

PS:最后一行末尾不能加逗号

3.数据类型

 

4.删除表

 DROP TABLE 表名;

删除表时判断表是否存在

DROP TABLE IF EXISTS 表名;

5.修改表

修改表名

ALTER TABLE 表名 RENAME TO 新的表名;

添加一列

ALTER TABLE 表名 ADD 列名 数据类型;

修改数据类型

ALTER TABLE 表名 MODIFY 列名 新数据类型;

修改列名和数据类型

ALTER TABLE 表名 CHANGE 列名 新列名 新数据类型;

删除列

ALTER TABLE 表名 DROP 列名;

 三、DML:DML主要是对数据进行增(insert)删(delete)改(update)操作。

1.添加数据

给指定列添加数据

INSERT INTO 表名(列名1,列名2,…) VALUES(值1,值2,…);

 

给全部列添加数据

INSERT INTO 表名 VALUES(值1,值2,…);

 

批量添加数据

1 INSERT INTO 表名(列名1,列名2,…) VALUES(值1,值2,…),(值1,值2,…),(值1,值2,…)…;
2 INSERT INTO 表名 VALUES(值1,值2,…),(值1,值2,…),(值1,值2,…)…;

 

2.修改数据

修改表数据

UPDATE 表名 SET 列名1=值1,列名2=值2,… [WHERE 条件];

 

3.删除数据

DELETE FROM 表名 [WHERE 条件];

 

 四、DQL:DQL对数据进行查询操作

复制代码
 1 SELECT
 2     字段列表
 3 FROM
 4     表名列表
 5 WHERE
 6     条件列表
 7 GROUP BY
 8     分组字段
 9 HAVING
10     分组后条件
11 ORDER BY
12     排序字段
13 LIMIT
14     分页限定
复制代码

 

1.基础查询

1.1语法

查询多个字段

SELECT 字段列表 FROM 表名;
SELECT * FROM 表名; -- 查询所有数据

 

去除重复记录

SELECT DISTINCT 字段列表 FROM 表名;

 

起别名

AS: AS 也可以省略

 

2.条件查询

2.1语法

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

 

条件

 

模糊查询

模糊查询使用like关键字,可以使用通配符进行占位:

(1)_ : 代表单个任意字符

(2)% : 代表任意个数字符

1  -- 查询姓'马'的学员信息
2 select * from stu where name like '马%';
3  -- 查询第二个字是'花'的学员信息
4 select * from stu where name like '_花%';
5  -- 查询名字中包含 '德' 的学员信息
6 select * from stu where name like '%德%';

3.排序查询

3.1语法

SELECT 字段列表 FROM 表名 ORDER BY 排序字段名1 [排序方式1],排序字段名2 [排序方式2] …;

 

上述语句中的排序方式有两种,分别是:

ASC : 升序排列 (默认值)

DESC : 降序排列

PS:如果有多个排序条件,当前边的条件值一样时,才会根据第二条件进行排序

4.聚合函数

4.1概念

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

4.2分类

函数名 功能
count(列名) 统计数量(一般选用不为null的列)
max(列名) 最大值
min(列名) 最小值
sum(列名) 求和
avg(列名) 平均值
 
4.3语法
 
SELECT 字段列表 FROM 表名 [WHERE 分组前条件限定] GROUP BY 分组字段名 [HAVING 分组后条件过滤];

PS:分组之后,查询的字段为聚合函数和分组字段,查询其他字段无任何意义

where 和 having 区别:
执行时机不一样:where 是分组之前进行限定,不满足where条件,则不参与分组,而having是分组之后对结果进行过滤。
可判断的条件不一样:where 不能对聚合函数进行判断,having 可以。
 
5.分页查询
5.1语法
SELECT 字段列表 FROM 表名 LIMIT 起始索引 , 查询条目数;

 

PS: 上述语句中的起始索引是从0开始

每一页的起始索引计算公式:

起始索引 = (当前页码 - 1) * 每页显示的条数

posted @   Ppotato3  阅读(39)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示