笔记-5:mysql数据更新
1.插入数据
1.1 插入完整的数据
# 语法格式:
INSERT INTO tb_name(column_list) VALUES(value_list);
tb_name:指定要插入数据的表名。
column_list:指定要插入数据的字段。
value_list:指定每个字段对应插入的数据。
# 向表tb_student中插入一条新记录('','王玲','女','1998-02-21','安徽','汉','CS1401')。
insert into tb_student values('','王玲','女','1998-02-21','安徽','汉','CS1401');
# 向表tb_student中插入一条新记录('','赵婷婷','女','1996-11-30','天津','汉','AC1301')
insert into tb_student(studentNo,studentName,sex,birthday,native,nation,classNo) values('','赵婷婷','女','1996-11-30','天津','汉','AC1301');
1.2 指定字段插入数据记录
# 向数据库db_school的表tb_student中插入一条新记录,学号为"2014310103",姓名为"孙颖",性别为"男",民族为"傣",班号为"IS1401"。
insert into tb_student(studentNo,studentName,sex,nation,classNo) values("2014310103","孙颖","男","傣","IS1401");
字段birthday和native没有插入数据,如果定义默认值,则自动插入默认值。
如果没有默认值,但是允许为空值,则系统自动为该自动插入空值NULL。
1.3 同时插入多条数据记录
INSERT语句可以同时向数据表中插入多条记录,插入时只需指定多个值列表。每个值列表之间用逗号隔开。
# 基本语法格式:
INSERT INTO tb_name(column_list) VALUES(value_list1),(value_list2),....
# 在表tb_student中插入三条新记录:学号为"2014310104",姓名为"陈卓卓",性别为"女",学号为"2014310105",姓名为"马丽",性别为"女",学号为"2014310106",姓名为"许红",性别为"男"。
insert into tb_student(studentNo,studentName,sex) value("2014310104","陈卓卓","女"),("2014310105","马丽","女"),("2014310106","许红","男");
返回结果:
Records:表示成功插入的记录数。
Duplicate:表示插入时被忽略的记录。
# 不指定插入字段列表,向数据库db_school的表tb_student中插入两条记录('','','男','1997-10-16','吉林','朝鲜','IS1401'),('','','女','1998-01-24','河北','汉','IS1401');
insert into tb_student values ('','','男','1997-10-16','吉林','朝鲜','IS1401'),('','','女','1998-01-24','河北','汉','IS1401');
1.4 插入查询结果
INSERT语句用来给数据表插入记录时,不仅可以指定插入记录的值列表,还可以将select语句查询的结果插入到列表中。
# 语法格式:
INSERT INTO tb_name1(column_list1)
SELECT column_list2 from tb_name2 where (condition);
tb_name1:指定插入数据的表名。
tb_name2:指定要查询的数据来源表。
column_list1:指定待插入表中待插入数据的字段列表。
column_list2:指定数据来源表的查询字段列表。
condition:指定select语句的查询条件。
注:column_list2查询字段必须和column_list列表中的字段个数相同,且数据类型相匹配。
# 为表tb_student制作一个备份表tb_student_copy,两个表结构完全一致,现使用insert---select语句将表tb_student中的数据备份到表tb_student_copy中。
# 创建备份表:tb_student_copy
create table tb_student_copy(
studentNo char(10),
studentName varchar(20) not null,
sex char(2) not null,
birthday date,
native varchar(20),
nation varchar(10),
classNo char(6),
CONSTRAINT PK_student primary key (studentNo)
);
# 插入数据:
insert into tb_student_copy (studentNo,studentName,sex,birthday,native,nation,classNo) select studentNo,studentName,sex,birthday,native,nation,classNo from tb_student;
1.5 使用REPLACE语句插入表数据
若一个待插入的表中存在有primary key或UNIQUE约束,而待插入的数据行中包含有与待插入表的已有数据行中相同的primary key或UNIQUE列值,那么insert语句将无法插入此行。此时,可以使用replace语句来实现。使用replace语句可以在插入数据之前将表中与待插入的新记录相冲突的旧记录删除。从而保证新记录能够正常插入。
# 基本语法格式:
REPLACE INTO tb_name(column_list) VALUES(value_list);
# 当前表tb_student_copy中已经存在一条数据:('','张晓勇','男','1997-12-11','山西','汉','AC1301'),其中该表中studentNo是主键,现向该表中再次插入一行数据:('','周旭','男','1996-10-01','湖南','汉','AC1301')。
REPLACE into tb_student_copy(studentNo,studentName,sex,birthday,native,nation,classNo) values('','周旭','男','1996-10-01','湖南','汉','AC1301');
2.修改数据
# 语法格式:
UPDATE tb_name
SET column1=value1,column2=value2....
[where <conditions>];
set:指定表中要修改的字段名及列值。
' column1,column2....':指定修改的字段名称。
'value1,value2...':指定字段修改后的值。
where:限制表中修改的行,如果不指定where,则修改表中所有的数据行。
2.1 修改特定数据记录
# 将表tb_student中学号为''的学生姓名修改为'黄涛',籍贯修改为'湖北',民族修改为'汉'。
update tb_student set studentName='黄涛',native='湖北',nation='汉' where studentNo=2014210101;
2.2 修改所有数据记录
# 成绩表tb_score中所有学生的成绩提高5%
update tb_score set score=score*1.05;
2.3 带子查询的修改
在update语句中where子句中也可以嵌套子查询,用以构造修改的条件。如果待修改数据的表与设置修改条件的表不相同,需要用子查询来构造修改的条件。
# 将选修'程序设计'这门课程的学生成绩置0
update tb_score set score=0 where courseNo=(select courseNo from tb_course where courseName='程序设计');
3.删除数据
# 语法格式:
DELETE FROM tb_name [WHERE <conditions>];
tb_name:指定要删除数据的表名。
where:指定删除提交,如果不指定,delete语句将删除表中所有的记录。
3.1 删除特定数据
# 删除表tb_student中姓名为'许红'的学生信息。
delete from tb_student where studentName='许红';
3.2 带子查询的删除
# 将'程序设计'这门课程的所有选课记录删除
delete from tb_score where courseNo=(select courseNo from tb_course where courseName='程序设计');
3.3 删除所有数据
# 删除所有学生
delete from tb_student;
truncate tb_student_copy; # truncate语句将直接删除原来的表并重新创建一个表,而不是逐行删除表中的记录。因此执行速度更快。
笔记-5:mysql数据更新的更多相关文章
- Spring 笔记 -06- 从 MySQL 建库到 登录验证数据库信息(maven)
Spring 笔记 -06- 从 MySQL 建库到 登录验证数据库信息(maven) 本篇和 Spring 没有什么关系,只是学习 Spring,必备一些知识,所以放在这里了. 本篇内容: (1)M ...
- SQLMAP学习笔记2 Mysql数据库注入
SQLMAP学习笔记2 Mysql数据库注入 注入流程 (如果网站需要登录,就要用到cookie信息,通过F12开发者工具获取cookie信息) sqlmap -u "URL" - ...
- ref:学习笔记 UpdateXml() MYSQL显错注入
ref:https://www.cnblogs.com/MiWhite/p/6228491.html 学习笔记 UpdateXml() MYSQL显错注入 在学习之前,需要先了解 UpdateXml( ...
- 【笔记】MySQL学习之索引
[笔记]MySQL学习之索引 一 索引简单介绍 索引,是数据库中专门用于帮助用户快速查询数据的一种数据结构.类似于字典中的目录,查找字典内容时可以根据目录查找到数据的存放位置,然后直接获取即可. 普通 ...
- 【笔记】MySQL的基础学习(二)
[笔记]MySQL的基础学习(二) MySQL 老男孩 一 视图 视图其实就是给表起个别名 1.创建视图 格式:CREATE VIEW 视图名称 AS SQL语句 CREATE VIEW v1 AS ...
- 【笔记】MySQL的基础学习
[笔记]MySQL的基础学习 老男孩 MySQL 一 安装与配置 1 下载安装 官网:http://dev.mysql.com/downloads/mysql/ 下载相应版本的压缩包 解压压缩包至任 ...
- (1.3)学习笔记之mysql体系结构(C/S整体架构、内存结构、物理存储结构、逻辑结构)
目录 1.学习笔记之mysql体系结构(C/S架构) 2.mysql整体架构 3.存储引擎 4.sql语句处理--SQL层(内存层) 5.服务器内存结构 6.mysql如何使用磁盘空间 7.mysql ...
- MySQL数据更新
MySQL数据更新: 导读: 该练习是本人课程学习进行整理的,若有不对,欢迎指出! 该练习没有配套的sql文件,如果需要可以看之前的文章有student表等(MySQL查询练习); 这是最后一部分练习 ...
- 【MySQL笔记】mysql来源安装/配置步骤和支持中国gbk/gb2312编码配置
不久的学习笔记.分享.我想有很大的帮助谁刚开始学习其他人的 备注:该票据于mysql-5.1.73版本号例如 1. mysql源代码编译/安装步骤 1) 官网下载mysql源代码并解压 2) cd至源 ...
随机推荐
- Ubuntu系统下安装完成tomcat进入管理页面
首先先启动tomcat cd /usr/local/tomcat8. ./bin/startup.sh 然后再打开浏览器 在地址栏中输入 http:/localhost:
- elasticsearch bootstrap.memory_lock
检查bootstrap.memory_lock设置是否生效 get http://10.127.0.1:9200/_nodes?filter_path=**.mlockall 响应: { " ...
- netcore 发布到IIS上常见错误
1 出现AspNetCoreModuleV2错误 报错原因: 你的IIS服务器上的.net core 运行时不是最新的,导致AspNetCoreModuleV2模块缺失或者报错,意思需要你更新了! 2 ...
- 全局设置页面颜色 返回按钮样式 iOS
思路 1.建个UIViewController的分类 2.hook方法viewDidLoad(Aspects是三方库 可以不用) 3.看下面蓝色部分代码 #import "UIViewCon ...
- known_hosts有什么用?
一.问题描述 当我连接我的服务器的时候,返回信息如下 二.问题分析 返回的信息是什么意思? IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! ...
- uiautomator代码例子--java
在androidtest下创建文件Ui2Test.java package com.example.myapplication; import android.app.Instrumentation; ...
- 使用java写js中类似setTimeout的代码
javascript目前已经是一门相当主流的编程语言了,它的异步IO特定项目其他编程语言来说,大大减少了cpu在线程切换方面的速度.实现了单线程高并发的奇迹.而java作为老牌编程语言,在很多的项目中 ...
- Tomcat重启Shell脚本
--测试通过 vim restart_tomcat.sh#!/bin/bash# Filename: restart_tomcat.sh# Description: Restart tomcat# D ...
- 【420】链表实现Quack
quack.h // quack.h: an interface definition for a queue/stack #include <stdio.h> #include < ...
- python根据数组数据绘图
转载自网络,版权归原作者所有 hello3.txt文件内部数据如下 ......7,2,6,-12,-10,-7,-1,2,9,...... python脚本 import numpy as np i ...