mysql更新写入数据_七、MySQL插入、更新与删除数据

存储在系统中的数据是数据库管理系统(DBMS)的核心,数据库被设计用来管理数据的存储、访问和维护数据的完整性。MySQL中提供丰富的数据管理语句,包括插入数据的INSERT、更新数据的UPDATE以及删除数据的DELETE语句。

7.1、插入数据

为表的所有字段插入数据

使用基本的INSERT语句插入数据,要求指定表名称和插入到新纪录中的值,其基本语法为:INSERT INTO tbl_name (column_list) VALUES (value_list)

在插入数据前,首先创建一张表:mysql> 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)

-> );

Query OK, 0 rows affected (0.03 sec)

在person表中,插入一条新记录,id值为1,name值为Green,age值为21,info值为Lawyermysql>  INSERT INTO person (id ,name, age , info)

->       VALUES (1,'Green', 21, 'Lawyer');

Query OK, 1 row affected (0.02 sec)

mysql> SELECT * FROM person;

+----+-------+-----+--------+

| id | name  | age | info   |

+----+-------+-----+--------+

|  1 | Green |  21 | Lawyer |

+----+-------+-----+--------+

1 row in set (0.00 sec)

在person表中,插入一条新记录,id值为2,name值为Suse,age值为22,info值为dancermysql>  INSERT INTO person (age ,name, id , info)

->       VALUES (22, 'Suse', 2, 'dancer');

Query OK, 1 row affected (0.02 sec)

mysql> SELECT * FROM person;

+----+-------+-----+--------+

| id | name  | age | info   |

+----+-------+-----+--------+

|  1 | Green |  21 | Lawyer |

|  2 | Suse  |  22 | dancer |

+----+-------+-----+--------+

2 rows in set (0.00 sec)

为表的指定字段插入数据

在person表中,插入一条新记录,name值为Willam,age值为20,info值为sports manmysql>  INSERT INTO person (name, age,info)

->      VALUES('Willam', 20, 'sports man');

Query OK, 1 row affected (0.02 sec)

mysql> SELECT * FROM person;

+----+--------+-----+------------+

| id | name   | age | info       |

+----+--------+-----+------------+

|  1 | Green  |  21 | Lawyer     |

|  2 | Suse   |  22 | dancer     |

|  3 | Willam |  20 | sports man |

+----+--------+-----+------------+

3 rows in set (0.00 sec)

在person表中,插入一条新记录,name值为laura,age值为25mysql>  INSERT INTO person (name, age ) VALUES ('Laura', 25);

Query OK, 1 row affected (0.01 sec)

mysql> SELECT * FROM person;

+----+--------+-----+------------+

| id | name   | age | info       |

+----+--------+-----+------------+

|  1 | Green  |  21 | Lawyer     |

|  2 | Suse   |  22 | dancer     |

|  3 | Willam |  20 | sports man |

|  4 | Laura  |  25 | NULL       |

+----+--------+-----+------------+

4 rows in set (0.00 sec)

可以发现id字段在插入数据后,没有赋值时自动增加,在这里id字段为表的主键,不能为空,紫铜会自动为字段插入自增的序列值。

同时插入多条记录

INSERT语句可以同时相数据表中插入多条记录,插入时指定多个值列表,每个值列表之间用逗号分隔开,基本语法为:INSERT INTO tbl_name (column_list)

VALUES (value_list1), (value_list2),(value_list3);

在person表中,在name、age和info字段指定插入值,同时插入3条新记录mysql>  INSERT INTO person(name, age, info)

->      VALUES ('Evans',27, 'secretary'),

->      ('Dale',22, 'cook'),

->      ('Edison',28, 'singer');

Query OK, 3 rows affected (0.02 sec)

Records: 3  Duplicates: 0  Warnings: 0

mysql> SELECT * FROM person;

+----+--------+-----+------------+

| id | name   | age | info       |

+----+--------+-----+------------+

|  1 | Green  |  21 | Lawyer     |

|  2 | Suse   |  22 | dancer     |

|  3 | Willam |  20 | sports man |

|  4 | Laura  |  25 | NULL       |

|  5 | Evans  |  27 | secretary  |

|  6 | Dale   |  22 | cook       |

|  7 | Edison |  28 | singer     |

+----+--------+-----+------------+

7 rows in set (0.00 sec)

在person表中,不指定插入列表,同时插入2条新记录mysql>  INSERT INTO person

->      VALUES (9,'Harry',21, 'magician'),

->      (NULL,'Harriet',19, 'pianist');

Query OK, 2 rows affected (0.02 sec)

Records: 2  Duplicates: 0  Warnings: 0

