MySQL学习笔记

ops/2024/10/19 2:26:57/

一、数据库的操作

SHOW DATABASE;-- 显示所有数据库
CREATE DATABASE;-- 创建数据库
DROP DATABASE test1;-- 删除数据库

二、数据库常用数据类型 

整数型,浮点型,定点型,字符串类型,时间型

 

 

三、表的基本操作

use demo1-- 选中数据库demo1-- 添加students表
CREATE TABLE students (id INT,name VARCHAR(20),gender CHAR,birthday DATE
)-- (字段的名称与数据类型)DESC students;-- 查看表长ALTER table students MODIFY COLUMN name VARCHAR(30);-- 修改数据库students中name的数据类型NAMESALTER table students RENAME COLUMN NAMES TO name;-- 修改数据库students中name的字段名称ALTER table students ADD COLUMN last_login DATETIME;-- 在数据库students中添加新的字段last_loginALTER table students DROP COLUMN last_login;-- 在数据库students中删除字段last_loginDROP TABLE students;-- 删除表students

四、数据的增删改查

INSERT INTO students (id,name,gender,birthday) VALUES(1,'小刘','男','2003-10-08');-- 插入指定数据
INSERT INTO students VALUES(1,'小刘','男','2003-10-08');-- 默认插入所有数据
INSERT INTO students (id,name,gender,birthday) VALUES(3,'小李','男','2004-5-18'),(4,'小陈','女','2004-6-1'),(5,'小王','女','2004-12-15');-- 插入多条数据UPDATE students set id = 2 WHERE name = '小刘';-- 修改表的数据:UPDATE 表名 set 要修改的列名和值 WHERE 要修改的数据(去掉where语句表示修改所有数据)DELETE FROM students WHERE id = 2;-- 删除数据:DELETE FROM 表名 WHERE 要删除的数据SELECT * FROM students;-- 查看表:SELECT 列名 FROM 表名(*代表所有列)

五、数据查询常用语句

-- 常用语句
SELECT * FROM students;-- 查看表:SELECT 列名 FROM 表名(*代表所有列)-- WHERE子句
SELECT * FROM students WHERE id>3 AND id<=5;-- 查看表中id>3并且id<=5的数据(NOT > AND > OR)-- IN指定多个值
SELECT * FROM students WHERE id in (3,5);-- 查看表中id为3,5的数据-- BETWEEN _ and _
SELECT * FROM students WHERE id NOT BETWEEN 1 and 10;-- 查看表中id不在1到10之间的数据-- LIKE模糊查询
SELECT * FROM students WHERE name LIKE '小%';-- 查看表中name里第一个字为小的数据
SELECT * FROM students WHERE name LIKE '%小%';-- 查看表中name里包含小的数据
SELECT * FROM students WHERE name LIKE '小_';-- 查看表中name里第一个字为小的两个字的数据-- REGEXP正则表达式
SELECT * FROM students WHERE name REGEXP '^小.$';-- 查看表中name里第一个字为小的两个字的数据与 LIKE '小_' 效果一样
SELECT * FROM students WHERE name REGEXP '[陈刘]';-- 查看表中name里含陈和刘的数据或者:REGEXP '陈|刘'-- NULL空值
SELECT * FROM students WHERE name is null;-- 查看表中name为空的数据
SELECT * FROM students WHERE name = ' ';-- 查看表中name为空字符串的数据-- ORDER BY排序
SELECT * FROM students ORDER BY id;-- 查看表中name的数据,并按id升序排列
SELECT * FROM students ORDER BY id DESC;-- 查看表中name的数据,并按id降序排列
SELECT * FROM students ORDER BY id DESC,birthday ASC;-- 查看表中name的数据,按id降序排列并按birthday升序排列(除了使用列名id,也可使用列的序号)
SELECT COUNT(*) FROM students;-- 查看总人数
SELECT AVG(id) FROM students;-- 查看id平均值-- GROUP BY分组
SELECT gender,COUNT(*) FROM students GROUP BY gender;-- 按照性别分组并且计算和值
SELECT gender,COUNT(*) FROM students GROUP BY gender HAVING COUNT(gender)>2 ORDER BY COUNT(gender) DESC;-- 按性别分组,计算和值并升序排列和值大于2的数据
SELECT SUBSTR(name,1,1),COUNT(SUBSTR(name,1,1)) FROM students-- LIMIT限制
GROUP BY SUBSTR(name,1,1)
HAVING COUNT(SUBSTR(name,1,1))>2
ORDER BY COUNT(SUBSTR(name,1,1)) DESC
LIMIT 3;-- 按姓分组,计算和值并升序排列和值大于2的前三个数据
GROUP BY SUBSTR(name,1,1)
HAVING COUNT(SUBSTR(name,1,1))>2
ORDER BY COUNT(SUBSTR(name,1,1)) DESC
LIMIT 3,3;-- 按姓分组,计算和值并升序排列和值大于2的从第四个开始往后三个数据-- DISTINCT去重
SELECT DISTINCT gender FROM students;-- 查询所有性别-- DISTINCT合并结果(并集)
SELECT * FROM students WHERE name is null
UNION
SELECT * FROM students WHERE name = ' ';-- 查看表中name为空或者name为空字符串的数据(UNION会去重,加上ALL会全部显示)-- INTERSECT合并结果(交集)
SELECT * FROM students WHERE name is null
INTERSECT
SELECT * FROM students WHERE name = ' ';-- 查看表中name为空并且name为空字符串的数据-- EXCEPT合并结果(差集)
SELECT * FROM students WHERE name is null
EXCEPT
SELECT * FROM students WHERE gender = ' ';-- 查看表中name为空但是gender不为空字符串的数据-- 子查询(使用一个查询的结果作为另一个查询的条件)
SELECT AVG(id) FROM students;
SELECT * FROM students WHERE id>(SELECT AVG(id) FROM students);-- 查找id大于平均id的数据
SELECT id,ROUND((SELECT AVG(id) FROM students)) as average,
id - ROUND((SELECT AVG(id) FROM students)) as diff
FROM students;-- 显示id与平均id的差值
CREATE TABLE new_students SELECT * FROM students WHERE id > 2;-- 新建一个表,将id大于2的数据插入
INSERT INTO new_students SELECT * FROM students WHERE id < 2;-- 将id小于2的数据插入
SELECT EXISTS(SELECT * FROM students WHERE id > 2)-- 是否存在id大于2的-- 表关联(用来查询多个表中的数据)
SELECT * FROM player
INNER JOIN equip
ON player.id = equip.player_id;-- 用id将两个表中信息关联,显示玩家与装备匹配的结果
SELECT * FROM player,equip
WHERE player.id = equip.player_id;-- 与上面结果一致
SELECT * FROM player
RIGHT JOIN equip
ON player.id = equip.player_id;-- 查询右表中所有数据以及左表中匹配的数据,没匹配的用NULL填充
SELECT * FROM player
LEFT JOIN equip
ON player.id = equip.player_id;-- 查询左表中所有数据以及右表中匹配的数据,没匹配的用NULL填充

