转载出处:

慕课网:《与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)相关推荐

  1. sql命令(四)-操作数据表中的记录

    2019独角兽企业重金招聘Python工程师标准>>> create table users (   //实验所使用的表结构 id SMALLINT UNSIGNED PRIMARY ...

  2. 【转】《与MySQL的零距离接触》第二章:数据类型与操作数据表 (2-9:MySQL记录的插入与查找)

    转载出处: 慕课网:<与MySQL的零距离接触>笔记目录https://zhangjia.tv/682.html 2-9:MySQL记录的插入与查找 一. 插入记录 插入记录语法结构 IN ...

  3. Mysql系列课程--第三章 建表 插数据

    数据库模型图 /班级表/ CREATE TABLE `class` (`c_no` int(11) NOT NULL AUTO_INCREMENT,`c_name` varchar(45) NOT N ...

  4. MySQL学习笔记——第3章 数据表的管理和表中数据操纵

    第3章 数据表的管理和表中数据操纵 3.1 MySQL数据类型 数字类型:数字类型包括整数类型和数值类型 整数类型:TINYINT.SMALLINT.MEDIUMINT.INT和BIGINT 数值类型 ...

  5. Windows PE 第四章 导入表

    第四章 导入表 导入表是PE数据组织中的一个很重要的组成部分,它是为实现代码重用而设置的.通过分析导入表数据,可以获得诸如OE文件的指令中调用了多少外来函数,以及这些外来函数都存在于哪些动态链接库里等 ...

  6. 第四章:OpenCV中的图像处理

    第四章:OpenCV中的图像处理 本章节你将学习图像的改变色彩空间.提取对象.图像的几何变换.图像的阈值.平滑图像等OpenCV图像处理的基本内容. 更多内容请关注我的GitHub库:TonyStar ...

  7. 第四章 管理交换网络中的冗余链路

    第四章 管理交换网络中的冗余链路 4.1生成树协议概述 对二层以太网来说,两个LAN间只能有一条活动着的通路,否则就会产生广播风暴.但是为了加强一个局域网的可靠性,建立冗余链路又是必要的,其中的一些通 ...

  8. mysql插入实现存在更新_mysql 记录不存在时插入 记录存在则更新的实现方法

    mysql 记录不存在时插入在 MySQL 中,插入(insert)一条记录很简单,但是一些特殊应用,在插入记录前,需要检查这条记录是否已经存在,只有当记录不存在时才执行插入操作,本文介绍的就是这个问 ...

  9. mysql中数据发生变化时判断_MySql插入记录时判断

    我们在开发数据库相关的逻辑过程中, 经常检查表中是否已经存在这样的一条记录, 如果存在则更新或者不做操作, 如果没有存在记录,则需要插入一条新的记录. 这样的逻辑固然可以通过两条sql语句完成. SE ...

最新文章

  1. 华为云HiLens Kit上手初探:一款几乎“零门槛”的AI开发套件
  2. EIgen:Matricx和vector类的定义和使用
  3. sprint计划会议
  4. TypeError: only integer scalar arrays can be converted to a scalar index
  5. 12月12日习题答案大剖析!再接再厉
  6. mybatis如何处理参数
  7. 计算机必懂的54个英文单词和缩写
  8. Spring如何加载xml文件
  9. 最新《北风网Python零基础人工智能就业教程》
  10. ins信息服务器,ins怎么登录服务器
  11. IDEA for Mac设置JVM运行参数解决运行卡顿问题
  12. Virtual Dub——一个令人爱不释手的小工具
  13. libnids中TCP/IP栈实现细节分析——TCP会话重组
  14. 软件测试的目的和意义是什么?
  15. 模具毕业设计题目推荐 / 毕业设计(论文)说明书 CAD图纸 三维模型 开题报告 任务书 实习报告 答辩 ……
  16. html设置字段只读,html怎么设置只读
  17. Windows 2003 变慢原因分析及解决
  18. 二元选择模型:Probit还是Logit?
  19. CCIE找工作指南(转自网络)
  20. 小米上市之后,雷军的下一个千亿业务在哪?

热门文章

  1. Kinect v2.0原理介绍之十三:面部帧获取
  2. 郑州计算机c语言培训机构,c语言入门学习选郑州哪家计算机专业学校
  3. 什么因素影响阿里云国际版云服务器延迟?
  4. 算法的评价标准:ROC,假阳性,mape
  5. 如何自己开发一个Android APP(3)——XML和Android
  6. yapi文档转换jmx脚本
  7. spark大数据分析:spark Struct Strreaming(21) 数据流处理
  8. win10 git bash 设置别名
  9. Win7如何部署定制的Quicklaunch图标
  10. 华硕 ROG主题 提取主题包