【转】《与MySQL的零距离接触》第四章:操作数据表中的记录 (4-2:MySQL 插入记录INSERT)
转载出处:
慕课网:《与MySQL的零距离接触》笔记目录https://zhangjia.tv/682.html
4-2:MySQL 插入记录INSERT
插入记录的语法结构:
INSERT [INTO] tbl_name [(col_name,...)] {VALUES| VALUE}
({expr | DEFAULT},...),(...),...
col_name是列名称,如果省略不写的话,代表所有的字段需要依次赋值
首先创建一个用于测试的数据表:
mysql> CREATE TABLE users(-> id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,-> username VARCHAR(20) NOT NULL,-> password VARCHAR(32) NOT NULL,-> age TINYINT UNSIGNED NOT NULL DEFAULT 10,-> sex BOOLEAN-> );
Query OK, 0 rows affected (0.01 sec)
现在我们省略col_name,则插入记录的时候需要依次为所有字段赋值,但是id字段是自动编号的
我们该如何为id字段赋值呢?只需要赋值为NULL或者DEFAULT就可以了:
mysql> INSERT users VALUES(NULL,'Tom','123',25,1);
Query OK, 1 row affected (0.00 sec)mysql> SELECT * FROM users;
+----+----------+----------+-----+------+
| id | username | password | age | sex |
+----+----------+----------+-----+------+
| 1 | Tom | 123 | 25 | 1 |
+----+----------+----------+-----+------+
1 row in set (0.00 sec)mysql> INSERT users VALUES(DEFAULT,'John','123',25,1);
Query OK, 1 row affected (0.00 sec)mysql> SELECT * FROM users;
+----+----------+----------+-----+------+
| id | username | password | age | sex |
+----+----------+----------+-----+------+
| 1 | Tom | 123 | 25 | 1 |
| 2 | John | 123 | 25 | 1 |
+----+----------+----------+-----+------+
2 rows in set (0.00 sec)
可以看到id自动编号为,其他字段比如age除了可以直接赋值外,还可以赋值表达式,比如:
mysql> INSERT users VALUES(NULL,'John','123',25-1,1);
Query OK, 1 row affected (0.01 sec)mysql> SELECT * FROM users;
+----+----------+----------+-----+------+
| id | username | password | age | sex |
+----+----------+----------+-----+------+
| 1 | Tom | 123 | 25 | 1 |
| 2 | John | 123 | 25 | 1 |
| 3 | Tom | 123 | 25 | 1 |
| 4 | John | 123 | 24 | 1 |
+----+----------+----------+-----+------+
4 rows in set (0.00 sec)
DEFAULT除了可以用于给自动编号的字段赋值外,还可以用于给设置了默认值的字段赋值:
mysql> SHOW COLUMNS FROM users;
+----------+----------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+----------------------+------+-----+---------+----------------+
| id | smallint(5) unsigned | NO | PRI | NULL | auto_increment |
| username | varchar(20) | NO | | NULL | |
| password | varchar(32) | NO | | NULL | |
| age | tinyint(3) unsigned | NO | | 10 | |
| sex | tinyint(1) | YES | | NULL | |
+----------+----------------------+------+-----+---------+----------------+
5 rows in set (0.00 sec)mysql> INSERT users VALUES(NULL,'John','123',DEFAULT,1);
Query OK, 1 row affected (0.00 sec)mysql> SELECT * FROM users;
+----+----------+----------+-----+------+
| id | username | password | age | sex |
+----+----------+----------+-----+------+
| 1 | Tom | 123 | 25 | 1 |
| 2 | John | 123 | 25 | 1 |
| 3 | Tom | 123 | 25 | 1 |
| 4 | John | 123 | 24 | 1 |
| 5 | John | 123 | 10 | 1 |
+----+----------+----------+-----+------+
5 rows in set (0.00 sec)
接下来一次性写入多条记录,只需要用,分隔即可,这里以两条记录为例:
mysql> INSERT users VALUES(DEFAULT,'Tom','123',25,1),(NULL,'Rose',md5('123'),DEFAULT,0);
Query OK, 2 rows affected (0.01 sec)
Records: 2 Duplicates: 0 Warnings: 0mysql> SELECT * FROM users;
+----+----------+----------------------------------+-----+------+
| id | username | password | age | sex |
+----+----------+----------------------------------+-----+------+
| 1 | Tom | 123 | 25 | 1 |
| 2 | John | 123 | 25 | 1 |
| 3 | Tom | 123 | 25 | 1 |
| 4 | John | 123 | 24 | 1 |
| 5 | John | 123 | 10 | 1 |
| 6 | Tom | 123 | 25 | 1 |
| 7 | Rose | 202cb962ac59075b964b07152d234b70 | 10 | 0 |
+----+----------+----------------------------------+-----+------+
7 rows in set (0.00 sec)
md5是php中用于计算的一个字符串的哈希值的方法。
【转】《与MySQL的零距离接触》第四章:操作数据表中的记录 (4-2:MySQL 插入记录INSERT)相关推荐
- sql命令(四)-操作数据表中的记录
2019独角兽企业重金招聘Python工程师标准>>> create table users ( //实验所使用的表结构 id SMALLINT UNSIGNED PRIMARY ...
- 【转】《与MySQL的零距离接触》第二章:数据类型与操作数据表 (2-9:MySQL记录的插入与查找)
转载出处: 慕课网:<与MySQL的零距离接触>笔记目录https://zhangjia.tv/682.html 2-9:MySQL记录的插入与查找 一. 插入记录 插入记录语法结构 IN ...
- Mysql系列课程--第三章 建表 插数据
数据库模型图 /班级表/ CREATE TABLE `class` (`c_no` int(11) NOT NULL AUTO_INCREMENT,`c_name` varchar(45) NOT N ...
- MySQL学习笔记——第3章 数据表的管理和表中数据操纵
第3章 数据表的管理和表中数据操纵 3.1 MySQL数据类型 数字类型:数字类型包括整数类型和数值类型 整数类型:TINYINT.SMALLINT.MEDIUMINT.INT和BIGINT 数值类型 ...
- Windows PE 第四章 导入表
第四章 导入表 导入表是PE数据组织中的一个很重要的组成部分,它是为实现代码重用而设置的.通过分析导入表数据,可以获得诸如OE文件的指令中调用了多少外来函数,以及这些外来函数都存在于哪些动态链接库里等 ...
- 第四章:OpenCV中的图像处理
第四章:OpenCV中的图像处理 本章节你将学习图像的改变色彩空间.提取对象.图像的几何变换.图像的阈值.平滑图像等OpenCV图像处理的基本内容. 更多内容请关注我的GitHub库:TonyStar ...
- 第四章 管理交换网络中的冗余链路
第四章 管理交换网络中的冗余链路 4.1生成树协议概述 对二层以太网来说,两个LAN间只能有一条活动着的通路,否则就会产生广播风暴.但是为了加强一个局域网的可靠性,建立冗余链路又是必要的,其中的一些通 ...
- mysql插入实现存在更新_mysql 记录不存在时插入 记录存在则更新的实现方法
mysql 记录不存在时插入在 MySQL 中,插入(insert)一条记录很简单,但是一些特殊应用,在插入记录前,需要检查这条记录是否已经存在,只有当记录不存在时才执行插入操作,本文介绍的就是这个问 ...
- mysql中数据发生变化时判断_MySql插入记录时判断
我们在开发数据库相关的逻辑过程中, 经常检查表中是否已经存在这样的一条记录, 如果存在则更新或者不做操作, 如果没有存在记录,则需要插入一条新的记录. 这样的逻辑固然可以通过两条sql语句完成. SE ...
最新文章
- 华为云HiLens Kit上手初探:一款几乎“零门槛”的AI开发套件
- EIgen:Matricx和vector类的定义和使用
- sprint计划会议
- TypeError: only integer scalar arrays can be converted to a scalar index
- 12月12日习题答案大剖析!再接再厉
- mybatis如何处理参数
- 计算机必懂的54个英文单词和缩写
- Spring如何加载xml文件
- 最新《北风网Python零基础人工智能就业教程》
- ins信息服务器,ins怎么登录服务器
- IDEA for Mac设置JVM运行参数解决运行卡顿问题
- Virtual Dub——一个令人爱不释手的小工具
- libnids中TCP/IP栈实现细节分析——TCP会话重组
- 软件测试的目的和意义是什么?
- 模具毕业设计题目推荐 / 毕业设计(论文)说明书 CAD图纸 三维模型 开题报告 任务书 实习报告 答辩 ……
- html设置字段只读,html怎么设置只读
- Windows 2003 变慢原因分析及解决
- 二元选择模型:Probit还是Logit?
- CCIE找工作指南(转自网络)
- 小米上市之后,雷军的下一个千亿业务在哪?