IE盒子

搜索
查看: 146|回复: 1

MySQL学习笔记(4)

[复制链接]

7

主题

13

帖子

29

积分

新手上路

Rank: 1

积分
29
发表于 2023-1-16 09:51:02 | 显示全部楼层 |阅读模式
4 MySQL学习第四天

4.1 数据表操作

数据库好比是仓库,而数据表则是仓库中的一个个房间
表记录操作包括:

  • 插入记录
  • 修改记录
  • 删除记录
  • 查询记录
记录操作——插入记录
语法格式:INSERT INTO 表名[(字段列表)] VALUES(值列表);
语法格式:INSERT INTO 目标表名[(字段列表1)]SELECT(字段列表2)FROM 源表 WHERE 条件;
插入记录时,需要考虑约束条件,有默认值约束时可用DEFAULT关键字表示插入的是默认值,有外键约束时需要插入NULL或者父表中主键存在的值,有auto_increment约束时建议插入NULL值,此时将会向该字段插入下一个编号
记录操作——修改记录
语法格式:UPDATE 表名 SET 字段名1=值1,…,字段名n=值名n [WHERE 条件表达式];
记录操作——删除记录
语法格式:DELETE FROM 表名 [WHERE 条件表达式];
语法格式:TRUNCATE [TABLE] 表名;
4.2 索引

数据库是按照数据结构来组织、存储和管理数据的仓库
为数据建立一个类似字典的音序表、图书目录一样的存储结构,这就是“索引”
其中:字段值就想目录中的标题,指针相当于页码
索引本质上是一种优化查询的数据结构,可以快速查询数据库表中的特定记录信息
索引分类:

  • 普通索引:index是MySQL的基本索引,普通索引允许字段值重复,一个数据表中可以有多个普通索引
  • 唯一性索引:unique索引对于普通索引来说有一点特别,就是唯一性索引所对应列的值必须是唯一的,但是允许为空值
  • 主键索引:primary key索引是一种特殊的唯一性索引,它不允许有空值,而且一个数据表中只能创建一个主键索引
  • 全文索引:fulltext索引,可以在char、varchar或者text类型字段上创建
  • 单列索引:只包含一个列的所有
  • 组合索引:指在表的多个字段组合上创建的索引
索引设计原则:

  • 索引并非越多越好
  • 字段的离散越高,该字段适合选作索引的关键字
  • 经常排序和分组的数据列、两个表的连接字段应该建立索引
  • 更新频繁的字段不适合常见索引,不会出现在where子句中的字段不应该创建索引
创建索引的方法有两种:
在创建表的同时创建索引
CREATE TABLE 表名(
    字段名1 数据类型 [约束条件],
    字段名2 数据类型 [约束条件],
    ……
    [其他约束条件]
    ……
[UNIQUE|FULLTEXT] INDEX [索引名](字段名[(长度)][asc|desc])
)ENGINE=存储引擎类型 DEFAULT CHARSET=字符集类型在已有表上创建索引
CREATE方法:
CREATE [UNIQUE|FULLTEXT] INDEX 索引名 ON 表名(字段名[(长度)][asc|desc]) ALTER方法:
ALTER TABLE 表名 ADD [UNIQUE|FULLTEXT] INDEX 索引名(字段名[(长度)][asc|desc])删除索引:
DROP INDEX 索引名 ON 表名索引的优点:

  • 可以大大加快数据库的检索速度
  • 可以加速表之间的连接
  • 在使用分组和排序字句进行检索时,同样可以显著减少查询中分组和排序的时间
  • 通过使用索引可以提高系统性能
索引的缺点:

  • 创建和维护索引需要耗费时间
  • 索引是需要占用物理内存的
  • 当对表中的数据进行增加、删除和修改的时候,索引也需要进行动态维护,这样就降低了数据库的维护速度
回复

使用道具 举报

2

主题

14

帖子

27

积分

新手上路

Rank: 1

积分
27
发表于 2025-6-7 15:04:05 | 显示全部楼层
非常好,顶一下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表