MySQL数据库进阶实战--笔记

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: MySQL数据库进阶实战--笔记

MySQL数据库进阶实战

MySQL数据库快速部署实践

  1. 更新YUM源

    rpm -Uvh  http://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
  2. 安装MySQL

    yum -y install mysql-community-server --nogpgcheck

    执行完成后,使用命令mysql -V查看是否安装成功

  3. 启动MySQL服务

    systemctl start mysqld
  4. 设置MySQL服务开机自动启动

    systemctl enable mysqld
  5. 配置MySQL的root用户密码

    1. 查看初始化密码

      grep 'temporary password' /var/log/mysqld.log

    2. 登录root用户

      mysql -uroot -p

      输入上面查到的密码登录MySQL

    3. 修改root用户的密码

      set global validate_password_policy=0;  #修改密码安全策略为低(只校验密码长度,至少8位)。
      ALTER USER 'root'@'localhost' IDENTIFIED BY '12345678';
    4. 赋予root用户远程管理权限(这个操作可以允许当前帐号通过工具连接数据库操作,非常好用~)

      GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '12345678';
    5. 退出数据库

      exit
  6. 基础命令练习

    使用shell命令登录mysql:mysql -uroot -p12345678

    create database test; #创建test数据库
    show databases; #查看当前数据库列表
    use mysql; #连接到mysql数据库
    show tables; #查看当前数据库下的表

    使用exit返回至shell界面,将test数据库备份到当前目录

    mysqldump -uroot -p test >test.sql

    输入密码后等待备份完成,使用ll查看备份文件

    我们还可以将备份文件导入到数据库中(-D,指定导入的数据库为test)

    mysql -uroot -p -Dtest<test.sql

    常用SQL(记得每一条语句要带分号;)

    use test;
    create table test1 (id int,name char(20));#创建test1表格,包含id,name字段
    insert into test1 values(1,"zhangsan");#插入一条数据
    #新增语法:INSERT INTO 表名称 VALUES (值1, 值2,....);
    select * from test1;#查询表数据
    update test1 set name = "lisi" where id =1;#更改表数据
    #更新语法:UPDATE 表名称 SET 列名 = 值 WHERE 表名称 = 值;
    delete from test1 where id =1;#删除数据
    #删除语法:DELETE FROM 表名称 WHERE 列名称 = 值;
    drop table test1;#删除表
    drop database test;#删除数据库
    

数据库基础(MySQL)

新增

INSERT INTO USER
       (col_name1, col_name2, col_name3, col_name4)#指定新增某些字段
VALUES
       ('VALUE1', 2, 'VALUE3', 1),
       ('VALUES2', 3, 'VALUES4', 4);#自增值可以不填写
INSERT INTO USER #不标注插入的哪些字段,后面的值就必须和表设计的排序、字段数量保持一直
VALUES
       ('VALUE1', 2, 'VALUE3', 1),
       ('VALUES2', 3, 'VALUES4', 4);

查询

SELECT col_name,...
  FROM table_name
 WHERE where_condition
 GROUP BY col_name,...
HAVING where_condition
 ORDER BY col_name,...
 LIMIT offset,row_count

更新

UPDATE table_name SET col_name=expr,... WHERE where_condition

删除

