-- 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','',NULL,2); -- 2.可以为Null的列如何插入值?
-- 方式一 写null值
-- 方式二 插入的字段不写 自动填充默认值或Null
INSERT INTO beauty(`id`,`name`,`sex`,`borndate`,`phone`,`boyfriend_id`)
VALUES(13,'麦克雷','男','1984.7.1','',2); -- 3.列的顺序是否可以调换,可以
-- 4.列数和值数必须一致
-- 5.可以省略列名,默认所有列,并且列的顺序和表中的顺序一致。 -- 方式二
/*
insert into 表名 set 列名=值,列名=值...;
*/
INSERT INTO beauty SET id=19,NAME='张飞',phone=''; -- 两种方式比较
-- 1.方式一支持多行插入,方式二不支持
INSERT INTO beauty
VALUES(13,'麦克雷','男','1984.7.1','',NULL,2),
VALUES(14,'天使','女','1999.6.1','',NULL,3),
...; -- 2.方式一支持子查询,方式二不支持
INSERT INTO beauty(id,NAME,phone) SELECT 55,'骚猪','';

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 = '' 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`=''
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删除可以回滚
*/

<MySQL>入门二 增删改 DML的更多相关文章

  1. mybatis入门(二):增删改查

    mybatis的原理: 1.mybatis是一个持久层框架,是apache下的顶级项目 mybatis托管到googlecode下,目前托管到了github下面 2.mybatis可以将向prepar ...

  2. mybatis入门二-----增删改查

    一.使用MyBatis对表执行CRUD操作——基于XML的实现 1.定义sql映射xml文件 userMapper.xml文件的内容如下: <?xml version="1.0&quo ...

  3. Mybatis入门之增删改查

    Mybatis入门之增删改查 Mybatis如果操作成功,但是数据库没有更新那就是得添加事务了.(增删改都要添加)----- 浪费了我40多分钟怀疑人生后来去百度... 导入包: 引入配置文件: sq ...

  4. 手撸Mysql原生语句--增删改查

    mysql数据库的增删改查有以下的几种的情况, 1.DDL语句 数据库定义语言: 数据库.表.视图.索引.存储过程,例如CREATE DROP ALTER SHOW 2.DML语句 数据库操纵语言: ...

  5. java jdbc 连接mysql数据库 实现增删改查

    好久没有写博文了,写个简单的东西热热身,分享给大家. jdbc相信大家都不陌生,只要是个搞java的,最初接触j2ee的时候都是要学习这么个东西的,谁叫程序得和数据库打交道呢!而jdbc就是和数据库打 ...

  6. MyBatis学习系列二——增删改查

    目录 MyBatis学习系列一之环境搭建 MyBatis学习系列二——增删改查 MyBatis学习系列三——结合Spring 数据库的经典操作:增删改查. 在这一章我们主要说明一下简单的查询和增删改, ...

  7. shell编程系列22--shell操作数据库实战之shell脚本与MySQL数据库交互(增删改查)

    shell编程系列22--shell操作数据库实战之shell脚本与MySQL数据库交互(增删改查) Shell脚本与MySQL数据库交互(增删改查) # 环境准备:安装mariadb 数据库 [ro ...

  8. 【转载】通过JDBC对MySQL数据库的增删改查

    通过JDBC进行简单的增删改查(以MySQL为例) 目录 前言:什么是JDBC 一.准备工作(一):MySQL安装配置和基础学习 二.准备工作(二):下载数据库对应的jar包并导入 三.JDBC基本操 ...

  9. MySQL 数据的增删改查

    一.数据库的增删改 一. 在MySQL管理软件中,可以通过SQL语句中的DML语言来实现数据的操作,包括 1.使用INSERT实现数据的插入 2.UPDATE实现数据的更新 3.使用DELETE实现数 ...

随机推荐

  1. ios31--NSThread

    // // ViewController.m // 03-掌握-NSThread基本使用 #import "ViewController.h" #import "XMGT ...

  2. Proxy authentication confirmation prompt keeps popping up although the user/password is saved 火狐浏览器一直提示输入代理的账号和密码

    https://support.mozilla.org/zh-CN/questions/943488 signon.autologin.proxy;true network.proxy.share_p ...

  3. 洛谷 P2312 & bzoj 3751 解方程 —— 取模

    题目:https://www.luogu.org/problemnew/show/P2312 https://www.lydsy.com/JudgeOnline/problem.php?id=3751 ...

  4. Python print 输出不换行,只有空格

    for x in open("/home/soyo/桌面/中期内容/6.txt"): print x, ,,,]: print x, #print 输出没有换行,只有空格 结果: ...

  5. 31. ExtJs4回车事件监听

    转自:https://710542316.iteye.com/blog/2148542 监听表单字段事件: Ext使得对用户某个动作的监听特别简单,诸如单击某个元素或者按下某个键盘上的键. 一个经常性 ...

  6. jquery input 赋值和取值

    记录一下: 在写一个input赋值,二话不说就直接利用了$('#xx').val()来进行取值和赋值,取值ok,赋值后利用alert显示正确,但是在html上并没有正确的显示出来,后来改为使用如下代码 ...

  7. E20180119

    Foundation   n. 基础; 地基; 粉底; 基金(会); hybrid   n. 杂种; 杂交生成的生物体; 混合物; 混合词; adj. 混合的; 杂种的;

  8. bzoj 3390: [Usaco2004 Dec]Bad Cowtractors牛的报复【最大生成树】

    裸的最大生成树,注意判不连通情况 #include<iostream> #include<cstdio> #include<algorithm> using nam ...

  9. lnmp环境的nginx的tp5配置

    php7.1 server { listen 80; server_name www.tp5.com; access_log /home/wwwroot/access.log combined; er ...

  10. Poj 3177 Redundant Paths (双连通分支+节点统计)

    题目描述: 给出一个无向的连通图,问最少加入几条边,才能使所给的图变为无桥的双连通图? 解题思路: 可以求出原图中所有的不包含桥的所有最大连通子图,然后对连通子图进行标记缩点,统计度为1的叶子节点le ...