mysql学习

发布时间 2023-11-24 16:10:38作者: 子琳&me

mysql语法规范

  1. 不区分大小写,但建议关键字大写, 表名和列名小写
  2. 每条命令用英文的分号结尾
  3. 每条命令根据需要, 可以进行缩进或换行
  4. 注释
    单行: #注释文字
    单行注释: -- 注释文字(注意--后面必须有空格)
    多行注释: /*注释文字*/
  • 首先建立连接

Image description

  • 双击激活连接,并建立数据库

Image description

  • 使用utf8mp4编码,这里是指每个character占用4 bytes

Image description

  • 在新建的数据库中可以导入表了

Image description

  • 点击新建查询, 注意选择正确的数据库
    正常其实有use test的语句, 但是这是第三方软件所以没有g

Image description

SELECT运行的本质

  • 其实Mysql的SELECT语句可以理解为一种创造性的语句,比如select 100;就会出现列名和值都是100的表, 所以需要给列中的值增加东西时就可以利用这个特性,具体参考CONCAT()

基础查询语句

最简单的查询
  • 语法: SELECT 查询列表 FROM 表名;
    例1:
    SELECT date,price FROM table1;  # 可以多个列一起查
    
    注意, 如果列名和表名与关键字有重合时, 使用 ` 来区分
    可以选中某一行单独运行
查询字段重命名AS
  • 语法: SELECT 原名 AS 别名 FROM 表名;

  • 语法: SELECT 原名 别名 FROM 表名; # 注意有空格

    注意: 别名中包含特殊符号时, 要用双引号括起来。【例如空格,#号等】
    例:

    SELECT 商品编码 AS "product code" FROM \`销售表\`;
    
去重复DISTINCT
  • 语法: SELECT DISTINCT 字段 FROM 表名;
    例1:
    SELECT DISTINCT 店名 FROM 销售表;# 这样的结果每列不会重复
    
    例2:
    SELECT DISTINCT 大类编码, 小类名 FROM 商品表;
    
    DISTINCT的优先级比较高放在前面, 但是多个列中也会出现重复,不过是会选择第二个中出现过一次的。

Image description

字段连接CONCAT()
  • 语法: SELECT CONCAT(字段1, 字段2,...) AS 别名 FROM 表名;
    顾名思义, CONCAT()可以选择多个表的数据组合成为一列.
    例:
    SELECT CONCAT(商品编码,"\_") AS 商品编码 FROM 销售表;
    

Image description

字段值为空怎么填值
  • 使用IFNULL()函数
    例如:
    SELECT IFNULL(字段名,"替代值") AS 别名 FROM 表名;