一、 表记录的插入

1.使用insert语句插入新纪录

Insert into表名[(字段列表)] values(列表值)

例1. 向表的所有字段中插入数据

向choose数据库的teacher表的所有字段插入三条如下数据

use choose;

insert into teacher values(‘001’,’张老师’,’11000000000’);

insert into teacher values(‘002,’李老师’,’11000000000’);

insert into teacher values(‘003’,’王老师’,’11000000000’);

查询:

select * from teacher;

例2.在指定的字段插入数据

向choose数据库的classes表的班级名字段以及院系字段插入以下三条数据

use choose;

insert into classes(class_no,class_name,department_name) values(null,’2012自动化1班’,’机电工程’);

insert into classes(class_no,class_name,department_name) values(null,’2012自动化2班’,’机电工程’);

insert into classes(class_no,class_name,department_name) values(null,’2012自动化3班’,’机电工程’);

select * from classes;

例3.在insert语句中使用默认值

向choose数据库的course表中插入以下信息,然后查询course表的所有记录

use choose;

insert into course values(null,’java语言程序设计’,default,’暂无’,’已审核’,’001’);

insert into course values(null,’mysql数据库’,150,’暂无’,’已审核’,’002’);

insert into course values(null,’c语言程序设计’,230,’暂无’,’已审核’,’003’);

2.更新操作与字符集

例.

将character_set_client的字符集设置为latin1,然后使用insert语句插入一条教师信息,接着查询教师表中的所有记录。

use choose;

set character_set_client=latin1;

insert into classes values(null,’2010计算机应用1班’,’信息工程’);

select * from classes;

3.关于自增型字段

例.

首先使用delect语句删除classes表中“class_no=4”的乱码班级信息,接着查询该表的所有记录,然后再向classes表插入刚刚删除的班级信息,再次查询该表的所有记录

use choose;

delete from classes where class_no=4;

select *from classes;

insert into classes values(null,’2010计算机应用1班’,’信息工程’);

select *from classes;

4.批量插入多条记录

使用insert语句可以一次性地向表中批量插入多条记录

Insert into 表名[(字段列表)] values

(值列表1),

(值列表2),

(值列表n);

例.

使用下面的SQL语句向学生student表中插入以下信息,然后查询该表的所有记录

use choose;

insert into student values

(‘2012001’,’张三’,’15000000000’,1),

(‘2012002’,’李四’,’16000000000’,1),

(‘2012003’,’王五’,’17000000000’,3),

(‘2012004’,’马六’,’18000000000’,2),

(‘2012005’,’田七’,’19000000000’,2);

Select * from student;

5.使用insert…select插入结果集

Insert into 目标名 [(字段列表1)];

Select (字段列表2) from 源表 where 条件表达式;

例.

在下面的SQL语句中,create table 语句负责快速地创建一个new_student 表,且表结构与学生student表的表结构相同。Insert语句将学生student表中的所有记录插入new_student表中。Select语句负责查询new_student表的所有记录。

use choose;

create table new_student like student;

insert into new_student select *from student;

select *from new_student;

6.使用replace插入新纪录

语法格式1:replace into 表名[(字段列表)]values(值列表)

语法格式2:replace [into] 目标表名[(字段列表1)] select (字段列表2) from 源表where 条件表达式

语法格式1、语法格式2与insert语句的语法格式相似。

语法格式3:

replace [into]表名

set字段1=值1,字段2=值2

语法格式3与update语法的语法格式相似。

例.replace语句的用法

在下面的SQL语句中,第一条replace语句向学生student表插入一条学生信息(student_no=2012001,姓名为张三丰),由于学生表中已存在student_no=2012001,所以将原信息删除,然后插入新纪录。第二条replace再次将学生的信息“还原”。

Replace into student values(‘2012001’,’张三丰’,’15000000000’,’1’);

Replace into student values(‘2012001’,’张三’,’15000000000’,’1’);

在执行repalce语句后,系统返回了所影响的行数。如果返回1,说明在表中并没有重复的记录;如果返回2,说明有一条重复的记录,系统自动删除重复记录,然后插入新纪录;如果大于2,则有多条记录被删除。

二、表记录的修改

update 表名

set 字段名1=值1,字段名2=值2,...,字段名n=值n;

[where条件表达式];

例如:将班级classes表中“class_no<=3”的院系名department_mane修改为“机电工程学院”,可以使用下面的update语句。

use choose;

update classes set department_name='机电工程学院' where class_no<=3;

select * from classes;

三、表记录的删除

1.使用delete删除表记录

delete from表名[where条件表达式]

例如,删除班级名为“2012计算机应用1班”的班级信息,可以使用下面的SQL语句

use choose;

delete from classes where class_name='机电工程学院';

select * from classes;

2.使用truncate清空表记录

truncate table用于完全清空一个表,语法格式如下

truncate [table] 表名

truncate与delete的区别

步骤1:create table语句负责快速地创建一个new_class表,且表结构与班级classes表的结构相同。insert语句将班级classes表中的所有记录插入到new_class表中。select语句负责查询new_class表的所有记录。

use choose;

create table new_class like classes;

insert into new_class select * from classes;

select * from new_class;

步骤2:使用下面的MySQL命令查看new_class表的表结构

show create table new_class;

步骤3:使用下面的SQL语句删除new_class表的所有记录后,new_class表的表结构如图所示

delete from new_class;

show create table new_class;

步骤4:使用下面的MySQL命令清除new_class表的所有记录后,new_class表的表结构如图所示

truncate table new_class;

show create table new_class;

比较步骤3以及步骤4的执行结果,从中可以看出,delete语句并不会修改new_class表的自增型字段的起点;而使用truncate清除new_class表的所有记录后,new_class表的自增型字段的起点将被重置为1。

