MySQL-day02

DML、DQL、基本查询、函数

一、DML—数据操作语言
  1. 插入记录

    • 插入单条数据记录

      INSERT INTO 表名 [(字段名列表)] VALUES (值列表);
      

      · 字段名可省略,若省略则依次插入所有字段值
      · 若插入表中部分数据,字段名不可省略
      · 自动增长列可以不输入,会自动生成序列;也可以输入指定值
      · 多个字段名和多个值之间用逗号隔开

    • 插入多条记录

      INSERT INTO 表名(字段名列表)
      VALUES(值列表1),(值列表2),……,(值列表n);
      
    • 将查询结果插入新表

      CREATE TABLE 新表(查询语句);
      

      若新表已存在则报错

  2. 删除记录

    DELETE FROM 表名 [WHERE条件];
    

    清空表

    TRUNCATE TABLE 表名;
    
    • TRUNCATE语句删除后将重置自增列,表结构及其字段、约束、索引保持不变,执行速度比DELETE语句快;
    • 因为 truncate 直接将表全部删除,然后重建表结构,所以快;
    • 有主外键的表不能清空。
  3. 修改记录

    UPDATE 表名
    SET 字段1=1,字段2=2,,字段n=值n
    [WHERE 条件];
    
二、DQL—数据查询语言
  1. 查询语法基本语法

    SELECT    <列名|表达式|函数|常量>
    [all | distinct]
    FROM      <表名>
    [WHERE    <查询条件表达式>]
    [ORDER BY <排序的列名>[ASCDESC]]
    [limit 起始位置 [, 行数]]
    
  2. 基本查询

    # 1.查询整张表
    SELECT * FROM 表名;
    # 2.查询部分列
    SELECT 字段名1,字段名2,....
    FROM 表名
    WHERE 条件;
    # 3. 别名:as 可加可不加,别名可不用引号括住,除非其中包含空格。
    SELECT name AS '姓名', sex 性别,    address '地址'
    FROM 表名
    WHERE 条件;
    # 4. 不可使用 + 拼接字符串,需使用字符串拼 接函数 concat
    SELECT name '姓名', CONCAT(`address`, `phone`) AS '联系方式'
    FROM 表名;
    # 5. 空行
    SELECT * FROM 表名
    WHERE 字段名 IS NULL;
    SELECT * FROM student
    WHERE 字段名 IS NOT NULL;
    
    # 6. 常量列
    SELECT name AS '姓名', sex 性别,    address '原籍 地址', '北京大学' AS '学校'
    FROM 表名
    
    # 7. 排序
    SELECT * FROM 表名
    ORDER BY 字段名 DESC;
    
    SELECT * FROM 表名
    ORDER BY 字段名1, 字段名2desc;
    
    # 8. limit 子句
    # 查询头 3 条记录
    SELECT * FROM 表名
    LIMIT 3;
    
    # 从第 3 条开始,查询 5 条记录
    SELECT * FROM 表名
    LIMIT 2, 5;
    
    # 9. distinct 在查询出的虚拟表中剔除重复记录
    # 查询每个学生都参加过那些科目的考试
    SELECT DISTINCT 字段名1, 字段名2 FROM 表名;
    
三、常用函数
  1. 聚合函数

    # 1. MAX():返回某字段的最大值
    SELECT MAX(字段名) FROM 表名 WHERE 条件;
    
    # 2. MIN():返回某字段的最小值
    SELECT MIN(字段名) FROM 表名 WHERE 条件;
    
    # 3. AVG():返回某字段的平均值
    AVG(字段名)  FROM 表名WHERE  条件;
    
    #4. SUM():返回某字段的总和
    SUM(字段名) FROM 表名WHERE  条件;
    
    # 5. COUNT():返回某字段的行数
    SELECT COUNT(0) FROM 表名;
    # COUNT(字段名):返回某字段的不为null的行数
    
  2. 字符串函数

    # 1. 字符串拼接
    SELECT CONCAT('Hello,', 'world');//Helloworld
    
    # 2. 字符串替换
    SELECT INSERT('知识就是力量', 5, 2, '金钱');//知识就是金钱
    
    # 3. 大小写转换
    SELECT UPPER('abc');//ABC
    SELECT LOWER('ABC');//abc
    
    # 4. 字符串截取
    SELECT SUBSTRING('知识就是力量', 5, 2);//力量
    
  3. 时间日期函数

     # 1. 获取当前日期
    SELECT CURDATE();
    
    # 2. 获取当前时间
    SELECT CURTIME();
    
     # 3. 获取当前日期时间
     SELECT NOW();
    
     # 4. 返回日期为一年中第几周
     SELECT WEEK('2021-01-14');
    
     # 5. 返回日期的年份
      SELECT YEAR('2021-01-14');
    
     # 6. 返回时间的小时
     SELECT HOUR('18:07');
    
    # 7. 返回时间的分钟
    SELECT MINUTE('18:07');
    
    # 8. 返回日期相差天数
    SELECT DATEDIFF('1997-7-23', '2017-4-18');
    
    # 9. 某日期增加 n 天数后是几号
    SELECT ADDDATE('2017-4-18', 100);
    
  4. 数学函数

     # 1. 返回大于等于 x 的最小整数
    SELECT CEIL(3.14);//4
    
    # 2. 返回小于等于 x 的最大整数
    SELECT FLOOR(3.14);//3
    
    # 3. 产生 0-1 的随机数
    SELECT RAND();
    
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值