数据库——MySQL的总结

本文详细介绍MySQL的基本操作,包括登录、退出、库与表的管理、数据的增删改查及聚合函数的使用,适合初学者快速掌握MySQL核心技能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.登录自己的MySQL: 《 mysql -uroot -p 》
输入自己的密码:(个人建议设置简单一点,比如:123456,容易好记一点)
2.进入后,是下面图片这个样子,那该怎么样退出呢 - 输入: 《 quit / ctrl+d 》都可以。
在这里插入图片描述
3.如何查看自己建立的库? 《 show databases 》
《 在数据库中,大小写是没有区分的,都是没问题的 》,在面我用图片介绍一下
在这里插入图片描述
4.创建库的名称 《 create database class50 》
在这里插入图片描述
《 下面的步骤,我就下三四个命令之后,再发图片,求证一下,要不浪费空间,和效率了 》
5.使用建立的库的名字 《use class50 》——use之后加自己建立的库的名称;
6.查看建库的信息 《 show create database class50 》
在这里插入图片描述
二,上面是库的相关操作,那么下面我们看一下,在库里面建表的操作

1.建表——建立一个简单的表;

  create table students(
		       id  int, 
		       name varchar(30)    
		  );

注意:在外部,使用括号,而不是大括号。在内部,最后一个属性没有逗号,其他属性一次为加逗号分隔。

2.在表中插入数据

 INSERT INTO students (id, name) VALUES
(18, "DPF"); 

3.查看表的信息—— 《 select * from students 》

在这里插入图片描述
4.如何快速查找一个名字 《 select* from students where name = ‘DPF’ 》
在这里插入图片描述
三,创建一个简单的表

CREATE TABLE teachers (
	id INT PRIMARY KEY AUTO_INCREMENT,
	name VARCHAR(20) NOT NULL
);

CREATE TABLE classes (
	id INT PRIMARY KEY AUTO_INCREMENT,
	name VARCHAR(20) NOT NULL
);

CREATE TABLE student (
	id INT PRIMARY KEY AUTO_INCREMENT,
	name VARCHAR(20) NOT NULL,
	class_id INT NOT NULL,
	FOREIGN KEY (class_id) REFERENCES classes(id)
);

SELECT LAST_INSERT_ID();

INSERT INTO classes (name) VALUES ('比特50班'), ('比特51班');
INSERT INTO student (name, class_id) VALUES
('小A', 2),
('小B', 1);

2. 删除表中的信息

首先在这里介绍一下,删除不用表的命令: drop table students;
DELETE FROM classes WHERE name = ‘比特50班’; // 会失败

DELETE FROM student WHERE name = '小B';
DELETE FROM classes WHERE name = '比特50班';  // 会成功

在这里插入图片描述
在这里插入图片描述

下来,我们在创建一个新表 student_50,看下面段代码 :

 1.创建表的代码
    CREATE TABLE student_50 (
    id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
    sn INT NOT NULL UNIQUE COMMENT '学号',
    name VARCHAR(20) NOT NULL,
    qq VARCHAR(20)
    );
2.单行插入
INSERT INTO student_50 VALUES (100, 10000, '唐三藏', NULL);
INSERT INTO student_50 VALUES (101, 10001, '孙悟空', '11111');
3.多行插入
INSERT INTO student_50 (id, sn, name) VALUES
(102, 20001, '曹孟德'),
(103, 20002, '孙仲谋');

在这里插入图片描述
在这里插入图片描述
3.怎么查看一个数据被修改过的几行数据,下来我们看一下命令;

    INSERT ... ON DUPLICATE KEY UPDATE
    column = value [, column = value] ...
    
举例子:

INSERT INTO students (id, sn, name) VALUES (100, 10010, '唐大师')
ON DUPLICATE KEY UPDATE sn = 10010, name = '唐大师';

在这里插入图片描述

3.查询表中信息——《 重点 》

首先和上面一样我们先把使用的语句写在下面,我们来先看一下;

– 创建表结构
CREATE TABLE exam_result (
id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(20) NOT NULL COMMENT ‘同学姓名’,
yuwen float DEFAULT 0.0 COMMENT ‘语文成绩’,
shuxue float DEFAULT 0.0 COMMENT ‘数学成绩’,
yingyu float DEFAULT 0.0 COMMENT ‘英语成绩’
);

– 插入测试数据
INSERT INTO exam_result (name, yuwen, shuxue, yingyu) VALUES
(‘唐三藏’, 67, 98, 56),
(‘孙悟空’, 87, 78, 77),
(‘猪悟能’, 88, 98, 90),
(‘曹孟德’, 82, 84, 67),
(‘刘玄德’, 55, 85, 45),
(‘孙权’, 70, 73, 78),
(‘宋公明’, 75, 65, 30);

