MySQL数据库基础学习笔记

目录

MySQL图形化管理工具

SQL语言的组成

SQL语言的主要特点

SQL语句在数据库中的基本操作

数据库的创建

数据库的查询

数据库的选择

数据库的删除

MySQL数据库的基本书写规则

SQL语句在数据表中的基本操作

数据表的创建

​编辑

数据的插入、更新、删除

插入

修改

删除

数据查询

基础查询

​编辑

列的别名

 替换查询结果的数据

WHERE子句

 多表查询

多表连接

分类、汇总、排序

聚合函数

 GROUP BY (分类)子句


MySQL图形化管理工具


目前几个常用的MySQL图形化管理工具为:

  • MySQL Workbench
  • phpMyAdmin
  • Navicat for MySQL

其中,本人学习此课程的工具为“Navicat for MySQL 11.1.13”,MySQL版本为8.0.32。

SQL语言的组成


在安装并配置好软件后要先理解好SQL语言的组成,其共分为4点

  1. 数据查询语言(DQL)主要用于查询数据,例:SELECT语句可查询数据库中的一条或多条数据
  2. 数据操作语言(DML)主要用于对表中的数据进行添加、删除、修改等操作,例如INSERT语句(向数据库表中插入一行或多行数据)、UPDATE语句(用于修改数据库表中已有的一行或多行数据)、DELETE语句(从数据库表中删除一行或多行数据)等。
  3. 数据定义语言(DDL)用于创建、修改和删除数据库对象,例如创建表、修改表结构、删除表等。例如:CREATE(用于创建数据库、数据表、视图、存储过程等)、ALTER(用于修改已有的数据表、视图、存储过程等)、DROP(用于删除数据库、数据表、视图、存储过程等)等。
  4. 数据控制语言(DCL)用于控制访问数据库的权限和安全性,例如:GRANT语句(用于授权用户或角色在指定的数据库对象上进行特定的操作)、REVOKE语句(用于撤销之前授予用户或角色的权限)、COMMIT语句(用于提交事务,并将之前所做的所有修改保存到数据库中)、ROLLBACK语句(用于撤销当前事务中所做的所有修改,并回滚到事务开始之前的状态)等。

SQL语言的主要特点


  1. SQL语言功能强大,风格统一,直观简洁,易学易用
  2. 高度非过程化
  3. 面向集合的操作方式
  4. 既是自含式语言,又是嵌入式语言,以同一种语法结构提供两种使用方式
  5. 大部分子句不分大小写

SQL语句在数据库中的基本操作


数据库的创建

使用CREATE DATABASE或CREATE SCHEMA命令创建数据库。

CREATE DATABASE mydb;

以上为使用 CREATE DATABASE [数据库名] 创建的名为“mydb”的数据库。

同时,可在 CREATE DATABASE 与 [数据库名] 中间加入 IF NOT EXISTS 语句来防止因为出现名字重复的数据库而报错。

CREATE DATABASE IF NOT EXISTS mydb;

数据库的查询

可使用以下语句查看MySQL服务器下所有的数据库

SHOW DATABASES;

可使用以下语句结构查看指定数据库的创建信息

SHOW CREATE DATABASE [数据库名];

SHOW CREATE DATABASE mydb;

注:以下数据库名为系统数据库,不建议随意修改其结构。

performance_schema

information_schema

mysql


数据库的选择

可使用 USE [数据库名] 来选择数据库,否则在不同数据库中的代码默认执行在新建查询所在的数据库中。

USE mydb;

数据库的删除

可使用 DROP DATABASE [数据库名] 来删除存在的数据库。

也可使用 DROP DATABASE IF EXISTS [数据库名] 来判定数据库是否存在?存在则删除,也防止删除的数据库因不存在而报错。

DROP DATABASE IF EXISTS mydb;

MySQL数据库的基本书写规则

  1. 语句要以英文分号 ; 结尾

  2. 语句不区分大小写

  3. 单词需要空格或换行进行分隔

  4. 常数(字符串、日期等)书写方法是固定的,字符串、日期需使用英文单引号 'xxx' 包起来

SQL语句在数据表中的基本操作


数据表的创建

使用 CREATE TABLE [表名] 命令可以创建表

CREATE TABLE mytable(
    姓名 char(10) NOT NULL PRIMARY KEY,
    年龄 int(10) NOT NULL,
    性别 int(3) NOT NULL
);

 NOT NULL || NULL:指定该列是否允许为空。如果不指定,则默认允许为空NULL)。

PRIMARY KEY:表示将“姓名”列设置为主键。

数据的插入、更新、删除


插入

可使用 INSERT REPLACE 语句在表中插入一行或多行数据

例:插入一条名为张三,年龄18岁,性别为1(男)的信息;

INSERT INTO mytable VALUES(
    '张三',18,1
);

修改

可使用 UPDATE 语句修改单表或多表数据

例:将mytable表中名为张三的人的年龄修改为19岁;

UPDATE mytable
SET 年龄=19
WHERE 姓名='张三';

 SET:根据 WHERE 子句中指定的条件对符合条件的数据进行修改。若语句无 WHERE 子句,则修改所有行。

WHERE :用于筛选数据,允许从表中选择特定的行,用于设定一定的条件。

删除

可使用 DELETE  语句删除数据

例:删除mytable表中姓名为李四的信息;

DELETE FROM mytable
WHERE 姓名="李四";

数据查询


基础查询