mysql> SELECT * FROM person;

+----+---------+-----+------------+

| id | name    | age | info       |

+----+---------+-----+------------+

|  1 | Green   |  21 | Lawyer     |

|  2 | Suse    |  22 | dancer     |

|  3 | Willam  |  20 | sports man |

|  4 | Laura   |  25 | NULL       |

|  5 | Evans   |  27 | secretary  |

|  6 | Dale    |  22 | cook       |

|  7 | Edison  |  28 | singer     |

|  9 | Harry   |  21 | magician   |

| 10 | Harriet |  19 | pianist    |

+----+---------+-----+------------+

9 rows in set (0.00 sec)

将查询结果插入数据

INSERT语句用来给数据表插入记录时,指定插入记录的列值。INSERT还可以将SELECT语句查询的结果插入到列表中,其基本语法为:INSERT INTO tbl_name1 (column_list1)

SELECT (column_list2) FROM table_name2 WHERE (condition)

从person_old表中查询所有的记录,并将其插入到person表中首先,创建一个名为person_old的数据表,其表结构与person结构相同

mysql> CREATE TABLE person_old

-> (

-> 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)

-> );

Query OK, 0 rows affected (0.11 sec)

向person_old表中添加两条记录

mysql>  INSERT INTO person_old

->      VALUES (11,'Harry',20, 'student'), (12,'Beckham',31, 'police');

Query OK, 2 rows affected (0.20 sec)

Records: 2  Duplicates: 0  Warnings: 0

mysql> SELECT * FROM person_old;

+----+---------+-----+---------+

| id | name    | age | info    |

+----+---------+-----+---------+

| 11 | Harry   |  20 | student |

| 12 | Beckham |  31 | police  |

+----+---------+-----+---------+

2 rows in set (0.00 sec)

插入数据到person表中

mysql> INSERT INTO person(id, name, age, info)

->      SELECT id, name, age, info FROM person_old;

Query OK, 2 rows affected (0.01 sec)

Records: 2  Duplicates: 0  Warnings: 0

mysql> SELECT * FROM person;

+----+---------+-----+------------+

| id | name    | age | info       |

+----+---------+-----+------------+

|  1 | Green   |  21 | Lawyer     |

|  2 | Suse    |  22 | dancer     |

|  3 | Willam  |  20 | sports man |

|  4 | Laura   |  25 | NULL       |

|  5 | Evans   |  27 | secretary  |

|  6 | Dale    |  22 | cook       |

|  7 | Edison  |  28 | singer     |

|  9 | Harry   |  21 | magician   |

| 10 | Harriet |  19 | pianist    |

| 11 | Harry   |  20 | student    |

| 12 | Beckham |  31 | police     |

+----+---------+-----+------------+

11 rows in set (0.00 sec)

7.2、更新数据

表中有数据之后,可以对数据进行更新,其基本语法为:UPDATE table_name

SET col_name1=value1,col_name2=value2,...,

WHERE where_condition

在person表中,更新id值为11的记录,将age字段值改为15,将name字段值改为LiMingmysql> UPDATE person SET age = 15, name='LiMing' WHERE id = 11;

Query OK, 1 row affected (0.02 sec)

Rows matched: 1  Changed: 1  Warnings: 0

mysql> SELECT * FROM person WHERE id=11;

+----+--------+-----+---------+

| id | name   | age | info    |

+----+--------+-----+---------+

| 11 | LiMing |  15 | student |

+----+--------+-----+---------+

1 row in set (0.00 sec)

在person表中,更新age值为19~22的记录,将info字段值都改为studentmysql> UPDATE person SET info='student'  WHERE age  BETWEEN 19 AND 22;

Query OK, 6 rows affected (0.02 sec)

Rows matched: 6  Changed: 6  Warnings: 0

mysql> SELECT * FROM person WHERE age BETWEEN 19 AND 22;

+----+---------+-----+---------+

| id | name    | age | info    |

+----+---------+-----+---------+

|  1 | Green   |  21 | student |

|  2 | Suse    |  22 | student |

|  3 | Willam  |  20 | student |

|  6 | Dale    |  22 | student |

|  9 | Harry   |  21 | student |

| 10 | Harriet |  19 | student |

+----+---------+-----+---------+

6 rows in set (0.00 sec)

7.3、删除数据

从数据表中删除数据使用DELETE语句,其基本语法为:DELETE FROMN table_name [WHERE ]

在person表中,删除id等于11的记录执行删除操作前,使用SELECT语句查看当前id=11的记录

mysql>  SELECT * FROM person WHERE id=11;

+----+--------+-----+---------+

| id | name   | age | info    |

