笔记-5:mysql数据更新
1.插入数据
1.1 插入完整的数据
# 语法格式:INSERT INTO tb_name(column_list) VALUES(value_list);
tb_name:指定要插入数据的表名。
column_list:指定要插入数据的字段。
value_list:指定每个字段对应插入的数据。
# 向表tb_student中插入一条新记录('2014210103','王玲','女','1998-02-21','安徽','汉','CS1401')。 insert into tb_student values('2014210103','王玲','女','1998-02-21','安徽','汉','CS1401');
# 向表tb_student中插入一条新记录('2013110102','赵婷婷','女','1996-11-30','天津','汉','AC1301') insert into tb_student(studentNo,studentName,sex,birthday,native,nation,classNo) values('2013110102','赵婷婷','女','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中插入两条记录('2014310107','','男','1997-10-16','吉林','朝鲜','IS1401'),('2014310108','','女','1998-01-24','河北','汉','IS1401'); insert into tb_student values ('2014310107','','男','1997-10-16','吉林','朝鲜','IS1401'),('2014310108','','女','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中已经存在一条数据:('2013110101','张晓勇','男','1997-12-11','山西','汉','AC1301'),其中该表中studentNo是主键,现向该表中再次插入一行数据:('2013110101','周旭','男','1996-10-01','湖南','汉','AC1301')。 REPLACE into tb_student_copy(studentNo,studentName,sex,birthday,native,nation,classNo) values('2013110101','周旭','男','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中学号为'2014210101'的学生姓名修改为'黄涛',籍贯修改为'湖北',民族修改为'汉'。 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语句将直接删除原来的表并重新创建一个表,而不是逐行删除表中的记录。因此执行速度更快。
转载于:https://www.cnblogs.com/Cyzhouke/p/11466367.html
笔记-5:mysql数据更新相关推荐
- 涂抹mysql 完整_涂抹mysql笔记-管理mysql服务
$ /mysql/scripts/mysql_install_db --datadir=/mysql/data --basedir=/mysql support-files/mysql.server脚 ...
- MySQL 笔记2 -- MySQL 基础
MySQL 笔记2 – MySQL 基础 MySQL 系列笔记是笔者学习.实践MySQL数据库的笔记 课程链接: MySQL 数据库基础入门教程 参考文档: MySQL 官方文档 一.MySQL 简介 ...
- 【笔记】MySQL的基础学习(二)
[笔记]MySQL的基础学习(二) MySQL 老男孩 一 视图 视图其实就是给表起个别名 1.创建视图 格式:CREATE VIEW 视图名称 AS SQL语句 CREATE VIEW v1 AS ...
- 徐无忌MySQL笔记:MySQL数据库锁有几种?实现原理是什么?
徐无忌MySQL笔记:MySQL数据库锁有几种?实现原理是什么? 完成:第一遍 1.数据库并发控制通过什么实现? 当多个事务并发方法对同一个数据进行操作 通过数据库锁实现对数据库的并发控制. 2.锁类 ...
- 【python MySQL 笔记】MySQL 查询
[python MySQL 笔记]MySQL 查询 目录 1.数据准备和基本查询 1.1. 数据准备 1.2.基本查询 2. 条件查询 2.1. 比较运算符 2.2. 逻辑运算符 2.3. 模糊查询 ...
- 牛客网SQL刷题笔记(MySQL)
牛客网SQL刷题笔记(MySQL) 此博客集合LeetCode.牛客网常见的题型及其解法,侵删 目录 牛客网SQL刷题笔记(MySQL) 类型1:查找排名第几的数据 SQL2 查找入职员工时间排名倒数 ...
- mysql数据更新c_MySQL数据更新
MySQL数据更新: 导读:该练习是本人课程学习进行整理的,若有不对,欢迎指出! 该练习没有配套的sql文件,如果需要可以看之前的文章有student表等(MySQL查询练习); 这是最后一部分练习题 ...
- Tsai笔记:MySQL学习(1)—— 基本操作
Tsai笔记:MySQL学习(1)-- 基本操作 一.连接.登录和退出MySQL服务器 连接SQL net start mysql 登陆SQL mysql -u root -p 输入密码 退出SQ ...
- 架构mysql_MySQL学习笔记之MySQL架构
MySQL 最重要.最与众不同的特性是它的存储引擎架构,这种架构的设计将查询处理及其他系统任务和数据的存储/提取相分离.这种处理和存储分离的设计可以在使用时根据性能.特性,以及其他需求来选择数据存储的 ...
- MySQL学习笔记 | 04 - MySQL数据库基本操作(增加、修改、删除、查看)
MySQL学习笔记 | 01-为什么要使用数据库 MySQL学习笔记 | 02 - MySQL在Windows下的安装.配置.服务启动/停止.用户登录.查看版本号 MySQL学习笔记 | 03 - M ...
最新文章
- C# 读写ini配置文件demo
- hadoop 2.7 java_Hadoop2.7环境搭建---Java环境变量
- Django中的cookie与session
- Java Web开发中,自定义过滤器被执行两次的原因分析及解决办法
- ubuntu16.04开机只显示桌面背景鼠标解决方法
- 通过Jinq简化数据库查询
- 点击类选择器,获取索引
- sqlserver日期函数大全
- 天刀各大服务器位置,天涯明月刀ol第十次合区详解 天刀ol第十次合区结果一览...
- 思源宋体安装过程记录
- 服务器背板电源维修,814835-B21 814832-001 DD-2901-3C-LF G9 HPE服务器电源背板
- 7分钟学会HTML网页制作
- SV中virtual作用
- 学习随笔---数据库管理系统DBMS
- 五类医学图像分类 深度学习
- 年底啦,人力成本预算怎么做?
- 计算机网络 研究生入学考试,中南大学研究生入学考试 《计算机网络》试题
- 包头钢铁职业技术学院题库计算机,计算机-包头钢铁职业技术学院.DOC
- 用Qt写一个迷宫游戏
- python houdini_【微笔记】houdini使用python创建城市教程笔记II
热门文章
- 2021-2027全球及中国运动营养和体重管理食品行业研究及十四五规划分析报告
- 如何解决遇到的The server time zone value ‘?й???????‘ is unrecognized or represents more than one time zone
- 今天,IT女神们是怎么度过的(文末送礼品)
- 数据库LATEST DETECTED DEADLOCK
- Python 唤起QQ对话框 QQ客服效果
- 点我—— ASP.NETCORE 安装CentOS
- 双耳节拍 枕头_枕头2-9-0快用完了
- 联想服务器装系统鼠标没反应,联想Thinkpad笔记本重装系统后键盘鼠标失灵如何解决...
- ngx_stream_core_module
- mysql 1308_MySQL恢复数据报ERROR 1308 : LEAVE with no matching label