• mysql-7补充内容


    7.补充内容

    1.insert

    1.语句语法
    insert into 表名(字段1,字段2,字段3)values(值1,值2,值3);
    insert into 表名(字段1,字段2,字段3)values(值1,值2,值3),(值4,值5,值6),(值7,值8,值9);
    insert into 表名(字段1,字段2)select 字段1,字段2 from 表2;
    
    2.注意:
    • 注意:字段不需要使用引号,值需要带上;字段名和值要一一对应,数据类型需一致
    • insert语句但凡执行成功了,那么必然会多一条记录,没有给其他字段指定值的话,默认值为null
    • insert into 表名(),括号中的字段名省略,则表示insert所有
    3.insert 日期
    • str_to_date 将字符串varchar类型转换成date类型

    • 应用:str_to_date('字符串日期','日期格式')

      日期格式

      %Y年(%y取后两位)     %m 月      %d 日      %h 时       %i 分      %s 秒
      str_to_date('字符串',date)
      
      -- error
      insert into  user(id,name,birth) values(1,'zhangsan','01-10-1990');
      出错了:原因类型不匹配,这里birth 是date类型,传入了一个字符串varchar
      可以是str_to_date转换
      
      -- 正确用法
      insert into  user(id,name,birth) values(1,'zhangsan',str_to_date('01-10-1990','%d-%m-%Y')
      -- 或者是正确的时间格式 如:1990-10-10
      insert into user(id,name,birth) values(2,'lisi','1990-10-10')
      
    • date_format:将date 类型转换成具有一定格式的varchar字符串类型;

    • 应用:date_format 可以将日期类型转换成特定格式的字符串(查询时以特定的格式展示)

      mysql默认短日期格式:%Y-%m-%d
      mysql默认长日期格式:%Y-%m-%d %h:%i:%s
      
      select id,name,data_format(birth,'%m/%d/%Y') as birth from  t_user
      

      未使用date_format时会进行默认的日期格式化,自动将数据库中的date类型 转换成 varchar类型,并且使用默认的格式 如:1990-10-10

    • 获取当前时间

      select now()        -- 2020-12-07 11:01:22
      
      SELECT LOCALTIME()  -- 2020-12-07 11:03:45
      
      select current_time  -- 11:01:22
      
      select current_date  --2020-12-07
      
      
      -- 对应函数获取
      set @dt = '2008-09-10 07:15:30.123456';
      
      select date(@dt); -- 2008-09-10
      select time(@dt); -- 07:15:30.123456
      select year(@dt); -- 2008
      select quarter(@dt); -- 3
      select month(@dt); -- 9
      select week(@dt); -- 36
      select day(@dt); -- 10
      select hour(@dt); -- 7
      select minute(@dt); -- 15
      select second(@dt); -- 30
      select microsecond(@dt); -- 123456
      

    2.update更新数据

    update 表名 set 字段名1=值1,字段名2 =值2,字段3=值3..... where 条件;

    • 注意这里没有where条件会更新所有数据

    3.delete 删除数据

    delete from 表名 where 条件

    delete from 表名 删除所有

    4.快速建表(

    复制表
    • 将一个查询结果当做一张新建表

    • 可以完成表的快速复制

      create table emp2 as (select *  from emp);
      

    5.快速删除表中的数据

    delete from 表名 (DML语句)

    • 表中数据被删除,空间不释放

    • 删除效率比较低

    • 可回滚

    快速删除: truncate table 表名(DDL语句)

    • 删除效率高

    • 不可回滚

    6.子查询与内连接的应用

    查询和“李军”同性别的所有同学的Sname.

     子查询:
     SELECT  sname FROM students WHERE ssex=(SELECT ssex FROM students  WHERE sname='李军');
     内连接:
     SELECT s1.Sname FROM Students AS s1 INNER JOIN Students AS s2 ON(s1.Ssex=s2.Ssex)  WHERE s2.Sname='李军';
    
  • 相关阅读:
    kafka概念使用简介注意点
    spring boot整合log4j2
    postgresql和oracle数据库对比
    postgresql数据操作
    Django缓存序列化信号
    Django补充
    Git学习
    JavaScript语法和类型
    Django分页
    Vue:配置组件
  • 原文地址:https://www.cnblogs.com/yescarf/p/14097656.html
Copyright © 2020-2023  润新知