美文网首页软件测试
mysql数据库小知识---操纵语言DML

mysql数据库小知识---操纵语言DML

作者: 小高有点 | 来源:发表于2020-06-01 14:18 被阅读0次

    DML语句

    1.增INSERT

    /*
    insert into 表名
    values (value1,value2,...valueN);
    按照表的原有结构放入数据
    */
    
    INSERT INTO dept
    VALUES (60,'Tech','Mian Yang');
    
    SELECT * FROM dept;
    
    #执行的dml语句和ddl语句都是以事务的形式存在的,事务必须提交才能永久生效,可以回滚撤销操作
    #mysql默认自动提交是开启的,关闭自动提交:
    SET autocommit=0;
    
    COMMIT; #提交
    ROLLBACK; #回滚
    
    #DDL语句都是自动提交的,并且不能关闭
    
    /*
    insert into 表名(列名1,列名2,……列名n)
    values (value1,value2,...valueN);
    按照自定义的列放入数据
    */
    INSERT INTO emp(empno,ename,job,sal)
    VALUES (8000,'xiaoming','HR',2500);
    
    #未定义的列默认放入空值
    SELECT * FROM emp;
    
    #也可以使用null放入空值
    INSERT INTO dept
    VALUES (80,'Training',NULL);
    
    #使用函数放入数据
    INSERT INTO emp(empno,ename,job,hiredate,sal,deptno)
    VALUES (8001,'xiaoqiang','TESTER',CURDATE(),3000,20);
    
    #insert into 表名 select …… ; 将查询结果直接放入另一张表,拷贝数据
    SELECT * FROM bonus;
    
    INSERT INTO bonus
    SELECT ename,job,sal,comm FROM emp
    WHERE comm IS NOT NULL;
    
    ROLLBACK;
    
    #mysql允许一个insert语句同时放入多行数据
    /*
    insert into 表名
    values (value1,value2,...valueN),(value1,value2,...valueN), (value1,value2,...valueN),...;
    */
    

    2.改UPDATE

    /*
    update 表名
    set 列名1=value1,列名2=value2,列名3=value3,……
    [where ...];
    */
    #如果不写where子句,会修改所有行的数据
    UPDATE emp
    SET sal=3000;
    
    UPDATE emp
    SET sal=1200
    WHERE ename = 'SMITH';
    
    SELECT * FROM emp;
    
    #可以在已有数据的基础上进行修改
    #30号部门表现不错,每人涨薪300
    UPDATE emp
    SET sal=sal+300
    WHERE deptno=30;
    
    ROLLBACK;
    
    #在set和where后面,都可以使用子查询,但不能使用本表数据的子查询
    

    3.删DELETE

    /*
    delete from 表名
    [where ...];
    */
    #如果不写where子句,会删除所有数据
    DELETE FROM emp;
    
    SELECT * FROM emp;
    
    DELETE FROM emp
    WHERE ename = 'SMITH';
    

    【练习】

    1.在EMP表中,增加一名员工,员工信息参照现有员工构造.
    INSERT INTO emp
    VALUES (8000,'xiaohong','TEACHER',NULL,CURDATE(),2000,NULL,40);
    
    2.员工SMITH调动到SALES部门,请编写SQL语句更新员工信息.
    UPDATE emp
    SET deptno =
    (SELECT deptno FROM dept WHERE dname = 'SALES')
    WHERE ename = 'SMITH';
    
    3.员工JAMES已经离职,请编写SQL语句更新数据库.
    DELETE FROM emp
    WHERE ename = 'JAMES';
    

    相关文章

      网友评论

        本文标题:mysql数据库小知识---操纵语言DML

        本文链接:https://www.haomeiwen.com/subject/chzjzhtx.html