第八章mysql语言结构

MySQL的语言结构.pdf MySQL语言结构 环境登录 shiyanlou 环境介绍 Ubuntu Linux环境,实验中会用到 : Linux命令行终端,打开后会进入Bash环境, Linux命令 及Opera:浏览器,可以用在需要前端界面的课程里, HTML/JS页面即可 立即下载

在这里插入图片描述
MySQL语言包括四部分:
数据定义语言(DDL)、数据操纵语言(DML)、数据控制语言(DCL)(详见第三章)
以及MySQL增加的语言元素:

  • 不是SQL标准所包含的内容,是为了用户编程的方便增加的语言元素。
  • 各个DBMS都会对SQL标准进行扩充,使SQL语言功能更强大。
  • MySQL中增加的语言元素有常量、变量、运算符、函数、流程控制语句和注释等。

常量和变量

常量

常量是指在程序运行过程中值保持不变的量。在MySQL中,常量的类型由它表示的值的数据类型决定。

常量类型示例
字符串常量'hello'、'abc#%'、"5hello! "
实数常量3.14、-3.14、15.3E5、0.3E-5
整数常量100、-100、0x1D(十六进制表示)
日期时间常量'2021-08-2 14:28:24:00'、'2021-08-2'、'14:28:24:00'
布尔值常量TRUE(数字值为“1”)、FALSE(数字值为“0”)
NULL值用来表示“无数据”,不同于空字符串和数字0

select 语句可以用来呈现变量和常量:

SELECT 'hello',"hello",500,true,'2023-5-4 10:18:40',null,'',0;

在这里插入图片描述

变量

变量是指在程序运行中值可以变的量,它是表达式中最基本的元素,可用于存储临时数据。
自定义变量的三个要素:变量名称、数据类型、取值
包括以下三类:

用户变量

  • 用户变量:带有前缀@,只能被定义它的用户使用,作用于当前整个连接
  • 当前连接断开后,所定义的用户变量会被全部释放。用户变量不用提前定义就可以直接使用。
  • 在使用前必须定义和初始化。如果变量没有初始化,变量的值为NULL。
set @user_variable1=expression1 [,@user_variable2= expression2 , ...];

例:

set @number=(select sno from s where sname='朱安琪');
select @number;
select * from sc where sno=@number;

局部变量

  • 局部变量:没有前缀,一般用于SQL语句块中,比如存储过程的BEGIN…END中。
  • 局部变量使用前需要先通过DECLARE声明。如没有声明,则初始值为NULL。
declare var_name [, var_name] ... type [default value];

系统变量

  • MySQL系统内部定义的变量,用于控制数据库的一些行为和方式的参数。
  • 系统变量以@@开头。
  • 系统变量包含全局变量和会话变量。
    • 全局变量由系统定义,会影响整个服务器,当MySQL服务器启动时,全局变量初始化为默认值,并且应用于每一个启动的会话。
    • 会话变量只影响个人客户端连接,在每一次建立一个新连接时,由MySQL服务器将当前所有全局变量复制一份给会话变量完成初始值。

查看全局变量的基本语法格式:

show global variables [like 'pattern'];
或
select @@global.system_variable;

例如:

--查询包含version字样的全局变量的值。
show global variables like '%version%';

--查询指定全局变量的值。
select @@global.sort_buffer_size;

查看会话变量的基本语法格式:

show session|local variables [like 'pattern'];
或
select @@session|local.system_variable;

例如:

--查看会话变量sql_warnings,将其值修改为相反的值后,再次查看该会话变量。
show session variables like 'sql_warnings';
set @@session.sql_warnings =1;
-- 等价于
set session sql_warnings =1;
select @@session.sql_warnings;

运算符与表达式

  • 运算符是用来连接表达式中各个操作数据的符号,用来指明对操作数据所进行的运算。
  • 运用运算符可以更加灵活地对表中的数据进行计算和查询。

运算符

算术运算符

运算符说明举例结果
+加法,返回相加后的值7 + 512
-减法,返回相减后的值7 - 52
*乘法,返回相乘后的值7 * 535
/除法,返回相除后的值7 / 51.4
div取整,返回相除后的商的整数部分7 div 51
%, mod求余,返回相除后的余数7 % 5 或 7 mod 52

