程序员书籍笔记 程序员书籍笔记
  • JavaScript
  • HTML/CSS
  • PHP
  • Python
  • Go
  • 数据库
  • 容器
  • 微服务
  • 消息队列
  • 搜索引擎
  • 大数据
  • 鸟哥Linux私房菜
其他
  • 大数据
  • 深度学习
APP下载 (opens new window)
GitHub (opens new window)
  • JavaScript
  • HTML/CSS
  • PHP
  • Python
  • Go
  • 数据库
  • 容器
  • 微服务
  • 消息队列
  • 搜索引擎
  • 大数据
  • 鸟哥Linux私房菜
其他
  • 大数据
  • 深度学习
APP下载 (opens new window)
GitHub (opens new window)
  • 数据库

    • MySQL必知必会

      • 数据检索、排序、过滤
      • 数据处理、汇总、分组
      • 子查询、连表、组合
      • 全文本搜索、插入
      • 更新、删除、表操作
        • 更新和删除数据
          • 更新数据
          • 删除数据
        • 创建和操纵表
          • 创建表
          • 更新表
          • 删除表
          • 重命名表
      • 视图、存储过程、游标
      • 触发器、事务
      • 全球化、安全、维护
    • MongoDB权威指南

  • 容器

  • 微服务

  • 消息队列

  • 搜索引擎

  • 大数据

  • 框架和软件
  • 数据库
  • MySQL必知必会
小游
2021-05-07

更新、删除、表操作

# 更新和删除数据

# 更新数据

update语句使用非常简单,只需要使用SET命令就可以设置值了

UPDATE grade_info SET grade = 100 WHERE stu_no = 100
1

如果更新某条数据时出现错误,我们想忽略这个错误可以使用 IGNORE

UPDATE IGNORE grade_info SET grade = 100 WHERE stu_no = 100
1

# 删除数据

DELETE FROM grade_info WHERE stu_no = 100
1

# 创建和操纵表

# 创建表

CREATE TABLE info
(
	id INT NOT NULL,
	stu_name VARCHAR(10) NULL,
	stu_sex CHAR(1) NULL,
	PRIMARY KEY (id)
) ENGINE = INNODB
1
2
3
4
5
6
7

image-20210509175745408

表的主键可以在创建表时用 PRIMARY KEY关键字指定。如果你仅想在一个表不存在时创建它,应该在表名后给出IF NOT EXISTS。

# 空值

NULL值就是没有值或缺值。允许NULL值的列也允许在 插入行时不给出该列的值。不允许NULL值的列不接受该列没有值的行, 换句话说,在插入或更新行时,该列必须有值。其实我们新建表的时候可以不指定NULL。

CREATE TABLE info
(
	id INT NOT NULL,
	stu_name VARCHAR(10) NULL,
	stu_sex CHAR(1),
	PRIMARY KEY (id)
) ENGINE = INNODB
1
2
3
4
5
6
7

不指定情况下,stu_sex默认为空

# 主键

主键值必须唯一。即,表中的每个行必须具有唯一的主 键值。如果主键使用单个列,则它的值必须唯一。如果使用多个列,则 这些列的组合值必须唯一。我们其实可以设置多个列为主键:

CREATE TABLE info
(
	id INT NOT NULL,
	stu_name VARCHAR(10) NOT NULL,
	stu_sex CHAR(1),
	PRIMARY KEY (id,stu_name)
) ENGINE = INNODB
1
2
3
4
5
6
7

image-20210509180339170

# 使用 AUTO_INCREMENT

AUTO_INCREMENT相当于自动增加。每个表只允许有一个,而且必须要被索引

CREATE TABLE info
(
	id INT NOT NULL AUTO_INCREMENT,
	stu_name VARCHAR(10) NOT NULL,
	stu_sex CHAR(1),
	PRIMARY KEY (id,stu_name)
) ENGINE = INNODB
1
2
3
4
5
6
7

# 指定默认值

使用 DEFAULT 来指定默认值

CREATE TABLE info
(
	id INT NOT NULL AUTO_INCREMENT,
	stu_name VARCHAR(10) NOT NULL,
	stu_sex CHAR(1) DEFAULT '男',
	PRIMARY KEY (id,stu_name)
) ENGINE = INNODB
1
2
3
4
5
6
7

# 引擎类型

与其他DBMS一样,MySQL有一个具体管理和处理数据的内部引擎。 在你使用CREATE TABLE语句时,该引擎具体创建表,而在你使用SELECT 语句或进行其他数据库处理时,该引擎在内部处理你的请求。多数时候, 此引擎都隐藏在DBMS内,不需要过多关注它

MySQL有下面这三种引擎

  • InnoDB是一个可靠的事务处理引擎(参见第26章),它不支持全文 本搜索;
  • MEMORY在功能等同于MyISAM,但由于数据存储在内存(不是磁盘) 中,速度很快(特别适合于临时表);
  • MyISAM是一个性能极高的引擎,它支持全文本搜索(参见第18章), 但不支持事务处理。

# 更新表

# 添加列

使用 ALTER TABLE 语句来更新表。比如我们想添加一列 phone

ALTER TABLE info ADD phone CHAR(20)
1

image-20210509203825412

# 删除列

我们删除刚才添加那一行

ALTER TABLE info DROP COLUMN phone
1

image-20210509203941900

# 定义外键

ALTER 更常用的用途是定义外键,比如下面这个:

image-20210509204034899

# 删除表

删除信息表使用下面这个语句:

DROP TABLE info
1

# 重命名表

我们把 stu_info 改成 info

RENAME TABLE stu_info to info
1

当然也可以命名多个

RENAME TABLE stu_info to info,grade_info TO grade
1
编辑 (opens new window)
上次更新: 2021/05/11, 19:39:39
全文本搜索、插入
视图、存储过程、游标

← 全文本搜索、插入 视图、存储过程、游标→

Theme by Vdoing | Copyright © 2021-2021 小游
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式