mysql语法

94 阅读3分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第32天,点击查看活动详情

SQL语言

突然觉得应该系统地再去学一遍MySQL,从零开始.

SQL语言简介

SQL语言分为数据定义语言、数据控制语言、数据操作语言、数据查询语言,分别实现对数据库数据操作

SQL语言基础

  • 数据定义语言(DDL)
    • Data Definition Language
    • 用于定义和管理数据对象,包括数据库、数据表、函数、视图、索引、触发器等.例如: CREATE、DROP、ALTER等语句
  • 数据控制语言(DCL)
    • Data Control Language
    • 用来管理数据库的语言,包含授权用户访问、拒绝用户访问、撤销授予的权限.例如: GRANT、DENY、REVOKE、COMMIT、ROLLBACK等语句
  • 数据操作语言(DML)
    • Data Manipulation Language
    • 用于操作数据库对象中所包含的数据,增、删、改.例如: INSERT、DELETE、UPDATE语句
  • 数据查询语言(DQL)
    • Data Query Language
    • 用于查询数据库对象中所包含的数据,能够进行单表查询、连接查询、嵌套查询,以及集合查询等各种复杂程度不同的数据库查询,并将数据返回到客户机中显示

常量和变量

  • 常量
    • 字符常量
      • 字符串常量使用单引号或双引号
      • \n 换行
      • \’ 一个单引号
      • \” 一个双引号
      • \ 一个\ 如果没有转义字符 就认为\是一个转义字符
      • % 一个% 如果没有转义字符就认为这是一个通配符
      • _ 一个 如果没有转移字符 就认为是一个通配符
    • 数值常量
    • 布尔常量
  • 变量
    • 用户自定义变量使用@开始,使用set给变量赋值
  • 系统变量
    • 全局系统变量
      • 针对所有默认设置
    • 会话系统变量
      • 针对当前用户生效

运算符

  • 算术运算符
    • 加(+)、减(-)、乘()、除(/)、取模(%)
  • 比较运算符
    • 等于(=)、大于(>)、小于(<)、大于等于(>=)、小于等于(<=)、不等于(!=或<>)
  • 逻辑运算符
    • 与(and或&&)、或(or或||)、非(not或!)
  • 运算符优先级
    • 算术运算符优先级: 先乘除,后加减,括号优先
    • 逻辑运算符优先级: 先与操作,再或操作,括号优先

系统内置函数

  • 数学函数
    • ABS(x) : 返回x的绝对值
    • CEIL(x),CEILING(x) : 返回大于或等于x的最小整数(向上取整)
    • FLOOR(x) : 返回小于或等于x的最大整数(向下取整)
    • RAND() : 返回0~1的随机数
    • SIGN(x) : 返回x的符号(负数[-1]、正数[1]、0[0])
    • PI() : 返回圆周率
    • TRUNCATE(x,y) : 返回数值x保留到小数点后y位的值
    • POW(x,y),POWER(x,y) : 返回x的y次方
    • SQRT(x) : 返回x的平方根
    • EXP(x) : 返回自然常数e的x次方
  • 字符串函数
    • CHAR_LENGTH(s) : 返回字符串s的字符数
    • LENGTH(s) : 返回字符串s的占用的空间的大小
    • CONCAT(s1,s2,.....) : 将字符串s1,s2等多个字符串合并为一个字符串
    • CONCAT_WS(x,s1,s2,....) : 同COUCAT(s1,s2,.....),但是每个字符串之间要加上x
  • 日期和时间函数
    • NOW() : 获取系统当前日期和时间
    • unix_timestamp() : 将日期转为时间戳
  • 聚合函数
    • Count() : 统计满足条件的记录数量
    • Sum() : 统计总数

Avg() 求平均值 select avg(age) from s where email is not null Max() 求最大值 Min() 求最小值 select avg(age),MAX(age),MIN(age) from s

group_concat() 将满足条件的记录,显示成一行,使用逗号分开