+----+--------+-----+---------+

| 11 | LiMing |  15 | student |

+----+--------+-----+---------+

1 row in set (0.00 sec)

使用DELETE语句删除该记录

mysql>  DELETE FROM person WHERE id = 11;

Query OK, 1 row affected (0.02 sec)

语句执行完毕,查看执行结果:

mysql>  SELECT * FROM person WHERE id=11;

Empty set (0.00 sec)

在person表中,使用DELETE语句同时删除多条记录,删除age字段在19-22的记录执行删除操作前,使用SELECT语句查看当前的数据

mysql>  SELECT * FROM person WHERE age BETWEEN 19 AND 22;

+----+---------+-----+---------+

| id | name    | age | info    |

+----+---------+-----+---------+

|  1 | Green   |  21 | student |

|  2 | Suse    |  22 | student |

|  3 | Willam  |  20 | student |

|  6 | Dale    |  22 | student |

|  9 | Harry   |  21 | student |

| 10 | Harriet |  19 | student |

+----+---------+-----+---------+

6 rows in set (0.00 sec)

DELETE删除这些记录

mysql>  DELETE FROM person WHERE age BETWEEN 19 AND 22;

Query OK, 6 rows affected (0.01 sec)

查看执行结果

mysql>  SELECT * FROM person WHERE age BETWEEN 19 AND 22;

Empty set (0.00 sec)

删除person表中所有记录,SQL语句如下执行删除操作前,使用SELECT语句查看当前的数据:

mysql> SELECT * FROM person;

+----+---------+-----+-----------+

| id | name    | age | info      |

+----+---------+-----+-----------+

|  4 | Laura   |  25 | NULL      |

|  5 | Evans   |  27 | secretary |

|  7 | Edison  |  28 | singer    |

| 12 | Beckham |  31 | police    |

+----+---------+-----+-----------+

4 rows in set (0.00 sec)

执行DELETE语句删除这4条记录

mysql>  DELETE FROM person;

Query OK, 4 rows affected (0.01 sec)

查看执行结果:

mysql>  SELECT * FROM person;

Empty set (0.00 sec)

如果想删除表中的所有记录,还可以使用TRUNCATE TABLE语句,TRUNCATE将直接删除原来的表并重新创建一个表,其语法结构为TRUNCATE TABLE table_name。TRUNCATE直接删除表而不是删除记录,因此执行速度比DELETE快。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/550084.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql语句随机数_程序生成随机数与SQL语句生成随机数

随机数可以通过程序生成,也可以通过SQL语句生成。通过程序生成随机数时一般采用硬件的编号时间作为种子,这种方法在瞬间插入数据库N条数据的时候会影响随机数的效果,生成很多相邻的插入值相同。所以频繁插入时可以使用SQL语句的内置函数生成随…

BPM的四大主要类型

随着网络的发展,移动BPM、社交BPM、云端BPM将顺应市场需求,成为BPM发展的新趋势,最终成为企业即时管控有效工具。BPM将不断促进制造业信息化的转型与发展。所以很少人会否认业务流程管理(BPM)的价值,更不用说给BPM一个全面定义。根…

jquery.js把我的时间修改了为什么?_电气老手在PLC程序调试修改时的几个必备小窍门,看你知道几个?...

我们工程师在设计程序,调试程序,修改程序的时候,为了方便以后对程序的理解,最好是对程序进行注释,能够对程序进行注释也是比较好的一个习惯。为什么这么说呢?因为我们人的脑容量是有限的,或多或…

rpm命令包安装mysql_CentOS7使用rpm包安装mysql 5.7.18

说明本文写于2017-05-20,使用MySQL-5.7.18。操作系统为64位CentOS Linux release 7.2.1511 (Core),以桌面形式安装。卸载MariaDBCentOS7默认安装MariaDB而不是MySQL,而且yum服务器上也移除了MySQL相关的软件包。因为MariaDB和MySQL可能会冲突…

mysql phpmyadmin远程_phpmyadmin登录远程mysql数据库

之前只用phpmyadmin登录本地的mysql,管理另一个远程数据库的时候发现,单纯用命令行处理字符串、换行符实在是不好使,所以配置了远程登录mysql,很简单的问题结果没有搜到合适的方法,所以记录下我的配置方式。phpmyadmin…

远程创建的git仓库,第一次与本地仓库进行联动,需要强制推送。

简介 远程创建的git仓库,第一次与本地仓库进行联动,需要强制推送。 参考链接 cnblog 转载于:https://www.cnblogs.com/eat-too-much/p/11220873.html

mysql自带的卸数工具_数据库卸数必备工具下载-数据库数据导出工具(DBexport)下载v1.3官方版-西西软件下载...