比较运算符

  • 关系运算符,比较结果为真,则返回1,为假则返回0,结果不确定则返回NULL。
运算符说明举例结果
=等于7 = 50
<=>完全等于(相等或都等于空)null <=> null1
<> 或 !=不等于7 != 51
>大于7 > 51
>=大于或等于7 >= 51
<小于7 < 50
<=小于或等于7 <= 50
in在集合中5 in (5, 7)1
not in不在集合中5 not in (5, 7)0
is null为空5 is null0
is not null不为空5 is not null1
between在两者之间5 between 5 and 71
not between不在两者之间5 not between 5 and 70
like字符串匹配,包含通配符“%” 和“_”‘hello’ like ‘%e%’1
regexp 或 rlike正则表达式匹配‘a00’ regexp ‘.00’1
least返回最小值Least(5, 6, 7)5
greatest返回最大值Greatest(5, 6, 7)7

逻辑运算符

  • 逻辑运算也称为布尔运算,在MySQL中,所有逻辑表达式的结果均为true、false或null,分别显示为1、0、null。
运算符说明举例结果
not 或 !逻辑非(假变真,真变假)Not(7 = 5)1
and 或 &&逻辑与(所有为真则为真)(7 < 5) and (5 < 7)0
or 或 ||逻辑或(一真则为真)(7 < 5) or (5 < 7)1
xor逻辑异或(一真一假则为真)(7 < 5) xor (5 < 7)1

位运算符

  • 位运算在两个表达式之间执行二进制位操作,这两个表达式的类型可为整型或与整型兼容的数据类型。
运算符说明举例结果
&位and5 & 75
|位or5 | 77
^位xor5 ^ 72
~位取反~518446744073709551610
>>位右移64 >> 132
<<位左移64 << 1128

运算符的优先级

运算符优先级运算符优先级
!1|(位或)8
-(负)、~(位取反)2=、<=>、>=、>、<=、<、<>、!=、is、like、regexp、in9
^(位异或)3between10
*(乘)、/(除)、%(模)4not11
+(加)、-(减)5and12
<<、>>6or、xor、any、some13
&(位与)7=(赋值运算符)、:=14

表达式

  • 表达式就是常量、变量、列名、复杂计算、运算符和函数的组合。
  • 一个表达式通常可以得到一个值。与常量和变量一样,表达式的值具有某种数据类型,可能的数据类型有字符型、数值型、日期时间型。
  • 表达式一般用在select语句及select语句的where子句中。
--字符型表达式,例如: 
concat( 'hello','', 'tsguas')
--数值型表达式,例如: 
2+3
2*3
--日期型表达式,例如: 
'2021-01-01'+ interval 5 month

函数(暂略)

程序流程控制

  • 流程控制语句是指可以控制程序运行顺序的指令,程序运行顺序主要包括顺序执行、条件执行和循环执行。
  • MySQL支持的流程控制语句包括if语句、case语句、loop语句、leave语句(跳出整个循环)、iterate语句(跳出本次循环)、repeat语句和while语句等。
  • 流程控制语句主要用在存储过程体中。

IF语句:
IF实现条件判断,语句中可以包含多个判断条件,系统会根据条件的结果是否为TRUE执行相应的操作。

if 判断条件 then 执行语句
	[elseif 判断条件 then 执行语句]
	...
	[else 执行语句]
end if;

case语句:

--格式1
case 变量
    when 值1 then result1
    when 值2 then result2
   ...
    when 值n then resultn
    else result
end;
--格式2
CASE
    WHEN 条件1 THEN result1
    WHEN 条件2 THEN result2
    ...
    ELSE default_result
END

repeat语句:
repeat语句可以实现有条件控制的循环语句

repeat
	执行语句 
	until 停止条件
end repeat;

while语句:
while语句同样可以实现一个带条件判断的循环结构

while 循环条件(满足则循环) do
	执行语句组
end while;