DELETE FROM table_name WHERE where_condition
SELECT a.sid,
       a.score,
       s.sname
  FROM
  (SELECT sid, score FROM sc WHERE cid= "102") a,
       (SELECT sid, score FROM sc WHERE cid= "101") b,student as s
 WHERE a.score > b.score
   AND a.sid= b.sid
   AND s.sid= a.sid
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
28天前
|
SQL 关系型数据库 MySQL
【MySQL技术专题】「问题实战系列」深入探索和分析MySQL数据库的数据备份和恢复实战开发指南(8.0版本升级篇)
【MySQL技术专题】「问题实战系列」深入探索和分析MySQL数据库的数据备份和恢复实战开发指南(8.0版本升级篇)
96 0
|
1天前
|
SQL 关系型数据库 MySQL
不允许你不知道的 MySQL 优化实战(一)
不允许你不知道的 MySQL 优化实战(一)
|
4天前
|
关系型数据库 MySQL 中间件
【MySQL实战笔记】07 | 行锁功过:怎么减少行锁对性能的影响?-02 死锁和死锁检测
【4月更文挑战第19天】在高并发环境下,死锁发生在多个线程间循环等待资源时,导致无限期等待。MySQL中,死锁可通过`innodb_lock_wait_timeout`参数设置超时或`innodb_deadlock_detect`开启死锁检测来解决。默认的50s超时可能不适用于在线服务,而频繁检测会消耗大量CPU。应对热点行更新引发的性能问题,可以暂时关闭死锁检测(风险是产生大量超时),控制并发度,或通过分散记录减少锁冲突,例如将数据分拆到多行以降低死锁概率。
19 1
|
7天前
|
SQL 关系型数据库 MySQL
Python与MySQL数据库交互:面试实战
【4月更文挑战第16天】本文介绍了Python与MySQL交互的面试重点,包括使用`mysql-connector-python`或`pymysql`连接数据库、执行SQL查询、异常处理、防止SQL注入、事务管理和ORM框架。易错点包括忘记关闭连接、忽视异常处理、硬编码SQL、忽略事务及过度依赖低效查询。通过理解这些问题和提供策略,可提升面试表现。
28 6
|
14天前
|
存储 关系型数据库 MySQL
【MySQL实战笔记】 04 | 深入浅出索引(上)-02
【4月更文挑战第9天】InnoDB数据库使用B+树作为索引模型,其中主键索引的叶子节点存储完整行数据,非主键索引则存储主键值。主键查询只需搜索一棵树,而非主键查询需两次搜索,因此推荐使用主键查询以提高效率。在插入新值时,B+树需要维护有序性,可能导致数据页分裂影响性能。自增主键在插入时可避免数据挪动和页分裂,且占用存储空间小,通常更为理想。然而,如果场景仅需唯一索引,可直接设为主键以减少查询步骤。
15 1
【MySQL实战笔记】 04 | 深入浅出索引(上)-02
|
16天前
|
存储 SQL 关系型数据库
【MySQL实战笔记】03.事务隔离:为什么你改了我还看不见?-02
【4月更文挑战第7天】数据库通过视图实现事务隔离,不同隔离级别如读未提交、读已提交、可重复读和串行化采用不同策略。以可重复读为例,MySQL使用多版本并发控制(MVCC),每个事务有其独立的视图。回滚日志在无更早视图时被删除。长事务可能导致大量存储占用,应避免。事务启动可显式用`begin`或设置`autocommit=0`,但后者可能意外开启长事务。建议使用`autocommit=1`并显式管理事务,若需减少交互,可使用`commit work and chain`。
30 5
|
18天前
|
SQL 存储 关系型数据库
【MySQL实战笔记】02.一条SQL更新语句是如何执行的-2
【4月更文挑战第5天】两阶段提交是为确保`redo log`和`binlog`逻辑一致,避免数据不一致。若先写`redo log`, crash后数据可能丢失,导致恢复后状态错误;若先写`binlog`,crash则可能导致重复事务,影响数据库一致性。一天一备相较于一周一备,能缩短“最长恢复时间”,但需权衡额外的存储成本。
16 1
|
28天前
|
SQL 关系型数据库 MySQL
【MySQL技术专题】「问题实战系列」深入探索和分析MySQL数据库的数据备份和恢复实战开发指南(数据恢复补充篇)(一)
【MySQL技术专题】「问题实战系列」深入探索和分析MySQL数据库的数据备份和恢复实战开发指南(数据恢复补充篇)
30 0
|
3天前
|
SQL 存储 关系型数据库
MySQL Cluster集群安装及使用
MySQL Cluster集群安装及使用
|
7天前
|
关系型数据库 MySQL 数据库
《MySQL 简易速速上手小册》第1章:MySQL 基础和安装(2024 最新版)
《MySQL 简易速速上手小册》第1章:MySQL 基础和安装(2024 最新版)
33 4