DBexport是一款专业的数据库数据导出工具,支持多数据源导出,目前已测试Oracle,MySQL,SQL_SERVER无明显BUG,目前支持图片种的数据库,支持扩展功能,只要有对应的数据库jar和jdbc等信息&#xff0c…

android如何用adb shell启动应用程序

昨天研究了很久,可能由于基础比较菜吧,所以,没有搜到一个可以直接解决问题的,需要综合几个之后,问题得以解决,记下方法,为了方便自己之后遇到同样问题,也为了方便搜索同样问题的朋友…

了解mysql processlist_哪些MySQL processlist状态要引起关注

状态建议copy to tmp table执行ALTER TABLE修改表结构时 建议: 放在凌晨执行或者采用类似pt-osc工具Copying to tmp table拷贝数据到内存中的临时表,常见于GROUP BY操作时 建议: 创建适当的索引Copying to tmp table on disk临时结果集太大&a…

关于C#的构造函数

每一个类都有自己的构造函数,没有构造函数你就不能对它实例化.1.每个类在编译器编译的时候都会有默认的无参构造函数.2.如有自己的构造函数,就不会在编译时创建默认的构造函数.3.在静态类中,也是有一个构造函数的,且必须是静态无参的 转载于:https://www.cnblogs.com/boke1/p/1…

mysql数据库删除操作指令_MySQL删除数据库的命令是什么?

删除数据库的命令是:“DROP DATABASE 数据库名;”;例“drop database student;”就是删除名为student的数据库。“DROP DATABASE”语句可以用于删除数据库。使用drop 命令删除数据库drop database语句可以用于删除数据库。drop database命令格式&#xf…

C#的扩展方法

一、扩展方法必须符合以下要求 1.方法所在的类必须是静态的2.方法也必须是静态的3.方法的第一个参数必须是你要扩展的那个类型,比如你要给int扩展一个方法,那么第一个参数就必须是int。4.在第一个参数前面还需要有一个this关键字。 二、扩展方法的几点总…

mariadb与mysql的兼容_「MySQL架构」MariaDB versus MySQL: Compatibility

完全替代MySQLMariaDB版本的功能相当于一个“完全替代”的MySQL版本,但有一些限制。这意味着:MariaDB的数据文件通常是二进制的,与MySQL版本的数据文件兼容。所有的文件名和路径通常是相同的。数据和表定义文件(.frm)文件是二进制兼容的。请参阅下面的注…

mysql多表联查到新的表中_MySQL中的多表联查

多表查询:1. 笛卡尔积的形式;2. 内连接的形式:查询两个表中符合连接条件的记录;SELECT 字段名称,... FROM tbl_name1INNER JOIN tbl_name2ON 连接条件3. 外连接的形式:1).左外连接:SELECT 字段名称,... FROM tbl_name1LEFT [OUTER] JOIN tbl_name2ON 条件;//先显示左表中的全部…

Asp.net 对于服务器控件添加Client端方法

Asp.net 对于服务器控件添加Client端方法: 1):如果有OnClientClick属性的话,直接给这个属性赋值即可。OnClientClick"MyClientFunction();" 2):如果有NavigateUrl属性的话(或者其他方式的url),可…

mysql数据存储和函数_MySQL数据库——存储和函数

一、存储过程1 基本语法CREATE PROCEDURE sp_name ([proc_parameter[,...]])[characteristic ...] routine_body格式[IN|OUT|INOUT]param_name type2. IN、OUT、INOUT参数(1)带84存储过程实例1 #带多重IF的存储过程2 CREATE PROCEDURE SP_SGRADE_LEVEL(IN p_level char(Repeat语…

在Salesforce中创建Approval Process

在Salesforce中可以创建Approval Process来实现审批流程的功能,实际功能与我们常说的Workflow很相似,具体的设置步骤如下所示 1):选择对应的Object去创建对应的Approval Process 2):点击下图中的Create New…

python都有哪些包装_Python基础:21包装

“包装”在Python 编程中经常会被提到的一个术语。意思是对一个已存在的对象进行包装,可以是对一个已存在的对象,增加,删除,或者修改功能。可以包装任何类型(type)作为一个类(class)的核心成员,以使新对象的行为模仿你…

Python 运算符括号

转载于:https://www.cnblogs.com/fanweisheng/p/11236193.html

计算机二级java试题_计算机二级考试《Java》试题及答案

计算机二级考试《Java》试题及答案选择题(每小题2分,共50分)下列各题A、B、C、D、 四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应的位置上,答在试卷上不得分。(11)下列对Java语言的叙述中,错误的是()…