REGEXP正则表达式中常用通配符:

常用的聚合函数数:


http://www.ppmy.cn/ops/36861.html

相关文章

001 定期同步mysql数据到es 删除数据库记录同时删除es记录 es全文搜索分词和高亮

文章目录 ProductController.javaProduct.javaElasticsearchSyncListener.javaProductElasticSearchMapper.javaProductMapper.javaProductDeletedEvent.javaProductServiceImpl.javaSyncProductService.javaIProductService.javaElasticSearchSpringDemoApplication.javaServl…

Windows系统和unbtun系统连接usb 3.0海康可见MVS和红外艾睿相机

一.海康可见USB3.0工业面阵相机 海康usb相机需要去海康官网上下载对应系统的MVS客户端及SDK开发包 海康机器人-机器视觉-下载中心 选择Windows系统和unbtun&#xff08;我是linux aarch64,所以选择了对应压缩包解压&#xff09; Windows系统 1.双击安装包进入安装界面&…

Laravel Sail

先创建一个laravel应用&#xff0c;就先用他取的默认名字 example.com ./vendor/bin/sail up -d [] Running 6/6 ✔ Container example-app-mailpit-1 Running …

【二叉树算法题记录】110. 平衡二叉树

题目描述 给定一个二叉树&#xff0c;判断它是否是平衡二叉树。 什么是平衡二叉树&#xff1f;一个二叉树每个节点的左右两个子树的高度差的绝对值不超过1。 题目分析 其实平衡二叉树的定义就给出了递归的思路&#xff1a;每个节点的左右两个子树的高度差的绝对值不超过1。…

今日头条,抖音,西瓜视频你不知道的秘密?

西瓜视频和抖音这两款产品是一家&#xff0c;都是由今日头条孵化。 抖音是由今日头条孵化的一款音乐创意短视频社交软件&#xff0c;该软件于2016年9月20日上线&#xff0c;是一个面向全年龄的音乐短视频社区平台。用户可以通过这款软件选择歌曲&#xff0c;拍摄音乐短视频&am…

什么是虚拟货币?

随着科技的进步&#xff0c;虚拟货币逐渐进入公众视野&#xff0c;其影响深远且复杂。本文将从专业角度分析虚拟货币的发展现状、未来趋势&#xff0c;以及面临的挑战&#xff0c;并尝试提出一些思考。 一、虚拟货币的定义与现状 虚拟货币是一种基于区块链技术的数字资产&…

《Effective Java》如果说我需要一本Java编程的书,那就是它了

《Effective Java》 编写出更优雅的Java代码作者简介斩获Jolt图书大奖本文福利 编写出更优雅的Java代码 《Effective Java》是Java编程领域的一本经典之作&#xff0c;由Joshua Bloch撰写&#xff0c;旨在帮助Java程序员提高编码技巧&#xff0c;写出更加健壮、高效和易于维护的…

刷题《面试经典150题》(第九天)

加油&#xff01; 学习目标&#xff1a;学习内容&#xff1a;学习时间&#xff1a;知识点学习内容&#xff1a;跳跃游戏 II - 力扣&#xff08;LeetCode&#xff09;H 指数 - 力扣&#xff08;LeetCode&#xff09;盛最多水的容器 - 力扣&#xff08;LeetCode&#xff09;矩阵置…