第十章 学会MySQL数据库,看这篇就够了!【建议收藏】

提示:看完本文章后包你学会MySQL。


前言

数据库可以根据存储数据的结构进行分类。以下是一些常见的数据库分类:

关系型数据库(RDBMS):基于关系模型的数据库,使用表格和行列的结构来存储和管理数据。常见的关系型数据库有MySQL、Oracle、SQL Server等。

非关系型数据库(NoSQL):与关系型数据库相反,非关系型数据库不使用表格和行列的结构,而是使用其他数据模型存储和管理数据。常见的非关系型数据库有MongoDB、Redis、Cassandra等。


一、MySQL是什么?

我们下载的MySQL是一个数据库管理系统,在这个系统里面可以有很多的数据库。每个数据库会有很多表格,而每个表格都会有很多的列,每一列会有很多行!

二、在终端操作MySQL

2.1.登录(连接相关操作)

如下图所示:
在这里插入图片描述
MySQL5.7 是我在配置环境变量时将MySQL.exe重命名为MySQL5.7.exe。配置环境变量时也是MySQL5.7。

-uroot是指使用root用户登录数据库,你还可以使用其他用户登录。

-h192.168.11.16是连接到那个主机的IP。

-p后面跟你-u用户设置的密码。

2.2.数据库相关操作

1)show database;
分号一定要写,会显示当前连接中所有的数据库。
2)create database teacher;
create database teacher charset= utf8;
create database teacher character set utf8;
create database if not exists teacher character set utf8;
创建一个名为teacher的数据库,如何不存在则创建,并设置为可以写入中文。
3)drop database teacher;
删除一个teacher数据库。
4)use teacher;
连接到教师数据库。
在这里插入图片描述

2.3.表相关操作(列相关操作)

1)添加一个表
create table teacher (tid int not null primary key auto_increment, name varchar(20) not null default ‘张三’ ,constraint fk_name foreign key (tid) references student (sid) on delete restrict on update cascade);
添加一个teacher表,该表有两项tid和name,其中tid与表student表中的sid构成外键,当student 中的id更新时,也会更新。当student中的id被删除时时,拒绝删除。
2)删除一个表
drop table student;
删除学生表
3)显示表的列(表的结构)
describe teacher;
desc teacher;
4)修改表
alter table teacher add (n varchar(200) ,pay1 int default 200);
给teacher表中添加两列。在一个括号中,使用,隔开。
在这里插入图片描述

2.4.数据相关操作(行相关操作)

1)关于查询数据

  1. 基本查询:查询表中的所有数据或指定列的数据。

    • 查询所有列的数据:

      SELECT * FROM table_name;
      
    • 查询指定列的数据:

      SELECT column1, column2 FROM table_name;
      
  2. 条件查询:根据条件筛选数据。

    • 使用 WHERE 子句进行条件查询:
      SELECT * FROM table_name WHERE condition;
      
  3. 排序查询:按照指定的列对结果进行排序。

    • 使用 ORDER BY 进行升序排序:

      SELECT * FROM table_name ORDER BY column_name ASC;
      
    • 使用 ORDER BY 进行降序排序:

      SELECT * FROM table_name ORDER BY column_name DESC;
      
  4. 聚合函数:对数据进行统计计算。

    • 求和:

      SELECT SUM(column_name) FROM table_name;
      
    • 平均值:

      SELECT AVG(column_name) FROM table_name;
      
  5. 分组查询:按照指定列对数据进行分组。

    • 使用 GROUP BY 进行分组查询:
      SELECT column1, SUM(column2) FROM table_name GROUP BY column1;
      
  6. 连接查询:联合多个表进行查询。

    • 内连接:

      SELECT * FROM table1 INNER JOIN table2 ON table1.column = table2.column;
      
    • 左连接:

      SELECT * FROM table1 LEFT JOIN table2 ON table1.column = table2.column;
      

