MySQL 的基本概念和基本操作

70 阅读4分钟

MySQL 中的基本概念

  • 数据库(Database):数据库是指一组相关数据的集合,可以包含多个表。
  • 表(Table):表是数据库中的一个对象,由多个行和列组成,用于存储数据。
  • 列(Column):列是表中的一个属性,用于描述数据的特征,经常称为字段(Field)。
  • 行(Row):行是表中的一个记录,包含多个列的值。
  • 主键(Primary Key):主键是表中的一个列或一组列,用于唯一标识表中的每一行数据。
  • 索引(Index):索引是一种数据结构,用于加快数据的查找速度。
  • 事务(Transaction):事务是一组数据库操作,要么全部执行成功,要么全部回滚,用于保证数据的一致性和完整性。

MySQL 的基本操作 - DDL

DDL是指数据定义语言(Data Definition Language),用于定义数据库对象(如表、视图、索引等)的结构和属性。常见的DDL语句包括以下几种:

  • CREATE:用于创建数据库对象,如创建表、视图、索引等。
  • ALTER:用于修改数据库对象的结构和属性,如修改表结构、添加列、删除列等。
  • DROP:用于删除数据库对象,如删除表、视图、索引等。
  • TRUNCATE:用于清空表中的数据,但不删除表本身。
  • RENAME:用于重命名数据库对象,如重命名表、视图等。
  • COMMENT:用于添加注释,如添加表、列、视图等的注释。

MySQL 的基本操作 - DML

DML是指数据操作语言(Data Manipulation Language),用于对数据库中的数据进行操作,常见的DML语句包括以下几种:

  • SELECT:用于查询数据库中的数据,可以指定查询的列、条件、排序等。
  • INSERT:用于向数据库中插入新的数据,可以指定插入的列和值。
  • UPDATE:用于修改数据库中的数据,可以指定修改的列和值、条件等。
  • DELETE:用于删除数据库中的数据,可以指定删除的条件。

即我们常说的增删改查,英文是 CRUD,Create(增加)、Retrieve(查询)、Update(修改)、Delete(删除)。

MySQL 基本操作

创建 MySQL 表的通用 SQL 语法

image.png

例子:创建学生信息表

image.png

  • MySQL中字段命名不同于Java程序
  • Java程序中变量常用驼峰命名法 camel case,例如 favoriteClass
  • MySQL字段常用蛇形命名法 snake case(单词之间用下划线分隔),例如 favorite_class

MySQL的数据类型

  • 整数类型(Integer Types):包括TINYINT、SMALLINT、MEDIUMINT、INT和BIGINT等,用于存储整数。
  • 浮点数类型(Floating-Point Types):包括FLOAT和DOUBLE等,用于存储浮点数。
  • 定点数类型(Fixed-Point Types):包括DECIMAL和NUMERIC等,用于存储精确的小数。
  • 字符串类型(String Types):包括CHAR、VARCHAR、TEXT、BLOB等,用于存储字符串或二进制数据。
  • 日期和时间类型(Date and Time Types):包括DATE、TIME、DATETIME和TIMESTAMP等,用于存储日期和时间。
  • 枚举类型(Enumeration Types):用于存储枚举值。
  • 集合类型(Set Types):用于存储一组可能的值。

MySQL常用的数据类型

  • 数字常用 INT 或 BIGINT 存储,不建议用小数,小数可能造成精度丢失。解决方案是将小数转为整数(最小单位),例如钱转成单位“分”,重量转成单位“微克”。
  • 字符串常用 VARCHAR,可变长度字符串,VARCHAR(256) 表示这个字段可以最多存储256个字符。
  • 时间常用 DATETIME 或 TIMESTAMP,或者用 BIGINT 存储毫秒时间戳。

向数据表中插入数据

  • 插入单条数据

image.png

  • 插入多条数据

image.png

  • 插入数据时,有些字段不能为空且没有默认值,则必须要设置值,否则会无法插入

image.png

image.png

从数据表中查询数据

  • 基本的查询语法

image.png

  • 返回部分字段

image.png

  • 返回所有字段

image.png

  • 使用 where 语句过滤符合条件的数据

image.png

  • order by 对返回结果进行排序
    • 可以根据一个字段排序,也可以根据多个字段排序
    • 可以指定升序(asc)或降序(desc),默认为升序

image.png

  • 使用 limit offset 限制数据的返回条数

image.png

更新数据表中的数据

  • 更新基本语法

image.png

  • 只更新符合 where 条件的数据行,where 语句不是必填,但强烈建议填写,没有 where 语句则全表更新

image.png

删除数据表中的数据

  • 删除基本语法

image.png

  • 只删除符合 where 条件的数据行,where 语句不是必填,但强烈建议填写,没有 where 语句则全表删除

image.png

修改表结构

  • 添加字段

image.png

  • 删除字段

image.png

  • 变更字段
    • 变更字段可以用 modify、change
    • modify 不可以修改字段名称,只能修改字段类型、属性、注释
    • change 可以修改字段名称、类型、属性、注释

image.png

清空表数据(不删除表)

image.png

删除表

image.png

删除数据库

image.png