Fork me on GitHub

MySQL(三)表记录的更新操作

一、 表记录的插入

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插入新纪录

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

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

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

语法格式3

replace [into]表名

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

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

.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 '%\_%';

 

posted @ 2018-12-03 23:26  &#127808;&#127808;&#127808;  阅读(721)  评论(0编辑  收藏  举报
🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀 🍀