MySQL学习笔记

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 1. MySQL基础:包括数据库概念、常见DBMS(MySQL、Oracle、SQLServer、SQLite)、安装与管理、服务启动2. SQL简介:SQL语言含义、语法特点3. DDL:创建、查询、修改、删除和使用,以及表的创建、查询、删除和修改,涵盖数据类型(int、double、varchar等)。4. DML:表记录的增、删、改,如INSERT INTO(指定/所有列)、DELETE FROM(WHERE条件/全表)、UPDATE5. DQL:查询操作,包括基础查询、去重、计算和别名,以及WHERE后的条件(AND、OR、NOT、BETWEEN、IN、LIKE)和模糊查询。

MySQL学习笔记

1、MySQL基础介绍
2、SQL的介绍
3、MySQL的DDL(操作数据库和表,增删改查,使用)
4、MySQL的DML(操作表记录,增删改)
5、MySQL的DQL(操作表记录,查)

I. MySQL基础介绍
1、数据库的基本概念
数据库: DataBase 简称 DB
作用: 用于永久性存储和管理数据的仓库
2、常见的数据库
A.MySQL 简单的免费的数据库 ---> 现在学习
B.Oracle 大型收费数据库 ---> 后期学习
C.SQLServer 大学教材 微软的 C# 和 .Net 超市收银机
D.SQLite 嵌入式数据库 Android系统
3、MySQL软件的安装和卸载
A.安装(参考资料按照)注意:路径不要有中文,记住你的密码,推荐密码123
B.卸载(需要删除隐藏文件夹下面的数据) C:\ProgramData\MySQL
4、MySQL启动服务的操作
A.手动启动
a.计算机 -> 管理 -> 服务和应用程序 -> 服务
b.任务管理器 -> 服务
B.普通CMD小黑窗口
a.指令: servers.msc "微软ms控制c"
C.管理员CMD小黑窗口
a.开启服务 net start mysql
b.关闭服务 net stop mysql
5、MySQL的登录和退出的操作
A.登录
a.登录自己的
mysql -u root -p 密码
b.登录别人的(别人在安装的时候,勾选远程访问)
方式1: mysql -h 127.0.0.1 -u root -p 密码
方式2: mysql --host=127.0.0.1 --user=root --password==密码
B.退出
a. exit
b. quit
6、MySQL的重要文件
A.安装文件
my.ini 可以修改编码问题(例如:可以解决中文乱码的问题)
B.数据文件
文件夹 --------> 数据库
excel文件 -----> 表
很多条数据 ----> 表记录

II.SQL的介绍
1、SQL的含义
SQL是用于操作关系型数据库的语言. (操作某种数据库的规则)
2、SQL的通用语法
A.SQL语句以分号结尾(分号:英文分号)
B.SQL语句不区分大小写(建议大家写关键字的时候,写大写)
C.注释
a.单行注释
方式1: -- 单行注释,注意中间有空格
方式2: #这是注释,MySQL专属的注释
b.多行注释
/这是多行注释,和Java的一样/
3、SQL语句的分类
A. DDL 操作数据库和表
B. DML 增,删,改 数据库当中表记录
C. DQL 查询数据库当中表记录
D. DCL 客户端授权数据库的操作(了解)

