首页 > 数据库 >MySQL——添加数据(二)为表的指定字段添加数据

MySQL——添加数据(二)为表的指定字段添加数据

时间:2024-08-10 10:53:33浏览次数:9  
标签:为表 name grade 字段 添加 student MySQL NULL

        为表的指定字段添加数据,就是在 INSERT语句中只向部分字段中添加,而其他字段的值为表定义时的默认值。为表的指定字段添加数据的基本语法格式如下所示:

INSERT INTO 表名 (字段 1,字段 2..)
       VALUES (值1,值 2..)

        在上述语法格式中,“字段1,字段 2,…”表示数据表中的字段名称,此次只指定表中部分字段的名称。“值 1,值 2,…”表示指定字段的值,每个值的顺序、类型必须与对应的字段相匹配。
        例如,向 student 表中添加一条新记录,记录中 id 字段的值为 4,name 字段的值为“zhaoliu”,grade 字段不指定值,SQL语句如下所示:

mysql> INSERT INTO student (id,name) VALUES(4,'zhaoliu');
Query OK, 1 row affected (0.00 sec)

        上述 SQL语句执行成功后,会向 student 表中添加一条新的数据。为了验证数据是否添加成功,使用 SELECT 语句查看 student 表,结果如下所示:

mysql> select * from student;
+------+----------+-------+
| id   | name     | grade |
+------+----------+-------+
|    1 | zhangsan |  98.5 |
|    2 | lisi     |    95 |
|    3 | wangwu   |  61.5 |
|    4 | zhaoliu  |  NULL |
+------+----------+-------+
4 rows in set (0.00 sec)

        从查询结果可以看出,新记录添加成功,但是 grade 字段的值为 NULL。这足因为在添加新记录时,如果没有为某个字段赋值,系统会自动为该字段添加默认值。通过 SQL 语句 “SHOW CREATE TABLE student\G ”可以查看 student 表的详细结构,SQL 执行结果如下所示:

mysql> show create table student \G
*************************** 1. row ***************************
       Table: student