Begin…end语句:
begin…end语句的用途是将多条mysql语句包含起来,形成语句集合,常用于存储过程中。

begin
      执行语句组
end;

Declare语句:
Declare语句用来声明存储过程中临时定义的局部变量、游标等。
Declare语句只能出现在begin…end语句的开头位置,且必须先于任何其它语句。

begin
  declare var_name[,var_name] … type[ default value]    
  statement list
end;

Select…into语句:
Select…into语句是select语句的扩展,功能为将查询得到的结果保存在变量中。仅适用于查询结果为一行元组,查询结果为多行元组或0行元组都会出错。

select 列名1, 列名2, ...
into var_list
from 表名|视图名
where  条件表达式 ;
解锁 STP 与 SOLIDWORKS 转换密码:工具及迪威在线转换秘籍 STP 文件能够完整地记录 3D 模型的几何形状、尺寸、公差、材料属性等丰富信息,无论是简单的机械零件,还是复杂的装配体,都能精准呈现。而在线转换以迪威模型为例,凭借便捷性、高效性和安全性,为广大 3D 专业技术人员和学生党在无需安装额外软件的情况下,轻松实现格式转换提供了有力支持。在实际工作和学习中,可根据自身具体情况灵活选择合适的转换方式,以确保 3D 设计工作流程的顺畅进行,让创意在不同格式间自由流动并绽放光彩。在 3D 设计与建模的广袤世界里,不同格式文件间的转换常常是连接创意与实现的关键桥梁。 阅读详情

相关推荐

暗黑破坏神2重制版 mod制作教程(一)

暗黑2重制版mod修改教程

hhhh2312的博客 7450

MySQL之数据库编程(了解语言结构)

大多数的系统变量应用于其他SQL语句中时,必须在名称前加两个@符号,而为了与其他SQL产品保持一致,某些特定的系统变量是要省略这两个@符号的,如CURRENT_DATE(系统日期)、CURRENT_TIME(系统时间)、CURRENT_TIMESTAMP(系统日期和时间)和CURRENT_USER(SQL用户的名字)。与常量和变量一样,表达式的值也具有某种数据类型,可能的数据类型有字符类型、数值类型、日期时间类型,这样,根据表达式值的类型,表达式可分为字符型表达式、数值型表达式和日期表达式。......

遇安的博客 3826

从零开始搭建Proxmox VE虚拟化网络:手把手教你配置桥接、VLAN和链路聚合

本文详细介绍了如何在Proxmox VE虚拟化环境中配置桥接、VLAN和链路聚合网络。通过分步指南和实战案例,帮助用户掌握Linux Bridge、VLAN隔离和Bonding技术,构建高性能、高可用的企业级虚拟化网络架构。

wind6的博客 976

MySQL 语言结构

一、文字值1.字符串 单引号或双引号 如果SQL服务器模式启用了NSI_QUOTES,可以只用单引号引用字符串,此时用双引号引用的字符串被解释为一个识别符。介绍字符_charset_name(可选)和COLLATE子句:[_charset_name]'string'[COLLATE collation_name]例如:SELECT _latin1'string'; SELECT _latin1'

Fangxingt的博客 1371

华为海思IC前端中后端(COT&XPU)岗位笔试机考题

华为海思COT和XPU部门IC前端,IC中端,IC后端岗位笔试真题分享

weixin_37584728的博客 3361

YOLOv8改进 | Conv篇 | 轻量级下采样方法ContextGuided(大幅度涨点)

ContextGuided通过创新的局部-全局协同机制,解决了传统下采样方法中细节丢失与上下文缺失的核心痛点。实验证明其在YOLOv8上可实现最高2.6%的mAP提升,且计算开销增加不足5%。这种即插即用的设计为实时目标检测系统提供了新的优化方向。创新启示:轻量化不代表简单裁剪,智能信息融合才是未来方向!下一步探索与Transformer结合构建混合架构多尺度上下文融合机制3D点云中的扩展应用资源获取完整训练代码:[GitHub链接]预训练模型:[Google Drive链接]讨论话题。

QQ_778132974的博客 289

数据库系统(五)---MySQL基础

