<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.删除

猜你喜欢

转载自www.cnblogs.com/mapleins/p/10100187.html