第五阶段 -- 数据库:day20_07/02/19【插入数据;更新数据;删除数据】

1. 插入数据

  1. 为所有字段插入数据
    语法:insert [into] 表名[(字段名1,字段名2,字段名3,…)] values|value(值1,值2,值3…);
  • 例如:创建一张表student(sno主键自增 sname非空 age sex 默认男 email 唯一);为student表所有字段插入数
  • 注意:表后面可以加字段名也可以不加字段名,如果没有添加字段名则插入的值顺序要与表结构字段顺序相同
create table student(
	sno int(8) primay key auto_increment
    sname varchar(20) not null
    age int(2),
    sex varchar(1) default '男',
    email varchar(30) unique
)
-- 为student表所有字段插入数据
insert into studetn(sno,sname,age,sex,email)
	values(1,'张三'23'男',zhangsan@qq.com)
-- 查询表中student的数据
select * from student
-- 表后面不写字段名,则插入的顺序与表结构要相同
insert into student values(2,'李四',18,'女',lisi@qq.com)
  1. 为指定字段插入数据
    语法:insert [into] 表名(字段名1,字段名2,字段名3,…) values|value(值1,值2,值3…);
  • 例如:给表student中sname和age插入数据
insert into student(sname, age) values('五五',19)
  1. 使用SET方式插入数据
    语法:insert [into] 表名 set 字段名1=字段值[,字段名2=字段值2…];
  • 例如:使用set方式给student表所有字段插入数据
insert into student set sno=4,sname='赵二',age=24,email='zhaoer@qq.com',sex='女'
-- 查询表中的数据
select * from student
-- 使用set方式给指定的字段插入数据
-- 例如使用set方式给student表中sname和age,email插入值
insert into student set sname='陈琦',age=40,email='chenqi@qq.com'
  1. 同时插入多条数据
    语法:insert [into] 表名[(字段名1,字段名2,字段名3,…)] values|value(值1,值2,值3…),
    ​ (值1,值2,值3…),
    ​ …
  • 例如给表student同时插入多条数据
    1. 给所有字段插入多条数据
    2. 给指定字段插入多条数据
-- a. 给所有字段插入多条数据
inset into student(sno,sname,age,sex,email)
	vaules(6,'小红',38,'女','xiaohong@qq.com')
	(7,'小强',22,'男','xiaoqiang@qq.com')
-- b. 给指定字段插入多条数据
-- 例如给student表中sname,age和email插入值
insert into student(sname,age,email) values('小花',23,'xiaohua@qq.com') 
('小李',23,'xiaoliqq.com') 
select * from student
  1. 插入查询结果
    语法:insert [into] 表名(字段名1,字段名2…) select 字段名1,字段名2… from 表 where 条件
    注意:插入表的字段和查询的字段个数和类型要保持一致
  • 例如:将student表中的数据查询结果插入到t_student表

    1. 创建t_student表

    2. 使用插入查询结果插入数据

-- 将student表中的数据查询结果插入到t_student表
-- 1. 创建t_student表
create table t_student(
	sno int(8) primary key auto_increment,
    sname varchar(20) not null,
    age int(2),
    sex varchar(2) default '女',
    email varchar(30) unique
)
-- 2. 使用插入查询结果插入数据
insert into t_student select * from student;
-- 查询t_student
select * from t_student;

2. 更新数据

  1. 更新指定数据
    语法:update 表名 set 字段名1=值1 [,字段名2=值2…] where 条件
  • 例如:将student表中姓名为“张三”的姓名修改为"张老大"
update student set sname='张老大' where sname='张三';
select * from student;
  1. 更新全部数据 (用的比较少)

    语法:update 表名 set 字段名1=值1 [,字段名2=值2…

  • 例如:将student表中年龄都修改为18
update student set age=18

3. 删除数据

  1. 删除指定数据

    语法:delete from 表名 where 条件

  • 例如:删除sno学号大于2的学生信息
select * from student;
delete from student where sno>2
  1. 删除全部数据

    语法:delete from 表名

  • 例如:删除学生表的全部数据
delete from student 
select * from student
  1. truncate关键字删除数据
    语法: truncate 表名
  • 例如:删除t_student表中的全部数据
select * from student
truncate t_student
  • truncate与delete删除全部记录的区别:
    1. delete是数据操纵语言DML ;而truncate是数据定义语言DDL
    2. delete删除数据是一条一条删除;
      truncate删除数据是保留表结构,直接删除数据,删除后表的状态相当于新表;
      truncate的效率比delete高
    3. delete删除数据,会显示删除行数;
      truncate不会显示
    4. delete删除记录后,再次向表添加数据,自增的值会在原来最大值+1
      truncate删除记录后,会从1开始自增
    5. delete操作可以进行回滚;
      truncate操作隐式提交,不可以回滚

4. 图形化界面操作数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值