2)关于插入和删除数据

  1. 插入数据:使用 INSERT INTO 语句将新数据插入到表中。

    • 插入完整数据:

      INSERT INTO table_name (column1, column2) VALUES (value1, value2);
      INSERT INTO table_name  VALUES (value1, value2);
      
    • 插入部分数据:

      INSERT INTO table_name (column1) VALUES (value1);
      
  2. 删除数据:使用 DELETE FROM 语句删除表中的数据。

    • 删除所有数据:

      DELETE FROM table_name;
      
    • 根据条件删除数据:

      DELETE FROM table_name WHERE condition;
      
    • 删除特定行数的数据:

      DELETE FROM table_name LIMIT 5;  -- 删除前5行数据
      

三.其他常用技术(了解理论即可)

3.1.事务(Transaction):

事务是指作为单个逻辑工作单元执行的一系列操作,要么全部成功执行,要么全部失败回滚,确保数据的完整性和一致性。在 MySQL 中,可以使用以下语句来管理事务:

  • 开始事务START TRANSACTION;
  • 提交事务COMMIT;
  • 回滚事务ROLLBACK;

示例:

START TRANSACTION;
UPDATE table_name SET column1 = value1 WHERE condition;
INSERT INTO table_name (column1, column2) VALUES (value1, value2);
COMMIT;

3.2.去重(Duplicate Removal):

去重是指在数据集中删除重复的数据,确保数据库中的数据不重复出现。在 MySQL 中,可以通过使用 DISTINCT 关键字或 GROUP BY 子句来进行数据去重。

  • 使用 DISTINCT 关键字:

    SELECT DISTINCT column1, column2 FROM table_name;
    
  • 使用 GROUP BY 子句:

    SELECT column1, COUNT(*) FROM table_name GROUP BY column1;
    

值得注意的是,去重操作一般是针对查询结果进行的,如果需要在表中删除重复数据,可以结合使用 DELETE 语句和子查询等方法来实现。

四.使用python来操作MySQL数据库

  • 创建连接
    connection = pymysql.connect(port=3306, user=‘root’, password=‘123456’)
  • 创建游标
    cursor = connection.cursor()
  • 写并执行sql语句
    sql = ‘show databases;’
    cursor.execute(sql)
  • 从游标中获取内容
    datas = cursor.fetchall()
    for data in datas:
    print(data[0])
  • 关闭游标与连接
    cursor.close()
    connection.close()
  • 获取查询数据
    fetch
    fetchOne
    fetchMany
    fetchAll
    scorll
  • 移动游标位置方式
    relative
    absolute
  • 执行!
    cur.executemany('insert into cartoon values (%s,%s,%s) ', datas)
  • 记得提交与关闭连接
    con.commit()
    cur.close()
    con.close()

五.总结

MySQL 是一种流行的关系型数据库管理系统,具有广泛的应用范围和强大的功能。以下是关于 MySQL 数据库的特点:

  1. 数据组织:MySQL 数据库以表(Table)的形式存储数据,每个表包含多个列(Column),每行(Row)代表一个记录。表之间可以建立关系,实现数据的关联和查询。

  2. 数据操作:MySQL 支持常见的数据操作,包括插入(INSERT)、查询(SELECT)、更新(UPDATE)和删除(DELETE),可以通过 SQL 语句来实现对数据的管理和操作。

  3. 事务支持:MySQL 支持事务(Transaction)操作,保证一系列操作的原子性,要么全部成功执行,要么全部失败回滚,确保数据的完整性和一致性。

  4. 索引和优化:MySQL 支持在列上创建索引(Index),加快数据检索速度;同时也提供了优化器(Optimizer)来优化查询语句,提高查询效率。

  5. 安全性:MySQL 提供用户权限管理功能,可以限制用户对数据库的访问权限,保障数据安全;同时也支持数据备份和恢复,防止数据丢失。

  6. 扩展性:MySQL 支持主从复制、分区表、分布式数据库等特性,可以应对大规模数据和高并发访问的需求,保证系统的稳定性和可扩展性。

总的来说,MySQL 是一款功能强大、性能优秀、易于使用的关系型数据库管理系统,被广泛应用于Web开发、企业应用等各个领域。通过合理的设计和优化,可以充分发挥 MySQL 数据库的潜力,实现高效可靠的数据存储和管理。

  • 19
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值