数据查询基本使用 SELECT 语句,其功能强大,有很多子句,但在语法上有着严格的排序

例:查询class表中的所有信息;

SELECT*FROM class;

 * :表示选择表的所有列

例:查询class表中所有的同学姓名及其成绩;

SELECT 姓名,成绩 FROM class;

列的别名

当希望查询结果中的列使用自己的标题时,可在列名后使用 AS 子句来更改查询结果的列名

例:查询class表中所有的同学姓名及其成绩,并将其查询结果列名显示为“学生成绩”及“C语言成绩”;

SELECT 姓名 AS 学生姓名,成绩 AS C语言成绩
FROM class;

 替换查询结果的数据

 例:查询class表中的学生是否成年,并将班级、姓名一并输出;

SELECT 班级,姓名,
CASE
WHEN 年龄 >=18 THEN '已成年'
ELSE '未成年'
END AS 是否成年
FROM class

 注:第一张为运行结果,第二张为class表原数据;

WHERE子句

WHERE子句必须紧跟FROM子句之后

语句结构基本为 WHERE [判定运算] 

其中判定运算又包含了 比较运算 逻辑运算 模式匹配 范围比较 空值比较 

MySQL支持的比较运算符

=:等于         <=>:相等或等于空          <>:不等于

<:小于          <=:小于等于                  !=:不等于

>:大于          >=:大于等于       

 例:查询class表中年龄大于等于18的学生信息;

SELECT*FROM class
WHERE 年龄>=18;

MySQL支持的逻辑运算符

NOT或!          逻辑非                                 OR或||       逻辑或

AND或&&      逻辑与                                  XOR          逻辑异或

逻辑运算的结果为:1或0,分别代表 TRUE (真)及 FALSE (假),其使用方式与结构基本与JAVA、C等编程语言类似,这里就不过多阐述。

模式匹配介绍

主要使用 LIKE 运算符,用于指出一个字符串是否与指定的字符串相匹配,其运算对象可以是char、varchar、text、datetime等类型的数据,返回逻辑值为 TRUE (真)或 FALSE (假)

使用 LIKE 进行模式匹配时,常使用 _  或 % 进行模糊查询,% 代表0到多个字符, _ 代表单个字符。

例:查询class表中姓名开头第一个字为小的学生的信息;

SELECT * FROM class
WHERE 姓名 LIKE '小%';

 注:_ 或 % 不一定要放在小的后面,也可放在前面,当然前提是小的前面要有字符。

 范围比较

范围比较的关键字有 BETWEENIN 两个, BETWEEN 用于在一定范围内进行比较,IN 可以指定一个值表,当字段的值与值表中的任意一个值匹配时,则为 TRUE (真)否则为 FALSE (假)

例:查询class表中2205~2206班的学生信息;

SELECT*FROM class
WHERE 班级 BETWEEN 2205 AND 2206;

 例:查询class表中年龄为17、19岁的学生信息;

SELECT*FROM class
WHERE 年龄 IN (17 , 18);

 空值比较

当想要确认一个表达式的值是否为空(NULL)时,可使用 IS NULL 关键字进行判断。

格式:[表达式] IS NULL                     //查询目标为空

           [表达式] IS NOT NULL             //查询目标不为空

例:查询class表中成绩值为空的学生的信息;

SELECT*FROM class
WHERE 成绩 IS NULL;

 多表查询


多表连接

常用的连接方式有 JOIN 连接,使用 JOIN 关键字建立多表连接时,JOIN 子句中定义了如何使用JOIN 关键字连接表。

使用 JOIN 关键字的连接主要分为2种:内连接与外连接。

指定了 INNER 关键字的连接为内连接

指定了 OUTER 关键字的连接为外连接

格式为:

内连接 [表名1] INNER JOIN [表名2]

外连接 [表名1] {LEFT 或 RIGHT} OUTER JOIN [表名2]

两种连接都可在底下使用以下结构

           ON [连接条件] | USING [列名]

分类、汇总、排序


聚合函数

SELECT 子句的相关表达式中可以包含聚合函数(aggregation function)

聚合函数常用与对一组数值进行计算,然后返回一个值。

注:除 COUNT 函数外,聚合函数 都会忽略空值吗,其常与 GROUP BY 子句一起使用。

COUNT函数

用于统计某个表中满足某个条件的行数或总行数。

例:查询class表中一共有几条数据;

SELECT COUNT(*)AS '目前已有数据数' FROM class;

 MAX与MIN函数

用于求表达式中所有值的最大值与最小值。

例:查询class表中成绩最高分和最低分;

SELECT MAX(成绩),MIN(成绩) FROM class;

 SUM与AVG函数

用于求表达式中所有值的和与平均值。

例:查询class表中成绩总和和平均分;

SELECT SUM(成绩)AS '总分',AVG(成绩)AS '平均分'
FROM class;

 

 GROUP BY (分类)子句

主要用于根据字段进行分组

注:MySQL对GROUP BY子句进行了扩展,可在ORDER BY子句列后面使用列名+ ASC(升序)DESC(降序) 子句指定排序方法。

例:查询class表,按班级分组进行升序排序;

SELECT 班级 
FROM class
GROUP BY 班级 
ORDER BY 班级 ASC;

 因时间及个人水平不佳,故且先写至此处。

本文章作为“MySQL数据库技术”课程的基础语句及知识总结,由于笔者水平有限,或许有许多不足之处在所难免,敬请谅解。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值