【数据库SQL】数据的增、删、改


插入数据

insert语句插入数据

语法格式:
insert into 表名(字段名1,字段名2,字段名3,…) values(值1,值2,值3,…)

要求:
字段的数量和值的数量相同,并且数据类型要对应相同。

示例1:

insert into t_student(no,name,sex,classno,birth) values(1,'zhangsan','1','gaosan1ban', '1950-10-12');

示例2:
字段的顺序可以调整

insert into t_student(name,sex,classno,birth,no) values('lisi','1','gaosan1ban', '1950-10-12',2);

示例3:
向表中insert插入数据时,可以只向其中的部分字段插入。

insert into t_student(name) values('wangwu'); 	// 除name字段之外,剩下的所有字段自动插入NULL。

这种情况下没有写出的那些字段会自动插入空值(null)。

如果没有写出的那些字段在建表时使用default指定了默认值,则自动插入默认值。

关于“使用default指定默认值”,可参考:【……】

示例4:
字段可以省略不写,但是后面的value对数量和顺序都有要求,必须和将要插入的表完全一致。

insert into t_student values(1,'jack','0','gaosan2ban','1986-10-23');

示例5:
可以一次插入多行数据

insert into t_student
	(no,name,sex,classno,birth) 
values
	(3,'rose','1','gaosi2ban','1952-12-14'),
	(4,'laotie','1','gaosi2ban','1955-12-14'); 

示例6:
可以将select查询结果插入到一张表中

insert into dept1 select * from dept;

注意1:

当一条insert语句执行成功之后,表格当中必然会多一行记录。
即使多的这一行记录当中某些字段是NULL,后期也没有办法在执行insert语句插入数据了,只能使用update进行更新。

注意2:

如果是通过DOS命令窗口来操作MySQL数据库的话,通过insert插入数据时不要写中文,否则会出现乱码!

这是因为:
MySQL数据库采用的是“UTF-8”,但是DOS命令窗口采用的是“ANSI/OEM-简体中文GBK”。字符集不统一,会导致出现乱码。

复习之前学习的:
关于编码格式(字符集)


修改数据

语法格式:

update 表名 set 字段名1=值1,字段名2=值2… where 条件;

注意:
没有加条件的话,整张表的数据全部更新。

示例1:
将部门10的LOC修改为SHANGHAI,将部门名称修改为RENSHIBU

update dept1 set loc = 'SHANGHAI', dname = 'RENSHIBU' where deptno = 10;

示例2:
更新所有记录

update dept1 set loc = 'x', dname = 'y';

注意:
更新数据时,不同的字段之间是用逗号连接,而不是用and连接。


删除数据

delete与truncate

语法格式:

delete from 表名 where 条件;

注意:
如果没有加条件的话,整张表的数据全部删除。

示例1:
删除10部门数据

delete from dept1 where deptno = 10;

示例2:
删除所有记录

delete from dept1;

怎么删除大表?

如果表特别大,数据特别多的话,用delete删除就会很慢。用掉几分钟甚至几小时都是可能的。

delete语句的执行效率是很低的,效率高的是truncate语句(截断)。

语法:

truncate table 表名;

两者的区别:
delete:表中的数据在删除之后还可以回滚。
truncate:表被截断,不可回滚。永久丢失。

delete语句执行慢的原因:
它没有释放数据真实的物理存储空间。


CRUD

增删改查有一个术语:CRUD操作
Create(增) Retrieve(检索) Update(修改) Delete(删除)

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值