MySQL_基础_DML数据操纵语言

插入语句

语法:    
    INSERT INTO 表名 [(列名1, 列名2,...)] VALUES ('值1', '值2',...);
    INSERT INTO 表名 SET 列名1='值1', 列名2='值2' ...;
    INSERT INTO 表名 [(列名1, 列名2,...)] SELECT ...;

案例:
    1、插入单行数据
    INSERT INTO student(id,name,age) VALUES(1,'小明',6);
    INSERT INTO student SET id=1, name='小明', age=6;

    2、插入多行数据
    INSERT INTO student(id,name,age) VALUES(1,'小明',6),(2,'小红',5),(3,'小强',7);

    3、插入子查询数据
    INSERT INTO student(id,name,age) SELECT 1,'小明',6;

 

修改语句

语法:
    UPDATE 表名 SET 列名1='值1' [, 列名2='值2', ...] 
    [WHERE 条件];

案例:
    1、修改单表数据
    UPDATE student SET age=7 WHERE name='小明';

    2、修改多表数据
    sql92语法:UPDATE student s,class c SET s.age=5,c. NAME='向日葵小班' WHERE s.class_id=c.id and c.id = 1;
    sql99语法:UPDATE student s INNER JOIN class c ON s.class_id=c.id SET s.age=5,c.name='向日葵小班' WHERE c.id = 1;

 

删除语句

方式一:
    语法:
        DELETE FROM table [WHERE condition];

    案例:
        1、删除单行数据
        DELETE FROM student WHERE id=1;

        2、删除多表数据
        sql92语法:DELETE s,c FROM student s,class c WHERE s.class_id = c.id AND c.id = 1;
        sql99语法:DELETE s,c FROM student s INNER JOIN class c ON s.class_id = c.id WHERE c.id = 1;

方式二:
    语法:
        TRUNCATE TABLE table;
    
    案例:
        1、清空单表所有数据
        TRUNCATE TABLE student;
        
区别:
                    DELETE                TRUNCATE
    删除方式:        逐条删除              先摧毁表,再重建
    删除后插入:      自增ID为断点值         自增ID为1
    速度:           慢                  快
    返回值:        有                  没有
    WHERE条件:      可以                   不可以
    日志:           记录                   不记录
    触发器:        触发                   不触发
    回滚:           可以                   不可以
    闪回:           可以                   不可以
    释放空间:     不会                   会
    产生碎片:     会                  不会

 

posted @ 2018-07-18 11:29  Catnip  阅读(198)  评论(0编辑  收藏  举报