博客
关于我
MySQL基础学习总结
阅读量:790 次
发布时间:2023-02-12

本文共 2378 字,大约阅读时间需要 7 分钟。

MySQL基础概念与使用方法

MySQL作为一款流行的关系型数据库管理系统,广泛应用于各类企业级系统开发、数据存储和处理中。本文将从基础概念、查询操作、数据处理等多个方面,详细介绍MySQL的核心功能和使用方法。

MySQL架构概述

MySQL的逻辑架构分为两个主要层次:服务层和存储引擎层。服务层负责接收客户端的查询请求、 parsing 和执行,主要包括连接管理、事务处理、缓存等功能。存储引擎则负责实际的数据存取和修改操作,常见的存储引擎有InnoDB、MyISAM等,其中InnoDB是推荐的主流引擎支持事务处理。

数据库、表和数据的关系

  • 数据库:数据的存储容器,包含多个表。
  • :数据的结构化清单,由列组成。
  • :表中的一个字段,所有表由多列组成。
  • 数据类型:规定数据的存储规则,如整数、字符串等。
  • :表中的一个记录,包含多个列的值。
  • 主键:唯一标识表中某一行的列,其值必须唯一。

基本操作指南

连接数据库

mysql -h host -u username -p

切换数据库

use database_name

查看数据库列表

show databases

查看表结构

show tables

查看表列信息

show columns from table_name

查看数据库状态

show status

数据检索与排序

基本查询语法

select [columns] from table_name [where conditions] [group by columns] [having conditions] [order by columns] [limit offset, count];

排序与限制

  • 升序/降序排序

    select * from goods order by num desc;
  • 限制返回行数

    select * from goods limit 2;
    • 可以指定从某一行开始:

      select * from goods limit 2, 2;

过滤条件

  • 基本过滤

    select id, name from goods where num > 10;
  • 复合过滤

    select * from goods where id = 2 and num > 10;
  • 范围查询

    select * from goods where num between 5 and 10;
  • 匹配空值

    select * from goods where num is null;

数据处理与聚合

常用聚合函数

  • AVG():计算某列的平均值。

  • COUNT():统计某列的行数。

  • MAX()/MIN():找出某列的最大值或最小值。

  • SUM():计算某列的总和。

分组与汇总

  • 分组查询

    select num, count(num) from goods group by num;
  • 按条件分组

    select num, count(*) from goods group by num having count(num) > 5;

联结与子查询

内部联接

select v.vend_name, p.prod_name from vendors v inner join products p on v.vend_id = p.vend_id;

自然联接

select v.vend_name, p.prod_name from vendors v natural join products p on v.vend_id;

外部联接

select c.cust_id, o.order_num from customers c left outer join orders o on c.cust_id = o.cust_id;

视图的应用

创建视图

create view top_products as select * from products where num > 5;

查询视图

select * from top_products;

更新视图

update top_products set num = num + 1 where name = '苹果';

数据操作

插入操作

insert into goods (name, num) values('香蕉', 3);

更新操作

update goods set num = 1 where name = '苹果';

删除操作

delete from goods where num = 7;

表的创建与管理

创建表

create table vendors (    vend_id int not null auto_increment,    vend_name char(50) not null,    vend_address char(50) null default '*',    vend_city char(40) null,    primary key (vend_id)) engine=InnoDB;

修改表

alter table vendors add column vend_phone char(20);

删除表

drop table vendors;

常见问题与注意事项

  • 事务处理:事务由存储引擎层实现,默认使用InnoDB引擎。

  • 空值处理:使用is null检测空值。

  • 排序与过滤顺序order by必须放在where子句之后。

  • 性能优化:减少索引使用,避免过度使用通配符和正则表达式。

  • 安全权限:合理分配用户权限,避免过度访问。

  • 通过以上知识和操作指南,开发者可以更高效地使用MySQL进行数据存储和处理,充分发挥其强大功能。

    转载地址:http://qhbfk.baihongyu.com/

    你可能感兴趣的文章
    MySQL学习-子查询及limit分页
    查看>>
    MySQL学习-排序与分组函数
    查看>>
    MySQL学习-连接查询
    查看>>
    Mysql学习总结(10)——MySql触发器使用讲解
    查看>>
    Mysql学习总结(11)——MySql存储过程与函数
    查看>>
    Mysql学习总结(12)——21分钟Mysql入门教程
    查看>>
    Mysql学习总结(13)——使用JDBC处理MySQL大数据
    查看>>
    Mysql学习总结(14)——Mysql主从复制配置
    查看>>
    Mysql学习总结(15)——Mysql错误码大全
    查看>>
    Mysql学习总结(16)——Mysql之数据库设计规范
    查看>>
    Mysql学习总结(17)——MySQL数据库表设计优化
    查看>>
    Mysql学习总结(18)——Mysql主从架构的复制原理及配置详解
    查看>>
    Mysql学习总结(19)——Mysql无法创建外键的原因
    查看>>
    Mysql学习总结(19)——Mysql无法创建外键的原因
    查看>>
    Mysql学习总结(1)——常用sql语句汇总
    查看>>
    Mysql学习总结(20)——MySQL数据库优化的最佳实践
    查看>>
    Mysql学习总结(21)——MySQL数据库常见面试题
    查看>>
    Mysql学习总结(22)——Mysql数据库中制作千万级测试表
    查看>>
    Mysql学习总结(23)——MySQL统计函数和分组查询
    查看>>
    Mysql学习总结(24)——MySQL多表查询合并结果和内连接查询
    查看>>