MySQL_Ch6

MySQL_Ch6

1、数据操作语句(DML)
1)新增数据

  1. 方式1:给全表所有属性插入数据
    基本格式: insert into 表名 values(值1,值2,…)
  • values中的值要与表中列的顺序一致
insert into emp1 values(1100,'haha','HR',
7788,'2000-10-10', 3000,300,30);
  1. 方式2:给部分属性插入数据,需要给出选定的列,
    后面的值要与选定的列顺序一致
    基本格式:insert into 表名(列1,列2,…) values(值1,值2,…)
insert into emp1(empno,ename) values(1222, 'xixi');

递增约束

insert into temp(name) values('xixi');
  • 一个软件系统中,关于数据库部分的信息迷
  • 一般有一个预存信息,例如用户注册信息,管理员
  • 网页 模拟注册登录过程
    • 1)检测用户名是否重复、邮箱是否重复
select * from user where ename = ?;
    • 2)填入基本信息实现数据插入
      动态sql语句
insert into user(name,age,birthday,tel) values(?,?);
    • 3.1)直接跳转到首页
      #首页显示用户基本信息,例如会员编号、昵称等等
select last_insert_id();
select * from user where id = ?;
    • 3.2)直接跳转到登录页面
    • 3.3)输入用户名和者密码
select * from user where username = ? and password = ?;
    • 3.4)转到首页

2)修改数据(更新数据)

update 基本格式

update 表名 set 列1 = 值1,列2 = 值2,列3 = 值3...
[where 条件]
# where可以省略,但是实际中一定要有
update emp1 set mgr = '7777' where empno = 1100; -- 弊端:修改全部的数据

3)删除数据
#基本格式:delete from 表名 [where 条件]

删除数据删除哪一条记录,不是列

delete from emp1;-- 全表数据清空 数据可恢复的
delete from emp1 where empno = 1100;
– 删除后原有表中的主键递增是不会受到影响

– DDL与DML区别:

  • DDL 默认是直接提交数据库
  • DML 在mysql中是默认自动提交数据库,但是可以修改设置,使其变为手动提交

截断表

格式:truncate table 表名

truncate table emp1; – 清空emp1的数据,表的结构还在

delelte , truncate , drop 区别:

  • delete 是DML语句,删除表中数据,表结构还在,而且记录每条数据的日志,数据可以恢复的
  • truncate 是DDL语句,清空表中的数据,仅记录该操作的日志,数据是不可恢复的
  • drop是DDL语句,直接删掉表,表结构不存在,不可恢复的
  • 注:大多数数据库都有自动备份功能binlog

切换自动提交功能

set autocommit = off;#关闭自动提交功能  on
# mysql开发环境造成的

练习:

– 复制emp表

create table emp2 select * from emp;

1、向emp2中新增一个员工信息,要求每列都有值,值任意

insert into emp2 values(1001,'heihei','CLERK',null,sysdate(),1800,null,40);
# sysdate() 系统时间函数,填入的数据会与设置的格式匹配

2、新增一个员工,员工编号是1100,姓名张三,月薪2000,部门20

insert into emp2(empno,ename,sal,deptno) values(1100,'张三',2000,20);

3、将张三的职位更新为CLERK,入职日期更新为2020-11-17

update emp2 set job = 'CLERK',hiredate = '2020-11-17' where ename = '张三';

4、为30号部门所有的员工涨薪,增长幅度是200

update emp2 set sal = sal + 200 where deptno = 30;

5、删除员工scott

delete from emp2 where ename = 'SCOTT';

6、为部门SALES的员工涨薪,幅度200

update emp2 set sal = sal + 200
where deptno = (select deptno from dept
               where dname = 'SALES');

7、为与SMITH同一个部门的员工涨薪200

update emp2 set sal = sal + 200
where deptno = (select deptno from dept
               where ename = 'SMITH');

set sql_safe_updates = 0;-- 关闭安全更新模式

上一篇:oracle的卸载


下一篇:DML(数据操纵语言)语言学习