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 语法
例子:创建学生信息表
- 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 存储毫秒时间戳。
向数据表中插入数据
- 插入单条数据
- 插入多条数据
- 插入数据时,有些字段不能为空且没有默认值,则必须要设置值,否则会无法插入
从数据表中查询数据
- 基本的查询语法
- 返回部分字段
- 返回所有字段
- 使用 where 语句过滤符合条件的数据
- order by 对返回结果进行排序
- 可以根据一个字段排序,也可以根据多个字段排序
- 可以指定升序(asc)或降序(desc),默认为升序
- 使用 limit offset 限制数据的返回条数
更新数据表中的数据
- 更新基本语法
- 只更新符合 where 条件的数据行,where 语句不是必填,但强烈建议填写,没有 where 语句则全表更新
删除数据表中的数据
- 删除基本语法
- 只删除符合 where 条件的数据行,where 语句不是必填,但强烈建议填写,没有 where 语句则全表删除
修改表结构
- 添加字段
- 删除字段
- 变更字段
- 变更字段可以用 modify、change
- modify 不可以修改字段名称,只能修改字段类型、属性、注释
- change 可以修改字段名称、类型、属性、注释