一、SQL基本概念:   SQL 已经成为关系数据库的标准语言,是一种数据库查询和程序设计语言,用 于存取数据以及查询、更新和管理关系数据库系统。 功能不仅仅是查询,还包括数据定义、数据操纵和数据控制等于数据库有关的 一系列功能。   四大功能:数据查询、数据定义、数据操纵和数据控制。   1)嵌入式和动态 SQL 规则 规定了 SQL 语句在高级程序设计语言中使用的规范方法,以便适应较为复杂的 应用。   2)SQL 调用和会话规则 调用包括 SQL 例程和调用规则,以便提高 SQL 的灵活...

Unknowncheats的博客 379

华为自研 ERP、Oracle EBS 与 SAP 上线时系统配置思路设计差异深度分析

本文对比分析了华为自研ERP、Oracle EBS和SAP S/4HANA三大ERP系统在上线配置思路上的核心差异。从架构设计看,华为采用分布式微服务架构,SAP采用分层服务架构,Oracle采用集中式一体化架构;在模块配置上,华为以业务场景为导向,SAP基于行业模板,Oracle强调模块独立性;数据迁移方面,华为侧重业务规则清洗,SAP注重数据质量监控,Oracle依赖标准化工具;流程适配上,华为系统随流程调整,SAP在框架内优化,Oracle需定制开发;定制开发模式差异明显,华为采用插件化扩展,SAP使

金牌架构师 1451

mysql语言结构_进阶篇 - MySQL 语言结构

MySQL 语言结构1、文字值:字符串,数值型,日期类型,十六进制,布尔值,位域,NULL值转义字符十六进制值的默认类型是字符串。如果想要确保该值能作为数字处理,可以使用CAST(...AS UNSIGNED),HEX()函数将一个字符串或数字转换为十六进制格式的字符串。b'value'符号表达位域型。value是一个用0和1写成的二进制值。用LOAD DATA INFILE或SELECT ......

weixin_34221384的博客 296

【2024遥感应用组一等奖】基于风云四号卫星的小时级大气气溶胶和颗粒物监测

最后,比较AGRI观测反射率和查找表计算的反射率反演得到的1小时分辨率AOD数据。然后,使用广泛应用的MODIS DT和DB产品进行对比,图 5显示了它们逐像元尺度的对比,AGRI LaGA算法可以捕捉亚洲地区AOD高低值空间分布格局,比如南亚次大陆、中南半岛、塔克拉玛干沙漠和华北平原是AOD高值区域(平均AOD高于0.3),中国西北、中国南方、中国东北和韩国地区为AOD中值地区(平均AOD在0.2到0.3之间),北纬45度以上以及日本地区为AOD低值区域(平均AOD小于0.2),与全球平均AOD值接近。

JData_Engineer的博客 373

信创服务器(麒麟 V10 SP3)安装 NVIDIA GeForce RTX 5070 驱动

本文介绍了在麒麟V10 SP3系统上安装NVIDIA RTX 5070显卡驱动的详细步骤。首先需要关闭nouveau驱动,安装必要的编译环境和工具,确保内核版本与kernel-devel完全一致。最后运行NVIDIA驱动安装程序,关键选择包括启用DKMS支持、编译模块、禁用32位兼容和nouveau驱动。整个流程适用于海光CPU和Blackwell架构GPU的国产操作系统环境。

猿小白的博客 670

MySQL三大语言结构和数据类型

数据类型参考:https://blog.youkuaiyun.com/sinat_38263559/article/details/73658535 一、DDL(Data Definition Language):数据库定义语言 比如创建、修改或删除数据库对象,包括如下SQL语句:created,alter,drop 1、CREATE TABLE:创建数据库表 2、ALTER  TABLE:更改表结构...

回家养老 1199

MySQL 第八章 SQL结构化查询语言