四、MySQL特殊字符序列

向new_student表插入两条信息,然后查询该表的所有记录

use choose;

insert into new_student values('2012006','Mar_tin','mar\tin@gmail.com',3);

insert into new_student values('2012007','O\'Neil','o_\neil@gmail.com',3);

select *from new_student;

例如,在下面的SQL语句中,第一条select语句负责查询姓名为O'\Neil'的学生信息(注意反斜线符号“\“不能省略),第二条select语句负责查询姓名为Mar_tin的学生信息。

select *from new_student where student_name='O\'Neil';

select *from new_student where student_name='Mar_tin';

在select语句中,查询条件where子句中可以使用like关键字进行”模糊查询“。”模糊查询“存在两个匹配符”_"和”%“。其中”_"可以匹配单个字符,”%“可以匹配任意个数的字符。

例如,查询所有姓名中包含下划线“_"的学生信息,可以使用下面的select语句。

select * from new_student where student_name like '%\_%';

转载于:https://www.cnblogs.com/zhying99/articles/9839674.html

MySQL(三)表记录的更新操作相关推荐

  1. mysql数据库更新表_Mysql数据库(四)表记录的更新操作

    一.插入表记录 1.使用INSERT...VALUES语句插入新纪录 (1)插入完整数据 mysql> desc tb_manager; +-------+------------------+ ...

  2. MySQL学习-表记录的查询操作

    数据中最常见的操作就是查询操作,也可以称作检索操作,目的是从表中检索出所需要的数据. select 语句: select 字段列表 from 表名或视图名 [where 条件表达式] [group b ...

  3. MySQL 使用触发器记录用户的操作日志

    MySQL 使用触发器记录用户的操作日志 目录 MySQL 使用触发器记录用户的操作日志 一.创建用户数据表(emp)和保存操作日志的表(emp_log) 二.为 emp 表创建触发器 1.创建触发器 ...

  4. 列名 userid 不明确。 表结构_SQL-Server(三)表的创建和操作

    3.1表结构和数据类型 3.1.1表和表结构 表结构.组成表的各列的名称及数据类型,统称为表结构. 记录.每个表包含了若干行数据,它们是表的"值",表中的一行称为一个记录.因此表是 ...

  5. with dlz mysql 条件_BIND+DLZ+MYSQL实现区域记录动态更新

    BIND+DLZ+MYSQL实现区域记录动态更新 [zonshy] BIND-DLZ实验环境:RHEL4 所用到的软件包:BIND-9.5.0-P2.tar.gz(9.4.0以上版本都已经包含了DLZ ...

  6. mysql将一个表的字段更新到另一个表中

    mysql将一个表的字段更新到另一个表中 今天遇到了这个问题 百度了一下,给出的解决方案如下 UPDATE T_CONDETAILED SET latesprice=t_temp.amount FRO ...

  7. mysql锁表查询和解锁操作

    mysql锁表查询和解锁操作 1.在做数据库操作时,有时会因为自己的粗心或者程序设计上的缺陷导致锁表,在mysql中查看锁表和解锁的步骤如下: //1.查看当前数据库锁表的情况SELECT * FRO ...

  8. 【数据库】第一章 数据库的分类、SQL、数据库、表和表记录的常用操作

    [数据库]第一章 数据库的分类.SQL.数据库与表的常用操作 文章目录 [数据库]第一章 数据库的分类.SQL.数据库与表的常用操作 一.数据库的分类 1.关系型数据库 2.非关系型数据库 3.MyS ...

  9. mysql多表查询插入更新_Mysql多表查询,多表插入和多表更新

    /*************************************by garcon1986************************************************* ...

最新文章

  1. mac下的intellij idea常用快捷键
  2. JAVA构造方法,继承关系和SUPER关键字
  3. linux 内核 发送数据,linux 内核tcp数据发送的实现
  4. 项目管理系列--谷歌的code review
  5. 训练神经网络时如何确定batch size?
  6. python的socket模块_python模块:socket模块
  7. 机器学习4/100-Logistic回归
  8. bzoj 3709: [PA2014]Bohater
  9. ENVI入门系列教程---一、数据预处理---8.图像裁剪
  10. Laravel跨数据库事务的实现
  11. Debian Qualcomm Atheros QCA61x4 Wireless Network Adapter - 网卡驱动
  12. 浅谈数字证书安装证书原理
  13. macfee怎么生成释放代码_批处理应用:使用FLASHGET检查Mcafee SuperDat更新
  14. GTX高速收发器Transceiver之发射端Transmitter(UG476)
  15. 2020计算机专硕考数二的学校,2020考研备考:考研数一、数二、数三哪个最难?...
  16. 蓝桥杯试题 算法提高 Cutting Chains
  17. java中文拼音转换(maven)
  18. 【算法训练营】 - ⑩ 并查集与图
  19. 大陆出现首例iPhone 8电池爆裂事件;小米被指责盗用视频素材丨价值早报
  20. windows驱动开发3:第一个驱动及调试

热门文章

  1. grDevices | 如何在图形中使用数学表达式作为标注文本
  2. tableau两个不同的图合并_【书稿摘要】Tableau地图函数(下)
  3. 函数节流你应该知道的那点事
  4. 详解+G - 数据结构实验之栈与队列七:出栈序列判定
  5. mysql5.5删除干净_MySql5.5 安装及卸载
  6. 猜数字游戏python程序用函数guesssecret_python实现猜数字游戏
  7. jq点击事件多次响应_分享同一个按钮jQuery多次点击实现不同事件的代码
  8. android 模拟crash_Android 收集Crash信息及用户操作步骤
  9. python自动测试相机_Python + Appium+ IOS自动化测试
  10. 单片机ADC采样算法----限幅平均滤波法