博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据操作语言(DML)一:插入数据insert、修改数据update、删除delete
阅读量:3964 次
发布时间:2019-05-24

本文共 2104 字,大约阅读时间需要 7 分钟。

一、插入数据(insert)

1、insert语句插入数据

语法格式:

insert into 表名(字段名1,字段名2,字段名3,…) values(值1,值2,值3,…)
举例:

insert into t_student(no,name,sex,classno,birth) values(1,'zhangsan','1','gaosan1ban');//ERROR 1136 (21S01): Column count doesn't match value count at row 1

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

方法一:省略字段的插入
// 字段可以省略不写,但是后面的value对数量和顺序都有要求。
不建议使用此种方式,因为当数据库表中的字段位置发生改变的时候会影响到insert语句

mysql> insert into t_student values(1,'Tom',1,'Senior 3','1992-11-27');Query OK, 1 row affected (0.06 sec)mysql> select * from t_student;

±-----±-----±-----±---------±-----------+

| no | name | sex | classno | birth |
±-----±-----±-----±---------±-----------+
| 1 | Tom | 1 | Senior 3 | 1992-11-27 |
±-----±-----±-----±---------±-----------+
1 row in set (0.00 sec)
方法二:指定字段的插入(建议使用此种方式)
举例1:

mysql> insert into t_student(no,name,sex,classno,birth) values(2,'Mary',0,'Senior 3','1992,5,4');

举例2:

mysql> insert into t_student(no,name) values (3,'Jack');// 除no,name字段之外,剩下的所有字段自动插入NULL。Query OK, 1 row affected (0.07 sec)mysql> select * from t_student;

一次插入多行数据

mysql> insert into t_student(no,name,sex,classno) values(4,'Ket',1,'Senior 3'),(5,'Jerry',1,'Senior 3');

需要注意的地方

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

2、如何将查询的数据直接放到已经存在的表中,可以使用条件

mysql> insert into dept1 select * from dept;

二、修改数据:update

语法格式:

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

注意:没有条件整张表数据全部更新

可以修改数据,可以根据条件修改数据
举例1:
将部门10的LOC修改为SHANGHAI,将部门名称修改为RENSHIBU

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

举例2:

将job为manager的员工的工资上涨10%

update emp set sal=sal+sal*0.1 where job='MANAGER';

更新所有记录

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

注意: • 如果需要回滚数据,需要保证在DML前,进行 设置:SET AUTOCOMMIT = FALSE

三、删除数据delete

可以删除数据,可以根据条件删除数据

1、语法格式:

delete from 表名 where 条件;

注意:没有条件全部删除。

举例:
删除10部门数据?

mysql> delete from dept1 where deptno = 10;

删除所有记录?

mysql> delete from dept1;

注意:删除完所有数据之后,表仍然存在,而且不释放表的存储空间

可以使用 DELETE 语句删除数据,可以回滚 • 对比: delete from emp2; select * from emp2; rollback; select * from emp2

2.怎么删除大表中的数据?(重点)

TRUNCATE TABLE 语句:

  • 删除表中所有的数据
  • 释放表的存储空间
truncate table 表名; // 表被截断,不可回滚。永久丢失。

转载地址:http://bxuki.baihongyu.com/

你可能感兴趣的文章
Java 四舍五入运算
查看>>
Spring Batch 例子: 运行系统命令
查看>>
括号及后向引用
查看>>
Spring Batch 核心概念
查看>>
Spring Batch 例子: 导入定长文件到数据库
查看>>
正则表达式
查看>>
Java I/O
查看>>
序列化
查看>>
Perl 精萃
查看>>
Perl 简介
查看>>
Perl 注释
查看>>
数据类型之标量
查看>>
调试 Perl 脚本
查看>>
增强的for循环语句
查看>>
方法的可变参数
查看>>
静态导入
查看>>
java 泛型
查看>>
控制结构
查看>>
标准输入输出
查看>>
运算符
查看>>