MySQL知识(十二)——数据的插入、更新和删除

本文详细介绍MySQL数据库中的数据操作,包括创建表、插入数据、更新数据和删除数据等基本操作,并通过具体实例展示如何进行这些操作。

0 样例表

  样例表person,创建语句:

CREATE TABLE person
(
  id     INT UNSIGNED NOT NULL AUTO_INCREMENT,
  name   CHAR(40) NOT NULL DEFAULT '',
  age    INT NOT NULL DEFAULT 0,
  info   CHAR(50) NULL,
  PRIMARY KEY (id)
);

1 插入数据

1.1 为表的所有字段插入数据

  语法:

INSERT INTO 表名(列名列表) VAULES(对应值列表);

  (1)指定所有字段名

mysql> INSERT INTO person(id,name,age,info)
    -> VALUES(1,'Green',21,'Lawyer');
Query OK, 1 row affected

  (2)完全不指定字段名

mysql> INSERT INTO person
    -> VALUES(2,'Suse',2,'dancer'),
    -> (3,'Mary',24,'Musician');
Query OK, 2 rows affected
Records: 2  Duplicates: 0  Warnings: 0

  (3)查看执行结果

mysql> SELECT * FROM person;
+----+-------+-----+----------+
| id | name  | age | info     |
+----+-------+-----+----------+
|  1 | Green |  21 | Lawyer   |
|  2 | Suse  |   2 | dancer   |
|  3 | Mary  |  24 | Musician |
+----+-------+-----+----------+
3 rows in set

1.2 为表的指定字段插入数据

  为表的指定字段插入数据,就是在INSERT语句中只向部分字段中插入值,而其他字段的值为表定义的默认值。

mysql> INSERT INTO person(name,age,info) VALUES('Willam',20,'sports man');
Query OK, 1 row affected

mysql> INSERT INTO person(name,age) VALUES('Laura',20);
Query OK, 1 row affected

  查看执行结果

mysql> SELECT * FROM person;
+----+--------+-----+------------+
| id | name   | age | info       |
+----+--------+-----+------------+
|  1 | Green  |  21 | Lawyer     |
|  2 | Suse   |   2 | dancer     |
|  3 | Mary   |  24 | Musician   |
|  4 | Willam |  20 | sports man |
|  5 | Laura  |  20 | NULL       |
+----+--------+-----+------------+
5 rows in set

1.3 同时插入多条数据

  语法:

INSERT INTO table_name(column_list) VALUES(value_list),(value_list2),...,(value_listn);

  例子:(等同于执行多条INSERT语句,但MySQL执行单条INSERT语句插入多行数据,比使用多条INSERT语句快。)

mysql> INSERT INTO person(name,age,info)
    -> VALUES('Evans',27,'secretary'),
    -> ('Dale',22,'singer'),
    -> ('Edison',28,'cook');
Query OK, 3 rows affected
Records: 3  Duplicates: 0  Warnings: 0
  • Records:表明插入的记录条数
  • Duplicates:表明插入时被忽略的记录,原因可能是这些记录包含了重复的主键值
  • Warnings:表明有问题的数据值,例如发生数据类型转换

1.4 将查询结果插入到表中

  INSERT可以将SELECT语句查询的结果插入到表中,语法格式:

INSERT INTO table_name1(column_list1)
SELECT(column_list2) FROM table_name2 WHERE(condition)

  例子:

mysql> SELECT * FROM person;
+----+---------+-----+------------+
| id | name    | age | info       |
+----+---------+-----+------------+
|  1 | Green   |  21 | Lawyer     |
|  2 | Suse    |   2 | dancer     |
|  3 | Mary    |  24 | Musician   |
|  4 | Willam  |  20 | sports man |
|  5 | Laura   |  20 | NULL       |
|  6 | Evans   |  27 | secretary  |
|  7 | Dale    |  22 | singer     |
|  8 | Edison  |  28 | cook       |
+----+---------+-----+------------+
8 rows in set

mysql> SELECT * FROM person_copy;
+----+---------+-----+----------+
| id | name    | age | info     |
+----+---------+-----+----------+
|  9 | Harry   |  21 | magician |
| 10 | Harriet |  19 | pianist  |
+----+---------+-----+----------+
2 rows in set

mysql> INSERT INTO person
    -> SELECT * FROM person_copy;
Query OK, 2 rows affected
Records: 2  Duplicates: 0  Warnings: 0

mysql> SELECT * FROM person;
+----+---------+-----+------------+
| id | name    | age | info       |
+----+---------+-----+------------+
|  1 | Green   |  21 | Lawyer     |
|  2 | Suse    |   2 | dancer     |
|  3 | Mary    |  24 | Musician   |
|  4 | Willam  |  20 | sports man |
|  5 | Laura   |  20 | NULL       |
|  6 | Evans   |  27 | secretary  |
|  7 | Dale    |  22 | singer     |
|  8 | Edison  |  28 | cook       |
|  9 | Harry   |  21 | magician   |
| 10 | Harriet |  19 | pianist    |
+----+---------+-----+------------+
10 rows in set

2 更新数据

  使用UPDATE语句更新表中的记录,可以更新特定的行或者同时更新所有的行。语法:

UPDATE table_name
SET column_name1 = value1,column_name2=value2,...,column_namen=valuen
WHERE(condition);

  例子:

