• MySQL的DML和DQL 增删改查


    DML和DQL   增删改查

    SELECT * FROM grade

    --新增 insert

    -- 向年级表中新增3条数据
    INSERT INTO grade(gradeID,gradeName) VALUES(4,'4年级');
    INSERT INTO grade(gradeID,gradeName) VALUES(5,'5年级');
    INSERT INTO grade(gradeID,gradeName) VALUES(6,'6年级');

    -1.备份表:create table 新表(不存在) select * from 原表
    -2.追加数据:
    (一次性向表中走N条记录)
    insert into 被追加数据的表名(列) select 列 from 原表

    -- 删除 delect

    DELETE FROM grade WHERE gradeID>3;
    DELETE FROM grade WHERE gradeID=4 OR gradeID=5  OR gradeID=6;
    DELETE FROM grade WHERE gradeID IN (4,5,6);

    -- 同时插入多条数据  (oracle数据库不支持)
    INSERT INTO grade(gradeID,gradeName) 
    VALUES(4,'4年级'),(5,'5年级'),(6,'6年级');

    --修改 update

    -- 修改gradeID=1的年级名称为 one
    UPDATE  grade SET gradeName='one'
    WHERE gradeID=1

    -- delete 删除表中所有的数据
    DELETE FROM grade;

    delete 和 truncate的区别
    01.delete

    begin  (开启事务)
    select  * from  grade;(查询年级表中所有的数据) 
    delete  from  grade; (删除年级表中所有的数据)
    select  * from  grade;(查询年级表中所有的数据,没有数据) 
    rollback;  (事务回滚)
    select  * from  grade;(查询年级表中所有的数据,删除的数据恢复) 
    commit (提交事务)


    02.truncate

    begin  (开启事务)
    select  * from  grade;(查询年级表中所有的数据) 
    truncate table  grade; (删除年级表中所有的数据)
    select  * from  grade;(查询年级表中所有的数据,没有数据) 
    rollback;  (事务回滚)
    select  * from  grade;(查询年级表中所有的数据,没有数据) 
    commit (提交事务)


    区别:
      01.delete后面可以拼接where条件,删除指定的行!
         truncate只能删除表中所有的数据!不能有where!

      02.delete可以回滚,数据库可以恢复!(记录日志)
         truncate 不能事务混滚,数据不可以恢复!(不记录日志)

      03.truncate执行效率高! 
         delete执行效率低!   

      04.delete删除后自增列编号会接着上次最大值
         Truncate截断表:自增列编号从1开始


    查询

      将查询结果保存到 新表中!
     create table  newStudent
        (select stuName,address from  student)

      view (视图) :不占物理空间!

      使用 具体的列 代替 *

      select  * from  student;

      select  stuName,age ,address  from  student;


      使用别名

    SELECT gradeID AS 年级编号,gradeName  '年级 名称' FROM grade;

    格式
    01.  列名  AS  别名
    02.  列名   别名
    03.  如果别名中有特殊符号,必须把 别名用 单引号 引起来!


    查询年级表中 id不等于1的数据   <>    !=
    SELECT gradeID,gradeName 
    FROM grade
    WHERE gradeid <> 1


     
    +  必须是相同的数据类型,能转换成2进制的数据!
    如果有一个列是null  整体返回null! 

    我们通常使用 concat来做合并
    SELECT  CONCAT(loginPwd,',',studentNAME) AS  合并列 FROM STUDENT

    使用is null 的时候 要确保 查询的列 可以为空!

    null:
      01.标识  空值
      02.不是0,也不是空串""
      03.只能出现在定义 允许为null的字段
      04.只能使用is  null 或者is not null 进行比较!


    SELECT *  FROM student
    WHERE loginPwd  IS NULL


    -- 查询成绩表的总成绩
    SELECT  SUM(studentResult)  FROM result;
    -- 查询成绩的平均值
    SELECT  AVG(studentResult)  FROM result;
    -- 查询成绩的最高分
    SELECT  MAX(studentResult)  FROM result;
    -- 查询成绩的最低分
    SELECT  MIN(studentResult)  FROM result;
    -- 查询有成绩的总数
    SELECT  COUNT(studentResult)  FROM result;

    #修改表名
    ALTER TABLE 旧表名RENAME [TO] 新表名;
    #添加字段
    ALTER TABLE 表名ADD 字段名数据类型[属性];
    #修改字段
    ALTER TABLE 表名CHANGE 原字段名新字段名数据类型[属性];
    #删除字段
    ALTER TABLE 表名DROP 字段名;

  • 相关阅读:
    【Java学习笔记之二十一】抽象类在Java继承中的用法小结
    【Java学习笔记之二十】final关键字在Java继承中的用法小结
    【Java学习笔记之十九】super在Java继承中的用法小结
    【Java学习笔记之十八】Javadoc注释的用法
    【Java学习笔记之十七】Java中普通代码块,构造代码块,静态代码块区别及代码示例分析
    hdu 5310(贪心)
    poj3268 最短路
    poj1797 最短路
    poj2253 最短路
    poj2387 最短路
  • 原文地址:https://www.cnblogs.com/givemelove/p/8427034.html
走看看 - 开发者的网上家园