III .MySQL的DDL(操作数据库和表,增删改查,使用)
I.数据库的操作:【增,删,改,查,使用】
1、创建数据库的操作
A.基本创建操作
CREATE DATABASE 数据库名称;
B.综合创建操作(判断是否存在,指定字符集"不会出现中文乱码问题")
CREATE DATABASE IF NOT EXISTS 数据库名称 CHARACTER SET 具体的编码;
2、查询数据库的操作
A.显示所有的数据库
SHOW DATABASES;
B.显示数据库的创建语句(隐含的作用:查看数据库的字符集)
SHOW CREATE DATABASE 数据库名称;
3、修改数据库的操作
A.修改数据库的字符集
ALTER DATABASE 数据库名称 CHARACTER SET 具体的编码;
4、删除数据库的操作
A.基本的删除操作
DROP DATABASE 数据库名称;
B.判断是否存在,存在则删除的操作
DROP DATABASE IF EXISTS 数据库名称;
5、使用数据库的操作
A.使用数据库
USE 数据库名称;
B.查询正在使用当中的数据库
SELECT DATABASE();
2.表的操作【增,删,改,查】
1、查询表的操作
A.查询数据库当中所有的表信息
SHOW TABLES;
B.查询某个具体表的结构(每个字段的信息)
DESC 表名称;
2、创建表的操作
A.基本的创建格式
CREATE TABLE 表名称 (列名1 类型1,列名2 类型2,列名3 类型3);
B.复制表的操作
CREATE TABLE 新表名称 LIKE 原始表;
C.常用的数据类型
a.整数类型 int
b.小数类型 double(4,1) 4表示有4个数字,1表示精确小数点后1位
c.字符串类型 varchar(24) 24表示最大容纳24个字符
d.日期类型 date 需要手动的插入数据到数据库当中
e.时间戳类型 timestamp 可以自动添加当前的系统时间
3、删除表的操作
A.基本的删除操作
DROP TABLE 表名称;
B.判断是否存在,存在则删除的操作
DROP TABLE IF EXISTS 表名称;
4、修改表的操作
A.修改表名称
ALTER TABLE 原始表名称 RENAME TO 新的表名;
B.修改表的字符集
ALTER TABLE 表名称 CHARACTER SET 字符集编码;
C.修改列名
ALTER TABLE 表名称 CHANGE 旧列名称 新列名称 新列数据类型;
ALTER TABLE 表名称 MODIFY 要修改的列名 新的数据类型;
D.增加一列
ALTER TABLE 表名称 ADD 列名称 数据类型;
E.删除一列
ALTER TABLE 表名称 DROP 列名称;

VI. MySQL的DML(操作表记录,增删改)
1、表记录的添加语句
A.添加指定列的数据
INSERT INTO 表名称 (列名1,列名2,列名3) VALUES (值1,值2,值3);
B.添加所有列的数据
INSERT INTO 表名称 VALUES (值1,值2,值3,值4,值5);
C.注意事项
除了数字类型(整数和小数)以外,其他的都要采用引号(单引号双引号都可以)引起来
2、表记录的删除语句
A.删除指定的某些条记录
DELETE FROM 表名称 [WHERE 条件];
B.删除整个表的操作
a. DELETE FROM 表名称; -- 删除整个表(逐行删除) 效率低
b. TRUNCATE TABLE 表名称; -- 删除整个表(先删表,再建表) 效率高 【推荐使用】
3、表记录的修改语句
A.常见修改语句的操作(带有条件)
UPDATE 表名称 SET 列名1=值1,列名2=值2 [WHERE 条件];
B.不常见的修改语句操作(修改所有的情况)
UPDATE 表名称 SET 列名1=值1,列名2=值2;

V. MySQL的DQL(操作表记录,查)
1、基础查询
    A.多个字段的查询操作
        a.通用写法
            SELECT * FROM 表名称;
        b.指定列写法
            SELECT 列名1,列名2,列名3  FROM 表名称;
    B.去掉重复的查询操作
            SELECT DISTINCT 列名 FROM 表名称;
    C.四则运算计算列的操作
            SELECT IFNULL (列名1,0) + 列名2  FROM 表名称;
    D.给查询结果起别名的操作
             SELECT 列名1 AS 别名1,列名2 别名2 FROM 表名称; 
2、条件查询 WHERE 后面的格式写法
    A.与 && (理解)
        a.写法1:  SELECT * FROM 表名称 WHERE age>20 && age<30;
        b.写法2:  SELECT * FROM 表名称 WHERE age>20 AND age<30;    
        c.写法3:  SELECT * FROM 表名称 WHERE age BETWEEN 20 AND 30;
    B.或 || (理解)
        a.写法1:  SELECT * FROM 表名称 WHERE age=20 || age=30;
        b.写法2:  SELECT * FROM 表名称 WHERE age=20 OR age=30;
        c.写法3:  SELECT * FROM 表名称 WHERE age IN(20,30);   -- 年龄是20或者30的才可以
    C.非 !  (理解)
        a.写法1:  SELECT * FROM 表名称 WHERE address IS NULL;  -- 居住地是Null
        b.写法2:  SELECT * FROM 表名称 WHERE address IS NOT NULL;  -- 居住地不是Null