Create Table: CREATE TABLE `student` (
  `id` int DEFAULT NULL,
  `name` varchar(20) NOT NULL,
  `grade` float DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
1 row in set (0.01 sec)

        从表的详细结构中可以看出,grade字段的默认值为 NULL。本例中没有为 grade字段赋值,系统会自动为其添加默认值 NULL。

        需要注意的是,如果某个字段在定义时添加了非空约束,但没有添加 default 约束那么插人新记录时就必须为该字段赋值,否则数据库系统会提示错误。

        例如,向 student 表中添加一条新记录,记录中 id 字段的值为 5,grade 字段的值为 97,name 字段不指定值,SQL语句如下所示:

mysql> INSERT INTO student(id,grade) VALUES (5,97);
ERROR 1364 (HY000): Field 'name' doesn't have a default value

        从执行结果可以看出,执行 INSERT 语句时发生了错误,发生错误的原因是 name 字段没有指定默认值,且添加了非 NULL约束。接下来,通过查询语句查看数据是否成功添加,执行结果如下所示:

mysql> select * from student;
+------+----------+-------+
| id   | name     | grade |
+------+----------+-------+
|    1 | zhangsan |  98.5 |
|    2 | lisi     |    95 |
|    3 | wangwu   |  61.5 |
|    4 | zhaoliu  |  NULL |
+------+----------+-------+
4 rows in set (0.00 sec)

        通过查询结果可以看到,student 表中仍然只有4条记录,新记录没有添加成功。为指定字段添加数据时,指定字段也无须与其在表中定义的顺序一致,它们只要与VALUES 中值的顺序一致即可。

        例如,向 student 表中添加一条新记录,记录中 name 字段的值为 'sunbin',grade字段的值为 55,id 字段不指定值,SQL语句如下所示:

mysql> INSERT INTO student (grade,name) VALUES(55,'sunbin');
Query OK, 1 row affected (0.01 sec)

        执行 INSERT 语句向 student 表中添加数据,然后通过查询语句查看数据是否成功添加,执行结果如下所示:

mysql> select * from student;
+------+----------+-------+
| id   | name     | grade |
+------+----------+-------+
|    1 | zhangsan |  98.5 |
|    2 | lisi     |    95 |
|    3 | wangwu   |  61.5 |
|    4 | zhaoliu  |  NULL |
| NULL | sunbin   |    55 |
+------+----------+-------+
5 rows in set (0.00 sec)

        从查询结果可以看出,新记录添加成功。

  • INSERT 语句的其他写法

        INSERT语句还有一种语法格式,可以为表中指定的字段或者全部字段添加数据其格式如下所示:

INSERT INTO 表名
SET 字段名 1=值 1[,字段名 2=值 2,...]

        在上面的语法格式中,“字段名 1”“字段名 2” 是指需要添加数据的字段名称,“值1”“值 2”表示添加的数据。如果在 SET 关键字后面指定了多个“字段名二值”对,每对之间使用逗号分隔,最后一个 “字段名一值” 对之后不需要逗号。接下来通过一个案例来演示使用这种语法格式向 student 表中添加记录。

        例如,向student表中添加一条新记录,该条记录中id 字段的值为5,name 字段的值为 'boya’,grade 字段的值为 99,INSERT语句如下所示:

mysql> INSERT INTO student
    -> SET id=5,name='boya',grade=99;
Query OK, 1 row affected (0.01 sec)

        从执行结果可以看到 INSERT语句成功执行,接下来通过查询语句查看数据是否成功添加,执行结果如下所示:

mysql> select * from student;
+------+----------+-------+
| id   | name     | grade |
+------+----------+-------+
|    1 | zhangsan |  98.5 |
|    2 | lisi     |    95 |
|    3 | wangwu   |  61.5 |
|    4 | zhaoliu  |  NULL |
| NULL | sunbin   |    55 |
|    5 | boya     |    99 |
+------+----------+-------+
6 rows in set (0.00 sec)

        从查询结果可以看出,student表中新记录添加成功。

标签:为表,name,grade,字段,添加,student,MySQL,NULL
From: https://blog.csdn.net/W_Fe5/article/details/141087207

相关文章

  • MySQL--读写分离与分布式存储
    前言:本博客仅作记录学习使用,部分图片出自网络,如有侵犯您的权益,请联系删除一、读写分离1、什么是读写分离在数据库集群架构中,让主库负责处理写入操作,而从库只负责处理select查询,让两者分工明确达到提高数据库整体读写性能。当然,主数据库另外一个功能就是负责将数据变更同......
  • MySQL--主从复制
    前言:本博客仅作记录学习使用,部分图片出自网络,如有侵犯您的权益,请联系删除一、什么是主从复制1、定义主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库;主数据库一般是准实时的业务数据库。2、作用做数据的热备,作为后备数据库,主数据库服务器故障后,可切......
  • mysql+vsftpd 实现FTP的虚拟用户
    mysql+vsftpd 实现FTP的虚拟用户1)安装相关软件包下载mysqlpam验证的软件包wgethttp://mirrors.sohu.com/fedora-epel/6Server/x86_64/pam_mysql-0.7-0.12.rc1.el6.x86_64.rpmhttp://mirrors.sohu.com/fedora-epel/6Server/x86_64/此网站是RHEL6.x的epel相关的软件包的......
  • linux下的mysql语句命令大全
    1.linux下启动mysql的命令:mysqladminstart/ect/init.d/mysqlstart(前面为mysql的安装路径)2.linux下重启mysql的命令:mysqladminrestart/ect/init.d/mysqlrestart(前面为mysql的安装路径)3.linux下关闭mysql的命令:mysqladmin-uroot-p......
  • Linux下修改Mysql的用户(root)的密码
    修改的用户都以root为列。一、拥有原来的myql的root的密码;  方法一:在mysql系统外,使用mysqladmin#mysqladmin-uroot-ppassword"test123"Enterpassword:【输入原来的密码】 方法二:通过登录mysql系统,#mysql-uroot-pEnterpassword:【输入原来的密码】mys......
  • 添加倒角和圆角容易导致装配体中几何关系丢失,需要怎么修改呢?进入报错的地方重新添加几
    问题描述:添加倒角和圆角容易导致装配体中几何关系丢失,需要怎么修改呢?进入报错的地方重新添加几何关系即可。问题解答:在SolidWorks中,当你对装配体中的零件添加倒角或圆角时,确实有可能导致原本的几何关系(如配合关系)丢失或报错。出现这种情况时,以下是处理的方法:1.检查报错信......
  • 0001初识MySQL
    ##内容参考网课##笔记整理一,数据库基础知识1.数据库概念英文名称:Database,即存储数据的仓库;专业解释为存储在计算机磁盘上的有组织,可供享的大量数据的集合 类型关系数据库与非关系数据库两类,前者包含MySQL,Oracle,SQL,Server,SQLite等,后者包含Redis,MongoDB等数据库管理系......
  • 帝国cms批量添加文章怎么设置
    帝国CMS批量添加文章的设置方法批量添加文章是帝国CMS中一项实用的功能,可以大幅提升内容管理效率。以下是如何设置批量添加文章:1.创建批量添加栏目进入帝国CMS后台,点击“栏目管理”。创建一个新的栏目,并将“模型”设置为“文章”。在“批量添加”选项卡下,选中“允许批量......
  • MySQL(3)--SQL函数
    MySQL函数数字函数CEIL(x)/CEILING(x)向上取整selectceil(column_name)fromtable_name;FLOOR(x)向下取整selectfloor(column_name)fromtable_name;POW(x,y)/POWER(x,y)返回x的y次方selectname,age,POW(age,2)fromstudents;RAND()返回0到1的......
  • 基于flask+vue框架的基于MySQL的房屋中介系统[开题+论文+程序]-计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着城市化进程的加速和房地产市场的蓬勃发展,房屋中介行业作为连接房东与租客、买家的桥梁,其重要性日益凸显。然而,传统房屋中介管理方式多......