例子文件:https://files-cdn.cnblogs.com/files/Vera-y/girls.zip

一、插入

方式一:

语法:

  insert into 表名(列名,.....)

  values( 值1,.....);              # 注:字符型和日期型要加单引号,数值型不用加

插入语句要注意的项:

1.插入的值的类型要与列的类型一致或兼容

例:

  INSERT INTO beauty(id,name,sex,borndate,phone,photo,boyfriend_id)
  VALUES(13,'糖糖','女','1990-9-9','18791166667',NULL,4);

2.不可以为null的列必须插入值,可以为null的列如何插入值?

方式一:写着列名,值写为null

例1.

  INSERT INTO beauty(id,name,sex,borndate,phone,photo,boyfriend_id)
  VALUES(14,'糖心','女','1990-4-9','18791888847',NULL,4);

方式二:列名和值都不写

例2.

  INSERT INTO beauty(id,name,sex,phone)
  VALUES(15,'糖宝','女','18793230847');

3.列的顺序可以调换

例:

  INSERT INTO beauty(name,id,sex,phone)
  VALUES('娜扎',16,'女','18788230847');

4.列数和值的个数必须一致

5.可以省略列名,默认为所有列,且列的顺序和表中列的顺序一致

例:

  INSERT INTO beauty
  VALUES(18,'谢娜','女',null,'19929485048',null,null);

方式二:

语法:

  insert into 表名

  set 列名=值,列名=值,.....

例:  

  INSERT INTO beauty
  SET id = 19,name = '容嬷嬷', phone='17764775087';

方式一和方式二的比较:

1.方式一支持插入多行,方式二不支持

例.

  INSERT INTO beauty
  VALUES(20,'贵妃','女','1990-2-2','19889479305',null,3),
      (21,'皇后','女','1990-2-2','19889479305',null,4),
      (22,'才人','女','1990-2-2','19889479305',null,5);

此处还可用union联合查询连接

  INSERT INTO beauty
  SELETE 20,'贵妃','女','1990-2-2','19889479305',null,3 UNION
  SELETE 21,'皇后','女','1990-2-2','19889479305',null,4 UNION
  SELETE 22,'才人','女','1990-2-2','19889479305',null,5;

2.方式一支持子查询,方式二不支持

例.

  INSERT INTO beauty(id,name,phone)    # 把查询到的值插入到beauty表里(列名和值一一对应)

  SELECT 26,'宋某','19923493773';             # 这里可以用查询语句查询一个表里的值(查询到的是一个结果)(此处为一个常量)

二、修改

修改单表的记录

语法:

  update 表名

  set 列=新值,列=新值,....     # 注:字符型和日期型要加单引号,数值型不用加

  where 筛选条件;    # 和查询的筛选条件类似

例1.修改beauty表中姓糖的女神的电话为110

  UPDATE beauty SET phone='110'
  WHERE NAME LIKE '糖%';

例2.修改boys表中id为2的名称为张飞,魅力值为20 

  UPDATE boys SET boyName='张飞',userCP=20
  WHERE id=2;

修改多表的记录

sql92语法:

  update 表1 别名,表2 别名

  set 列=值,...

  where 连接条件

  and 筛选条件;

sql99语法:

  update 表1 别名

  [连接类型]  join 表2 别名

  on 连接条件

  where 筛选条件;

例1.修改张无忌女朋友的手机号为114

  UPDATE boys
  INNER JOIN beauty
  ON boys.id=beauty.boyfriend_id
  SET beauty.phone='114'
  WHERE boys.boyName='张无忌';

例2.修改没有男朋友的女神的男朋友编号为2号

  UPDATE boys
  RIGHT JOIN beauty
  ON boys.id=beauty.boyfriend_id
  SET beauty.boyfriend_id=2
  WHERE beauty.boyfriend_id IS NULL;

三、删除

方式一:delete    # 删除整列

1.单表的删除

语法:

  delete from 表名 where 筛选条件;

例.删除手机号以9结尾的女神信息

  DELETE FROM beauty WHERE phone LIKE '%9';

2.多表的删除

语法:

sql92语法:

  delete 要删除表的别名

  from 表1 别名,表2 别名

  where 连接条件

  and 筛选条件;

sql99语法:

  delete 要删除表的别名

  from 表1 别名

  [连接类型]   join 表2 别名 on 连接条件

  where 筛选条件;

例1.删除张无忌女朋友的信息

  DELETE beauty
  FROM beauty
  INNER JOIN boys
  ON beauty.boyfriend_id=boys.id
  WHERE boys.boyName = '张无忌';

例2.删除男神id=2的信息以及他女朋友的信息

  DELETE beauty,boys
  FROM beauty
  INNER JOIN boys
  ON beauty.boyfriend_id=boys.id
  WHERE boys.id = 2;

方式二:truncate (清空)(一删全删)

语法:truncate table 表名;   # 删除整个表