mysql> SELECT * FROM person WHERE id=10;
+----+---------+-----+---------+
| id | name    | age | info    |
+----+---------+-----+---------+
| 10 | Harriet |  19 | pianist |
+----+---------+-----+---------+
1 row in set

mysql> UPDATE person SET age=15,name='LiMing' WHERE id=10;
Query OK, 1 row affected
Rows matched: 1  Changed: 1  Warnings: 0

mysql> SELECT * FROM person WHERE id=10;
+----+--------+-----+---------+
| id | name   | age | info    |
+----+--------+-----+---------+
| 10 | LiMing |  15 | pianist |
+----+--------+-----+---------+
1 row in set

  更新多行数据:

mysql> SELECT * FROM person WHERE age BETWEEN 19 AND 22;
+----+--------+-----+------------+
| id | name   | age | info       |
+----+--------+-----+------------+
|  1 | Green  |  21 | Lawyer     |
|  4 | Willam |  20 | sports man |
|  5 | Laura  |  20 | NULL       |
|  7 | Dale   |  22 | singer     |
|  9 | Harry  |  21 | magician   |
+----+--------+-----+------------+
5 rows in set

mysql> UPDATE person SET info='student' WHERE age BETWEEN 19 AND 22;
Query OK, 5 rows affected
Rows matched: 5  Changed: 5  Warnings: 0

mysql> SELECT * FROM person WHERE age BETWEEN 19 AND 22;
+----+--------+-----+---------+
| id | name   | age | info    |
+----+--------+-----+---------+
|  1 | Green  |  21 | student |
|  4 | Willam |  20 | student |
|  5 | Laura  |  20 | student |
|  7 | Dale   |  22 | student |
|  9 | Harry  |  21 | student |
+----+--------+-----+---------+
5 rows in set

3 删除数据

  使用DELETE语句删除数据,DELETE语句允许WHERE子句指定删除条件。语法:

DELETE FROM table_name [WHERE<condition>];

  如果没有WHERE子句,DELETE语句将删除表中所有记录。

mysql> SELECT * FROM person WHERE id=10;
+----+--------+-----+---------+
| id | name   | age | info    |
+----+--------+-----+---------+
| 10 | LiMing |  15 | pianist |
+----+--------+-----+---------+
1 row in set

mysql> DELETE FROM person WHERE id=10;
Query OK, 1 row affected

mysql> SELECT * FROM person WHERE id=10;
Empty set

4 说明

阅读《MySQL5.5 从零开始学》笔记记录。

简介 编辑 定义1 数据库 数据库(11张) 数据库,简单来说是本身可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、截取、更新删除等操作。 数据库指的是以一定方式储存在一起、能为多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。 在经济管理的日常工作中,常常需要把某些相关的数据放进这样的“仓库”,并根据管理的需要进行相应的处理。例如,企业或事业单位的人事部门常常要把本单位职工的基本情况(职工号、姓名、年龄、性别、籍贯、工资、简历等)存放在表中,这张表就可以看成是一个数据库。有了这个"数据仓库"我们就可以根据需要随时查询某职工的基本情况,也可以查询工资在某个范围内的职工人数等等。这些工作如果都能在计算机上自动进行,那我们的人事管理就可以达到极高的水平。此外,在财务管理、仓库管理、生产管理中也需要建立众多的这种"数据库",使其可以利用计算机实现财务、仓库、生产的自动化管理。 定义2 数据库是依照某种数据模型织起来并存放二级存储器中的数据集合。这种数据集合具有如下特点:尽可能不重复,以最优方式为某个特定织的多种应用服务,其数据结构独立于使用它的应用程序,对数据的增、删、改检索由统一软件进行管理控制。从发展的历史看,数据库数据管理的高级阶段,它是由文件管理系统发展起来的。 数据整体 数据库是一个单位或是一个应用领域的通用数据处理系统,它存储的是属于企业事业部门、团体个人的有关数据的集合。数据库中的数据是从全局观点出发建立的,按一定的数据模型进行织、描述存储。其结构基于数据间的自然联系,从而可提供一切必要的存取路径,且数据不再针对某一应用,而是面向全织,具有整体的结构化特征。 数据共享 数据库中的数据是为众多用户所共享其信息而建立的,已经摆脱了具体程序的限制制约。不同的用户可以按各自的用法使用数据库中的数据;多个用户可以同时共享数据库中的数据资源,即不同的用户可以同时存取数据库中的同一个数据数据共享性不仅满足了各用户对信息内容的要求,同时也满足了各用户之间信息通信的要求。 基本结构 数据库的基本结构分三个层次,反映了观察数据库的三种不同角度。 以内模式为框架所成的数据库叫做物理数据库;以概念模式为框架所成的数据叫概念数据库;以外模式为框架所成的数据库叫用户数据库。 ⑴物理数据层。 它是数据库的最内层,是物理存贮设备上实际存储的数据的集合。这些数据是原始数据,是用户加工的对象,由内部模式描述的指令操作处理的位串、字符成。 ⑵概念数据层。 它是数据库的中间一层,是数据库的整体逻辑表示。指出了每个数据的逻辑定义及数据间的逻辑联系,是存贮记录的集合。它所涉及的是数据库所有对象的逻辑关系,而不是它们的物理情况,是数据库管理员概念下的数据库。 ⑶逻辑数据层。 它是用户所看到使用的数据库,表示了一个或一些特定用户使用的数据集合,即逻辑记录的集合。 数据库不同层次之间的联系是通过映射进行转换的。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值