zoukankan      html  css  js  c++  java
  • MySQL数据库:第十四章:(DML)Data Manipulation Language数据操纵语言

    回退至Mysql数据库理论与实战

    #DML语句 ★

    Data Manipulation Language数据操纵语言
    关键字:insert 、update 、delete

    USE stu0906;
    CREATE TABLE stuinfo(
      id INT,
      stuname VARCHAR(20) NOT NULL,
      gender CHAR,
      borndate TIMESTAMP,
      seat INT
    );
    

    #一、插入

    语法:
    插入单行:
    insert into 表名(字段名,字段名,字段名…)
    values(值1,值2,值3…);
    插入多行:
    方式一:
    insert into 表名(字段名,字段名,字段名…)
    values(值1,值2,值3…),(值1,值2,值3…);
    方式二:
    特点:
    ①要求值和字段的类型、约束一致。(类型可以不完全一致,但一定要兼容)
    推荐:
    数值型不用引号
    日期型和字符型需要使用单引号
    ②非空字段必须显式的插入值。
    可以为空的字段,可以不用显式的插入值
    ③字段和值的个数必须一致
    ④字段列表可以省略,默认是所有字段

    SELECT * FROM stuinfo;
    #1.简单的插入

    INSERT INTO stuinfo(id,stuname,gender,borndate,seat)
     VALUES(1,'豪','女','1999-1-1',10);
    

    #2.非空字段必须显式的插入值。
    #可以为空的字段,可以不用显式的插入值
    #方式1:字段和值都省略

    INSERT INTO stuinfo(id,stuname,gender,borndate)
     VALUES(2,'龙','女','1999-1-1');
    

    #方式2:字段不省略,值填充为null

    INSERT INTO stuinfo(id,stuname,gender,borndate,seat)
     VALUES(3,'尼','女','1999-1-1',NULL);
    

    #3.字段和值的个数必须一致

     INSERT INTO stuinfo(id,stuname,gender,borndate,seat)
     VALUES(4,'好','女','1999-1-1',NULL);
    

    #4.字段列表可以省略,默认是所有字段

     INSERT INTO stuinfo
     VALUES(5,'读','男','1999-1-1');
    

    #5.插入多行

     #方式一:
     INSERT INTO stuinfo
     VALUES(6,'关','女','1996-1-1',9),(7,'圆','女','1979-1-1',11),(8,'红','女','1973-1-1',12);
     #方式二:支持的是子查询
      INSERT INTO stuinfo
      SELECT 9,'玲','女','1985-1-1',13 UNION ALL
      SELECT 10,'姗','女','1985-1-1',13 UNION ALL
      SELECT 11,'丹','女','1985-1-1',13 UNION ALL
      SELECT 12,'春','女','1985-1-1',13 
    

    #补充:设置自增长列

    DROP TABLE IF EXISTS stuinfo;
    CREATE TABLE stuinfo(
      id INT PRIMARY KEY AUTO_INCREMENT,
      stuname VARCHAR(20) NOT NULL,
      gender CHAR,
      borndate TIMESTAMP,
      seat INT
    );
    SELECT * FROM stuinfo;
      INSERT INTO stuinfo(stuname,gender,borndate,seat)
      SELECT '贾玲1','女','1985-1-1',13 UNION ALL
      SELECT '袁姗姗2','女','1985-1-1',13 UNION ALL
      SELECT '宋丹丹3','女','1985-1-1',13 UNION ALL
      SELECT '李宇春4','女','1985-1-1',13 
    

    #二、修改

    语法:
    单表修改:
    update 表名 set 字段名 = 新值,字段名=新值 where 条件
    多表修改:【了解】

    #修改单个字段
    UPDATE stuinfo SET stuname = ‘贾玲’ WHERE id = 1;
    #修改多个字段
    UPDATE stuinfo SET stuname = ‘袁姗姗’,borndate=‘1990-12-12’ WHERE id = 2;
    #多表修改
    #案例1:修改专业名是html的学员的座位号 =10,专业名改为网页
    #sql92

      UPDATE stuinfo s,major m
      SET s.seat = 10,m.`majorname`='网页'
      WHERE s.`majorid`=m.`id`
      AND m.`majorname`='html';
    

    #sql99【推荐】

      UPDATE stuinfo s
      JOIN major m ON s.`majorid`=m.`id`
      SET s.seat = 1,m.`majorname`='BigData'
      WHERE  m.`majorname`='大数据';
    

    #三、删除

    方式一:使用delete
    语法:
    单表删除:★
    delete from 表 where 条件;
    多表级联删除:【了解】
    sql92:
    delete 表1,表2 from 表1 别名,表2 别名 where 连接条件 and 筛选条件;
    sql99:思考
    方式二:使用truncate
    语法:truncate table 表

    #案例1:删除2018年出生 的用户信息
    DELETE FROM stuinfo WHERE YEAR(borndate) = 2018;
    #案例2:删除所有的用户信息
    DELETE FROM stuinfo;
    TRUNCATE TABLE stuinfo ;
    #多表级联删除
    #案例3:删除专业名是BigData的用户信息

      DELETE  s FROM stuinfo s,major m WHERE s.majorid = m.id AND m.majorname = 'BigData';
      SELECT * FROM stuinfo;
      SELECT * FROM major;
    

    #【面试题】delete和truncate的对比

    1.delete可以添加where条件
    truncate不可以添加where条件
    2.truncate效率较高
    3.delete删除后,返回受影响的行数
    truncate删除后,没有返回受影响的行数
    4.delete删除带自增长列的表,再插入时,自增长列的值从断点处开始新增
    truncate删除带自增长列的表,再插入时,自增长列的值从1开始新增
    5.delete支持事务的回滚
    truncate不支持事务的回滚
    6.delete属于DML
    truncate属于DDL

      SELECT * FROM major;
      INSERT INTO major(majorname)
      VALUES('java'),('BigData'),('Python');
      DELETE FROM major;
      TRUNCATE TABLE major;
    
  • 相关阅读:
    Android 11 的5个新安全和隐私功能,不更新会面临被黑客入侵风险
    SSL / TLS新加密漏洞,黑客是这样读取敏感数据,看看修复方法!
    蓝牙新漏洞,黑客可以轻松控制你的手机,全球数亿台设备受影响
    Visa信用卡漏洞,新的PIN验证黑客可绕过,并进行非接触式付款
    思科是如何遭黑客入侵?原因:XSS缺陷到RCE缺陷
    WhatsApp现神秘漏洞,黑客可远程查看聊天记录
    郭盛华:免受网络黑客攻击的5个技巧
    Apache服务器现3个致命漏洞,黑客可远程监听
    centos 下安装python3 的MySQLdb
    MySQL创建用户与授权及删除
  • 原文地址:https://www.cnblogs.com/javawxid/p/12812115.html
Copyright © 2011-2022 走看看