注:delete 删除列后,再插入数据,自增长列的值从断点开始,truncate 删除后,再插入数据,自增长列的值从1开始

  delete 删除后有返回值,truncate 删除后没有返回值

  delete 删除可以回滚,truncate 删除不能回滚

数据库MySQL--数据操作语言DML(插入、修改、删除)的更多相关文章

  1. mysql数据操作语言DML

    插入insert 插入方式1 语法: insert into 表名(列名,....) values(值1,....) 说明: 1.插入的值的类型要与列的类型一致或兼容 2.可以为null的值:①列写了 ...

  2. 数据操作语言DML与运算符

    数据操作语言DML(添加,修改,删除) 1.添加数据 insert into insert into 表名 (字段列表) values (值列表),值列表要和字段列表按顺序匹配. insert int ...

  3. 数据库-mysql数据操作

    一:mysql 数据的插入 语法 以下为向MySQL数据表插入数据通用的 INSERT INTO SQL语法: INSERT INTO table_name ( field1, field2,...f ...

  4. DML数据操作语言之增加,删除,更新

    1.数据的增加 数据的增加要用到insert语句  ,基本格式是: insert into <表名> (列名1,列名2,列名3,......) values (值1,值2,值3,..... ...

  5. mysql数据库-mysql数据定义语言DDL (Data Definition Language)归类(六)

    0x01 创建数据库并指定字符集和排序规则 -- 三种实例写法 create database temptab2 character set utf8 collate utf8_general_ci; ...

  6. ODPS SQL <for 数据操作语言DML>

    基本操作: 查询: SELECT [ALL | DISTINCT] select_expr, select_expr, ... FROM table_reference [WHERE where_co ...

  7. 26_ mysql数据操作语言:DELETE语句

    -- DELETE语句 -- 删除10部门中,工龄超过20年的员工记录 DELETE FROM t_emp WHERE deptno=10 AND DATEDIFF(NOW(),hiredate)/3 ...

  8. MySQL数据操作与查询笔记 • 【第3章 DDL 和 DML】

    全部章节   >>>> 本章目录 3.1 使用 DDL 定义数据库表结构 3.1.1 SQL 简介 3.1.2 维护数据库和创建数据表 3.2 使用 DDL 维护数据库表结构 ...

  9. SQL学习笔记四之MySQL数据操作

    阅读目录 一 介绍 二 插入数据INSERT 三 更新数据UPDATE 四 删除数据DELETE 五 查询数据SELECT 六 权限管理 一 介绍 MySQL数据操作: DML =========== ...

随机推荐

  1. 剑指offer——50最长不含重复字符和子字符串

    题目: 请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度.假设字符串中只包含’a~z”的字符.例如,在字符串“arabcacfr"中,最长的不含重复字符的子字符串 ...

  2. Java架构师必看的10本书

    1.大型网站系统与JAVA中间件实践 本书围绕大型网站和支撑大型网站架构的Java中间件的实践展开介绍. 从分布式系统的知识切入,让读者对分布式系统有基本的了解:然后介绍大型网站随着数据量.访问量增长 ...

  3. 关于py中lxml模块的cssselect的小问题

    今天在使用lxml进行解析页面的时候遇到了不能解析空格的问题,就是类似于: <div class="aa bb"></div> 使用cssselect('. ...

  4. 天道神诀--samba和NFS部署

    samba yum -y install samba samba-client rpm -qa |grep samba service smb start(445端口) service nmb sta ...

  5. Laravel 项目运行 phpunit 测试结果只显示点号

    在laravel 项目的根目录下,运行 phpunit 只显示 点号的情况 我尝试将 tests/Unit 和 tests/Feature 目录将 ExampleTest.php 文件删除,然后再运行 ...

  6. 记一次Mysql占用内存过高的优化过程

    一.环境说明: 操作系统:CentOS 6.5 x86_64 数据库:Mysql 5.6.22 服务器:阿里云VPS,32G Mem,0 swap 二.问题情况: 1.某日发现公司线上系统的Mysql ...

  7. C++ 短信验证码/通知 - 代码示例

    //接口类型:互亿无线触发短信接口,支持发送验证码短信.订单通知短信等. // ///////////////////账户注册:请通过该地址开通账户http://user.ihuyi.com/regi ...

  8. Dart编程循环

    有时,某些指令需要重复执行.循环是一种理想的方法.循环表示必须重复的一组指令.在循环的上下文中,重复被称为迭代 . 下图说明了循环的分类 让我们开始讨论确定循环.迭代次数是确定/固定的循环称为确定循环 ...

  9. thinkphp 储存驱动

    存储驱动完成了不同环境下面的文件存取操作,也是ThinkPHP支持分布式和云平台的基础. 默认的存储驱命名空间位于Think\Storage\Driver,每个存储驱动必须继承Think\Storag ...

  10. MetalLB自建私有Kubernetes的LoadBalancer负载均衡类型服务

    简介 在私有网络上运行 Kubernetes,和御三家相比,对 LoadBalancer 类型的服务的支持应该是众多表面差异中最醒目的一个了.类型为 LoadBalancer 的服务在 Kuberne ...