mapleins

gay

<MySQL>入门二 增删改 DML

-- DML语言

/*
    数据操作的语言
    插入:insert
    修改:update
    删除:delete
*/

1.插入

-- 插入语句
/*
    语法:insert into 表名(列名...) values(值...);
*/

-- 方式一

-- 1.插入值的类型要与列的类型一致或兼容
INSERT INTO beauty(`id`,`name`,`sex`,`borndate`,`phone`,`photo`,`boyfriend_id`) 
VALUES(13,'麦克雷','','1984.7.1','13535356464',NULL,2);

-- 2.可以为Null的列如何插入值?
-- 方式一 写null值
-- 方式二 插入的字段不写 自动填充默认值或Null
INSERT INTO beauty(`id`,`name`,`sex`,`borndate`,`phone`,`boyfriend_id`) 
VALUES(13,'麦克雷','','1984.7.1','13535356464',2);

-- 3.列的顺序是否可以调换,可以
-- 4.列数和值数必须一致
-- 5.可以省略列名,默认所有列,并且列的顺序和表中的顺序一致。

-- 方式二
/*
    insert into 表名 set 列名=值,列名=值...;
*/
INSERT INTO beauty SET id=19,NAME='张飞',phone='110';

-- 两种方式比较
-- 1.方式一支持多行插入,方式二不支持
INSERT INTO beauty
VALUES(13,'麦克雷','','1984.7.1','13535356464',NULL,2),
VALUES(14,'天使','','1999.6.1','120',NULL,3),
...;

-- 2.方式一支持子查询,方式二不支持
INSERT INTO beauty(id,NAME,phone) SELECT 55,'骚猪','13929292929';

2.修改

-- 修改
/*
    1.修改单表的记录☆
    语法:update 表名 set 列=新值,列=新值... where 筛选条件
    
    2.修改多表的记录
    sql92:
    update 表1 别名,表2 别名 set 列=新值.. where连接条件 and 筛选条件
    sql99:
    update 表1 别名 inner(left)right join 表2 别名 on 连接条件 set列=新值 where 筛选条件;

*/

-- 修改单表记录
-- 1.修改beauty表中,姓苍的电话为110
UPDATE beauty SET phone = '110' WHERE NAME LIKE '苍%';

-- 2.修改boys表中id=2的名称为张飞,魅力值为10
UPDATE boys SET boyName = '张飞',userCP = 10 WHERE id = 2;

-- 修改多表记录
-- 1.修改张无忌的女朋友的手机号为114
UPDATE boys bo
JOIN beauty be
ON bo.`id`=be.`boyfriend_id`
SET be.`phone`='110'
WHERE bo.`boyName`='张无忌';

-- 2.修改没有男朋友的 女神的男朋友编号都为2号
UPDATE beauty SET boyfriend_id =2 WHERE boyfriend_id IS NULL;

3.删除

 

-- 删除语句
/*
  delete
    1.单表删除
    语法一:delete from 表名 where 筛选条件
    2.多表删除
       sql92:    delete 别名 from 表1 别名,表2 别名 where 连接条件 and 筛选条件;
       sql99:   delete 别名 from 表1 别名 inner left right join 表2 别名 on 连接条件 where 筛选条件

  truncate
    trancate table 表名;
*/

-- delete
-- 单表删除
-- 删除手机号以9结尾的女神信息
DELETE FROM beauty WHERE phone LIKE '%9';

-- 多表删除
-- 删除张无忌的女朋友的信息
DELETE be
FROM beauty be
INNER JOIN boys bo
ON be.`boyfriend_id`=bo.`id`
WHERE bo.`boyName`='张无忌';

-- 删除黄晓明的信息和它女朋友的信息
DELETE be,bo
FROM beauty be
INNER JOIN boys bo
ON be.`boyfriend_id`=bo.`id`
WHERE bo.`boyName`='黄晓明';

-- truncate语句
-- 只能删除整个表,后面不能加筛选条件

-- delete 和 truncate比较
/*
   1.delete可以加where条件,truncate不能加
   2.truncate删除,效率高一些
   3.加入要删除的表中有自增长列
       如果用delete删除后,再插入值,自增长列的值从断点开始
       而truncate删除后,再插入值,自增长列的值从1开始
   4.truncate删除没有返回值,delete删除有返回值
   5.truncate删除不能回滚,delete删除可以回滚
*/

 

posted @ 2018-12-11 01:39  mapleins  阅读(182)  评论(0)    收藏  举报