3、模糊查询 WHERE LIKE 
    A.两个占位符
        a. '_' 下划线,表示1个字符
        b. '%' 百分号,表示0个或多个字符
    B.案例
        a. 查询姓'武'
            SELECT * FROM hero WHERE name LIKE '武%'; 
        b. 查询姓'武'只有两个字
            SELECT * FROM hero WHERE name LIKE '武_';
        c. 查询第二个字是'文'的
            SELECT * FROM hero WHERE name LIKE '_文%';
        d. 查询只要带有'李'字的
            SELECT * FROM hero WHERE name LIKE '%李%';

相关习题1

创建表的操作

CREATE TABLE employee(
    id INT,
    NAME VARCHAR(20),
    sex VARCHAR(10),
    birthday DATE,
    salary FLOAT,   
    RESUME TEXT

);

插入数据

    INSERT INTO employee VALUE(1,"zhangsan","male","1980-11-25",2000,"good body");
    INSERT INTO employee VALUES(2,"lisi","male","1980-04-25",1000,"good body");
    INSERT INTO employee VALUES(3,"xiaohong","female","1978-11-25",4000,"good girl");

完成下面的功能

1.将所有员工薪水修改为5000元。
2.将姓名为’zhangsan’的员工薪水修改为3000元。
3.将姓名为’lisi’的员工薪水修改为4000元,sex改为female。
4.将xiaohong的薪水在原有基础上增加1000元。

1.UPDATE employee set salary=5000;
2.UPDATE employee set salary=3000 WHERE NAME="zahngsan";
3.UPDATE employee set salary=4000,sex="female" WHERE NAME="lisi";
4.UPDATE employee set salary=5000+1000 WHERE NAME="xiaohong";

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
6月前
|
存储 关系型数据库 MySQL
Linux C/C++ 开发(学习笔记八):Mysql数据库图片存储
Linux C/C++ 开发(学习笔记八):Mysql数据库图片存储
145 0
|
1月前
|
存储 SQL 关系型数据库
Mysql学习笔记(二):数据库命令行代码总结
这篇文章是关于MySQL数据库命令行操作的总结,包括登录、退出、查看时间与版本、数据库和数据表的基本操作(如创建、删除、查看)、数据的增删改查等。它还涉及了如何通过SQL语句进行条件查询、模糊查询、范围查询和限制查询,以及如何进行表结构的修改。这些内容对于初学者来说非常实用,是学习MySQL数据库管理的基础。
128 6
|
1月前
|
SQL 关系型数据库 MySQL
Mysql学习笔记(三):fetchone(), fetchmany(), fetchall()详细总结
MySQL中用于数据检索的`fetchone()`, `fetchmany()`, `fetchall()`函数的功能、SQL语句示例和应用场景。
53 3
Mysql学习笔记(三):fetchone(), fetchmany(), fetchall()详细总结
|
1月前
|
SQL Ubuntu 关系型数据库
Mysql学习笔记(一):数据库详细介绍以及Navicat简单使用
本文为MySQL学习笔记,介绍了数据库的基本概念,包括行、列、主键等,并解释了C/S和B/S架构以及SQL语言的分类。接着,指导如何在Windows和Ubuntu系统上安装MySQL,并提供了启动、停止和重启服务的命令。文章还涵盖了Navicat的使用,包括安装、登录和新建表格等步骤。最后,介绍了MySQL中的数据类型和字段约束,如主键、外键、非空和唯一等。
70 3
Mysql学习笔记(一):数据库详细介绍以及Navicat简单使用
|
1月前
|
关系型数据库 MySQL 数据库
Mysql学习笔记(四):Python与Mysql交互--实现增删改查
如何使用Python与MySQL数据库进行交互,实现增删改查等基本操作的教程。
61 1
|
5月前
|
SQL Oracle 关系型数据库
MySQL学习笔记
MySQL学习笔记
39 0
|
3月前
|
SQL druid Java
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(下)
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)
55 3
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(下)
|
3月前
|
SQL Java 关系型数据库
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(上)
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)
125 3
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(上)
|
3月前
|
SQL 关系型数据库 MySQL
MySQL学习笔记
这篇文章是一份关于MySQL数据库操作的学习笔记,涵盖了数据库的终端操作、数据类型、建表约束、事务处理以及SQL的连接查询等基础知识点。
|
3月前
|
SQL 关系型数据库 MySQL
Java数据库部分(MySQL+JDBC)(一、MySQL超详细学习笔记)(下)
Java数据库部分(MySQL+JDBC)(一、MySQL超详细学习笔记)
38 6