MySQL学习笔记

embedded/2024/11/17 5:47:32/

一、数据库的操作

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/embedded/37070.html

相关文章

Windows下Git安装

目录 一、下载二、安装三、查看 Git 安装路径 一、下载 下载链接&#xff1a;https://git-scm.com/ 二、安装 双击安装包&#xff0c;按提示一步步进行操作&#xff1a; 三、查看 Git 安装路径 where git D:\Program Files\Git\cmd\git.exe

LLM系列(0+):大模型算法全流程解析与实战:从理论到落地的关键步骤,打造高效落地的解决方案实战应用之道

LLM系列(0+):大模型算法全流程解析与实战:从理论到落地的关键步骤,打造高效落地的解决方案实战应用之道 1. 引言 针对近期进行的关于大语言模型落地的相关实践,本文旨在能够较为系统的整理和介绍大模型系列内容,分享关于构建行业专属大模型系统以及进行大模型优化的一些…

华为:三层交换机与路由器连通上网实验

三层交换机是一种网络交换机&#xff0c;可以实现基于IP地址的高效数据转发和路由功能&#xff0c;通常用于大型企业、数据中心和校园网络等场景。此外&#xff0c;三层交换机还支持多种路由协议&#xff08;如OSPF、BGP等&#xff09;&#xff0c;以实现更为复杂的网络拓扑结构…

PXE 批量安装部署

目录 一、PEX批量部署优点 二、PXE&#xff1a;预启动执行环境 三、搭建PXE远程服务器 要想全自动安装 接下来请看步骤&#xff1a; 一、PEX批量部署优点 规模化&#xff1a;同时装配多台服务器自动化&#xff1a;安装系统 配置各种服务远程实现&#xff1a;不需要光盘&…

getline的使用条件以及限制条件

getline函数在C中有两种主要的形式&#xff0c;分别是C标准库提供的用于读取文本行的std::getline函数&#xff0c;以及POSIX兼容系统&#xff08;如GNU C&#xff09;提供的C风格的getline函数。 1. C标准库中的std::getline函数 #include <iostream> #include <st…

【Linux】文件内容相关的命令,补充:管道符

1、查看文件内容 &#xff08;1-1&#xff09;查看文件内容&#xff1a;cat&#xff0c;tac&#xff0c;head&#xff0c;tail 查看文件内容cat 文件名查看文件内容并显示行号cat -n 文件名倒着查看文件内容&#xff08;从最后一行开始&#xff09;tac 文件名查看文件前10行…

练习题(2024/5/7)

1验证二叉搜索树 给你一个二叉树的根节点 root &#xff0c;判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下&#xff1a; 节点的左 子树 只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。 示例 …

如何把Java的定时任务写到数据库里面去配置?

之前是这样写的&#xff0c;每次要改定时器都要修改发版&#xff0c;很麻烦&#xff1a; package cn.net.cdsz.ccb.common.scheduled;import cn.net.cdsz.ccb.business.config.Custom; import cn.net.cdsz.ccb.business.service.CCBBankService; import cn.net.cdsz.ccb.busin…