mthoutai

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

MySQL编程基础

SQL语言概述

分类名称用途代表关键字
DDL (Data Definition Language)数据定义语言用来定义数据库、表及其它对象的结构CREATE、DROP、ALTER、TRUNCATE
DML (Data Manipulation Language)数据操作语言用来增加、修改、删除表中的数据INSERT、DELETE、UPDATE
DQL (Data Query Language)数据查询语言用来查询表中的数据SELECT、FROM、WHERE、ORDER BY 、GROUP BY、HAVING
DCL (Data Control Language)数据控制语言用来授予和收回权限GRANT、REVOKE
TCL (Transaction Control Language)事务处理语言用来对数据进行提交和回滚COMMIT、ROLLBACK

标识符命名规则

标识符用来命名一些对象,如数据库、表、列、变量等,以便在脚本中的其他地方引用。MySQL标识符里的合法字符如下:

  • 不加引号的标识符必须是由系统字符集中的字母和数字,再加上“_”和“$”字符组成。
  • 不加引号的标识符不允许完全由数字字符构成(因为这样难以和数值进行区分)。
  • 第一个字符可以是满足以上条件的任何一个字符(包括数字)。

说明:

MySQL关键词、列名、索引名、变量名、常量名、函数名、存储过程名等不区分大小写,但数据库名、表名、视图名则跟操作系统有关(Windows不区分、UNIX区分)。
以特殊字符@@、@开头的标识符一般用于系统变量和用户变量。
不符合规则的符号如果需要用于标识符,可以用反引号(``)括起来后使用。

由于MySQL标识符命名规则稍微有点繁琐,这里我们推荐使用万能命名规则:标识符由字母、数字或下划线(_)组成,且第一个字符必须是字母或下划线。

变量

变量是程序运行中可以改变值(状态)的命名存储区。变量存储数据值,并可在语句之间传递数据值。

MySQL变量分为:系统变量、用户变量、局部变量(仅在函数、存储过程、触发器等中使用)。

  • 分类

    • 系统变量

      • 介绍
        • MySQL系统变量是由MySQL系统本身创建,用于记录系统的各种设定值,可以直接使用。
          • 系统变量在MySQL服务器启动时被创建并初始化为默认值。
          • 用户只能使用系统预定义的系统变量,不能创建系统变量。
          • 多数系统变量名称以@@开头(为了兼容其他系统,也有部分使用时需要省略@@的)。
          • 输出系统变量使用SELECT语句,其语法格式如下:
            SELECT <系统变量名>[, …]
      • MySQL常用系统变量

      在这里插入图片描述

      • 示例

        • 示例一:

        在这里插入图片描述

        • 示例二:

        在这里插入图片描述

        • 示例三:

        在这里插入图片描述

    • 用户变量

      • 介绍

        MySQL用户变量是由用户创建、其作用域限制在用户连接(会话)中的变量。不同用户会话中的用户变量相互不受影响,用户变量必须以@开头。其语法格式如下:
        SET <@用户变量名> = <表达式>[, …]

      • 说明:

        • 用户变量通过SET语句以初始化的方式创建,用户变量的类型也是通过初始化自动分配(即用户变量无需使用DECLARE语句进行定义)。
        • <用户变量名>必须以@开头,并符合标识符的命名规则。
        • 用户变量定义并初始化或者赋值后,可以在需要时使用(引用)用户变量。
        • 输出用户变量使用SELECT语句,其语法格式如下:
          SELECT <@用户变量名>[, …]
      • 示例

        • 示例一:

        在这里插入图片描述

        • 示例二:

        在这里插入图片描述

    • 局部变量

      • 介绍:

      MySQL局部变量存在于函数、存储过程和触发器等中,由用户创建、且必须使用DECLARE语句定义后才能使用的变量。

      • 定义变量:

        使用DECLARE语句可以定义变量。其语法格式如下:

        DECLARE <变量名> [,] <数据类型> [DEFAULT 默认值]

        说明:可以同时定义多个变量,变量名之间用逗号隔开;也可以设置变量的默认值,如果没有设置,则默认值为

        示例:

        DECLARE myVar INT DEFAULT 10;
      • 给变量赋值

        使用SET语句可以给变量赋值。其语法格式如下:

        SET <变量名1> = <赋值表达式1> [, <变量名2> = <赋值表达式2> ,]

        说明:可以同时为多个变量赋值,各个变量的赋值语句之间用逗号隔开。

        示例:

        -- 为变量myVar赋值为30。
        SET myVar = 30;

运算符

算术运算符

  • 介绍

    • 算术运算符是MySQL中最常用的一类运算符。
    • 算术运算符主要包括:+、-、*、/、DIV、%或MOD。
      • /和DIV表示两个数相除求商,其中DIV是整除。
      • %或者MOD表示两个数相除求余数。
      • 算术运算符可以用于任何数字类型(整型、实数型)数的运算。
      • +、- 还可以用于日期时间型数的运算。
  • 示例

    • 示例一:

    在这里插入图片描述

    • 示例二:

    在这里插入图片描述

比较运算符

  • 介绍

    • 比较运算符是查询数据时最常用的一类运算符。SELECT语句中的条件语句经常要使用比较运算符。通过这些比较运算符,可以判断表中的哪些记录是符合条件的。
    • 比较运算符主要包括:=、<=>、!=或<>、>、>=、<、<=、IS NULL、IS NOT NULL、IN、NOT IN、LIKE、NOT LIKE、BETWEEN AND。
  • 示例:

    • 查询成绩表(soce),显示成绩小于60分的记录。

    在这里插入图片描述

逻辑运算符

  • 介绍:

    • 逻辑运算符用来判断表达式的真假。如果表达式是真,结果返回1。如果表达式是假,结果返回0。
    • 逻辑运算符是将多个逻辑量连接起来,构成更加复杂的条件。逻辑运算符主要包括:AND或&&、OR或||、NOT或!、XOR。
  • 示例

    • 示例一:查询学生表(student),显示“网络131”班级的所有男生信息。

    在这里插入图片描述

位运算符

  • 位运算符是在二进制数上进行计算的运算符。位运算会先将操作数变成二进制数,进行位运算。然后再将计算结果从二进制数变回十进制数。
  • 位运算符主要包括:&(按位与)、|(按位或)、~(按位取反)、^(按位异或)、<<(按位左移)、>>(按位右移)。

运算符的优先级

MySQL表达式中如果有多个运算符,则优先级高的运算符先运算;如果优先级相同,则按照从左到右的顺序进行运算。如果有小括号,则先计算括号中的内容。

在这里插入图片描述

练习

1)定义一个用户变量,其初始值为1000,查询商品表(product)中库存量超过该用户变量值的所有商品记录。

SET @myVar = 1000;
SELECT * FROM product WHERE stocks>@myVar

在这里插入图片描述

2)把订单表(orders)中“10004”订单的客户ID保存到一个用户变量中,然后查询这个客户的详细信息。

SET @myVar = (SELECT customerId FROM orders WHERE id='10004');
SELECT * FROM customer WHERE id=@myVar;

在这里插入图片描述

3)查询商品表(product),查询结果中需要包含一个计算字段“totalMoney”,该字段是由“商品单价”乘以“库存量”得来的。

SELECT *, price * stocks AS 'totalMoney' FROM product;

在这里插入图片描述

posted on 2025-11-06 16:04  mthoutai  阅读(9)  评论(0)    收藏  举报