– 全查询
SELECT * FROM exam_result;

– 指定查询
SELECT id, name, yingyu FROM exam_result;

– 表达式不包含字段
SELECT id, name, 10 FROM exam_result;

– 表达式包含一个字段
SELECT id, name, yingyu + 10 FROM exam_result;

– 表达式包含多个字段
SELECT id, name, yuwen + shuxue + yingyu FROM exam_result;

在这里插入图片描述
这里只是一部分的实现,剩下可以自己实现一下,我也已经测试过了,可以跑过;

值得我们使用的还有:

查看数学成绩
  select shuxue from exam_result; 
排序数学成绩
  select shuxue from exam_result order by shuxue;
  去重
  select DISTINCT shuxue from exam_result order by shuxue;
  语文成绩大于数学成绩
  select name,yuwen > shuxue from exam_result;

在这里插入图片描述
在这里插入图片描述

  3. select name,yuwen > shuxue from exam_result;

在这里插入图片描述

4 where 条件

全表信息
在这里插入图片描述
– 基本比较

SELECT name, yingyu FROM exam_result WHERE yingyu < 60;
在这里插入图片描述
– 使用 AND 进行条件连接

SELECT name, yuwen FROM exam_result WHERE yuwen >= 80 AND yuwen <= 90;在这里插入图片描述
– 使用 BETWEEN … AND … 条件——查用下面这种

SELECT name, yuwen FROM exam_result WHERE yuwen BETWEEN 80 AND 90;
在这里插入图片描述

– 使用 IN 条件——查重效率更高

SELECT name, shuxue FROM exam_result WHERE shuxue IN (58, 59, 98, 99);

5.查询某一类

– % 匹配任意多个(包括 0 个)任意字符

SELECT name FROM exam_result WHERE name LIKE ‘孙%’;
在这里插入图片描述

– _ 匹配严格的一个任意字符

SELECT name FROM exam_result WHERE name LIKE ‘孙_’;
在这里插入图片描述

– WHERE 条件中使用表达式
– 别名不能用在 WHERE 条件中

SELECT name, yuwen + shuxue + yingyu 总分 FROM exam_result
WHERE yuwen + shuxue + yingyu < 200;
在这里插入图片描述

—— 查 NULL 符号
查看为NULL的字符串; ——is命令
在这里插入图片描述
6.聚合函数
《1》SELECT COUNT() FROM students;
在这里插入图片描述
**COUNT(
)——统计,**将数据中的所有统计下来;

可以将数据中的(NULL)空字符,也可以统计下来,所以一般常用的就是这个关键字

但是还是有一些问题就是如果将 * 换成别的样子,那么就统计的别的了,比如:name,什么的 都是可以的;

《2》查询函数

全部函数——help functions(后面不用加分号)

下面是几大查询函数的分布 《考察为百分之98》:

1. 基本查询
2. 聚合查询
3. 分组查询
4. 联表查询
5. 子查询
6. 合并查询	了解

查询	语法	90%
1. 基本查询
SELECT 			列的筛选
FROM 			表、多表、子查询
WHERE 			行的筛选
GROUP BY 		分组字段,可以有多个
HAVING 			在分组后的结果上,再次左行筛选
ORDER BY		结果排序
LIMIT 			最后切片

2. 聚合查询
COUNT(*)		最主要
MAX | MIN | SUM | AVG 

3. 分组(聚合)查询(***)
GROUP BY		可以多个字段分组,SELECT 后出现的只能是 GROUP BY 字段或者聚合函数
HAVING			所有的 HAVING 都可以转换为子查询的形式

4. 联/连表查询(***)	A	B
	1. 内联查询		(返回交集 A 交集 B)
		1. FROM A, B WHERE A.id = B.id;
		2. FROM A [INNER] JOIN B ON A.id = B.id;
	2. 外联查询
		1. 左联		返回以 A 为基准
		FROM A LEFT [OUTTER] JOIN B ON ...
		2. 右联		返回以 B 为基准
		FROM A RIGHT JOIN B ON ...
		3. 全联		A 并集 B	(MySQL 不支持)
5. 子查询
	所有子查询必须用小括号括起来
	1. WHERE 子句
		1. 结果是单行单列 
		2. 结果是多行单列 IN/ALL/ANY 
		3. 结果是单行多列 (字段1, 字段2, ...) = (子查询)	用 AND
	2. FROM 子句
		把结果看作临时表,再次查询
		1. 必须起别名
6. 联合查询
	1. UNION			会去重相同项
	2. UNION ALL
** MySQL 是个老头,别让他干活

这是部分使用的主要命令,希望可以帮助到大家, 如果有什么不对 课可以练习我

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值