通过选择不同的技术,你能够获得颜外的速度或者功能,从而改善你的应用的整体功能。3.decimal示例:decimal(7,2)M=7(包含整教部分和小数部分,小数点也要算作1位)D=2小数点后数字的位数如某一商品的价格是¥1234.56。insert into user(name,birthday,phone,age)values('老王','1954-10-5','13012345。1.float 示例:foat(5,2)范围(-999,99,999.99)子的长度、物理测理的度量值。

2302_78924101的博客 799

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

mysql第八章_第八章 MySQL

理解数据库安装1一般Linux 发行版都有预编译包,没有的话可以安装社区标准包。注意在正规使用场合不要使用debug包,应为额外的调试支持会降低软件的性能2为了开发MySQL应用程序,需要安装MySQL服务器和MySQL开发库mysql 在安装时会创建 "root", 该用户是MySQL服务器守护进程运行时所使用的默认用户名3检查MySQL服务器是否正在运行ps -el | grep mysqld...

weixin_28273593的博客 312

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

第八章 SQL结构化查询语言

insert into user(name,birthday,phone,age)values('老王','1954-10-5','13012345。insert into user values(1000,老张','1964-10-7',13112345678,60);insert into user values(0,老李','1974-10-7',13212345678,50);1.float 示例:foat(5,2)范围(-999,99,999.99)子的长度、物理测理的度量值。

2201_75321838的博客 801

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

第八章、SQL的结构化查询

MySQL中的数据用各种不同的技术存储在文件(或者内存)中。主键:primary key 在一个表中至少应该有这样一个字段,这个字段所对应的值一不能有重复,二不能为空,这个字段所对应的值能够起到唯一标识表中每一条记录的作用。在一个表中至少应该有这样一个字段,这个字段所对应的值一不能有重复,二不能有空间,它能够起到唯一标识表中记录的作用。●foreign key外键:在一个表中某一个字段它不是当前这个表的主关键字,但是它却是另外一个表的主关键,我们在当前这个表,把此字段称为是当前表的外部关键字。

l030803xy的博客 1622

【无标题】第八章 SQL结构化查询语言

insert into user values (1000,•老张,1964-10-7',13112345678,60);insert into user(name,birthday,phone,age)values(老王',1954-10-5',13012345678',70);这个表的主关键字,但是它却是另外一个表的主关键,我们在当前这个表,把此字段称为是当前表的外部关键字。这些技术中的每一种技术都使用不同的存。insert inteo user values(0,老李','1974-10-7”,

2401_87567302的博客 545

第八章 sql结构化查询语言

- 存储引擎 字符集。1.tinyint 示例:性别 男1女0 数据类型选择tinyint 2.decimal 示例:价格 与财务有关的字段设置为该类型3.mediumint 示例:博客访问数设置为该类型 4.int 示例:员工的编号、学生学号设置为该类型 5.blgInt 示例:网站访问数设置为该类型 小数 1.float 示例:foat(5,2)范围(-999,99,999.99)子的长度、物理测理的度量值 2.double 示例:误差比float低 科学计算、物理测量的值 3.decimal。

l18734310165的博客 460

linux程序设计——使用C语言访问MySQL(第八章)

8.3    使用C语言访问MySQL数据 Windows本地程序(如Access)可以通过ODBC驱动程序来访问MySQL,甚至有针对linuxODBC驱动程序。 下面讨论使用C语言来访问MySQL. 8.3.1 连接例程 用C语言连接MySQL数据库包含两个步骤: 1.初始化一个连接句柄结构 2.实际进行连接 首先,使用mysql_init来初始化连接句柄: #include

yiranant的专栏 768

Mysql数据库原理与应用第八章

主键:primary key 在一个表中至少应该有这样一个字段,这个字段所对应的值一不能有重复,二不能为空,这个字段所对应的值能够起到唯一标识表中每一条记录的作用。R: retrieve/read获取数据/读取数据.U: update/alter更新数据/修改数据·D:delete/drop删除数据。CREATE TABLE table_name ( -- table_name 表名 特别说明:数据库名、表名都应该有一意义。·SQL可以在数据库创建存储过程 SQL可以在数据库中创建视图。

2401_87883125的博客 360
上一篇: 第3章 关系数据库标准语言SQL
下一篇: Python第三方库安装常用策略
zhanghongyi_cpp
博客等级 码龄4年 2458粉丝 413原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值