MySQL从入门到精通二

第1章:MySQL基础

1.1运算符

1.1.1 算术运算符

算术运算符是MySQL中最常用的一类运算符。MySQL支持的算术运算符包括加、减、乘、除、求余。

算术运算符
符号作用符号作用
+加法运算%求余运算
-减法运算DIV除法运算
*乘法运算MOD求余运算,返回余数
/除法运算

加(+)、减(-)和乘(*)可以同时运算多个操作数。除号(/)和求余运算符(%)也可以同时计算多个操作数,但不建议使用。DIV和MOD这两个运算符只有两个参数。进行除法和求余的运算时,如果x2参数是0,计算结果将是空值(NULL)。

1.1.2 比较运算符

比较运算符是查询数据时最常用的一类运算符。SELECT语句中的条件语句经常使用比较运算符。比较运算符可以用于判断表中的哪些记录是符合条件的。比较运算符的符号、名称和应用示例如下表所示。

比较运算符
符号名称示例符号名称示例
=等于id=5is not nulln/aid is not null
>大于id>5between andn/aid between 1 and 15
<小于id<5inn/aid in (3,4,5)
>=大于或等于id>=5not inn/aname not in (shi,li)
<=小于或等于id<=5like匹配模式name like ('shi%')
!=或<>不等于id!=5not like匹配模式name not like ('shi%')
is nulln/aid IS NULLregexp常规表达式name 正规表达式

下面对几种较常用的比较运算符进行详解

1、运算符"="

"="用来判断数字、字符串和表达式等是否相等。如果相等,返回1;否则,返回0。

在使用运算符"="判断两个字符是否相同时,数据库系统是根据字符的ASCII码进行判断的。如果ASCII码相等,则表示这两个字符相同;如果ASCII码不相等,则表示两个字符不同。切记空值(NULL)不能使用“=”来判断。

2、运算符"<>"和"!="

"<>"和"!="用来判断数字、字符串、表达式是否不相等。如果不相等,则返回1,否则,返回0。这两个符号也不能用来判断空值(NULL)。

3、运算符">"

">"用来判断左边的操作数是否大于右边的操作数。如果大于,返回1;否则,返回0。同样,空值(NULL)不能使用“>”来判断。

4、运算符IS NULL

IS NULL用来判断操作数是否为空值(NULL)。操作数为NULL时,结果返回1;否则,返回0。IS NOT NULL刚好与IS NULL相反。

“=”、“<>”、“!=”、“>”、“>=”、“<”、“<=”等运算符都不能用来判断空值(NULL)。一旦使用,结果就会返回NULL。如果要判断一个值是否为空值,可以使用“<=>”、IS NULL和IS NOT NULL。

5、运算符BETWEEN AND

BETWEEN AND用于判断数据是否在某个取值返回内,其表达式如下。

x1 BETWEEN m AND n

如果x1大于或等于m,且小于或等于n,结果将返回1;否则,将返回0。

6、运算符IN

IN用于判断数据是否在某个集合中,其表达式如下。

x1 IN(值1,值2,值3,...,值n)

如果x1等于值1到值n中的任何一个值,则结果将返回1;否则,结果将返回0。

7、运算符LIKE

LIKE用来匹配字符串,其表达式如下。

x1 LIKE s1

如果x1与字符串s1匹配,结果将返回1;否则,返回0。

8、运算符REGEXP

REGEXP同样用于匹配字符串,但其使用的是正则表达式进行匹配,其表达式如下。

1.1.3 逻辑运算符

逻辑运算符用来判断表达式的真假。如果表达式是真,则结果返回1;如果表达式是假,则结果返回0。逻辑运算符又称为布尔运算符。MySQL中支持4种逻辑运算符,分别是与、或、非和异或。

逻辑运算符
符号作用符号作用
&&或AND!或NOT
||或ORXOR异或

1、与运算

'&&'或'AND'是与运算的两种表达方式。如果所有数据不为0且不为空值,结果返回1;如果存在任何一个数据为0,则结果返回0;如果存在一个数据为NULL且没有数据为0,则结果返回NULL。与运算符支持多个数据同时进行运算。

2、或运算

“||”或者“OR”表示或运算。如果数据中存在任何一个数据为非0的数字,则结果返回1;如果数据中不包含非0的数字,但包含NULL,则结果返回NULL;如果操作数中有0,则结果返回0。或运算符也可以同时操作多个数据。

3、非运算

“!”或者“NOT”表示非运算。非运算对操作数据进行按位取反,并返回与操作数据相反的操作。如果操作数据是非0数字,则结果返回0;如果操作数据是0,则结果返回1;如果操作数据是NULL,则结果返回NULL。

4、异或运算

XOR表示异或运算。只要其中任何一个操作数据为NULL,结果就返回NULL;如果两个操作数都是非0值,或者都是0,则结果返回0;如果一个为0,另一个为非0值,则结果返回1。

1.1.4 运算符的优先级

由于在实际应用中可能需要同时使用多个运算符,因此必须考虑运算符的运算顺序。

MySQL运算符使用的优先级,按照从高到低、从左到右的级别进行运算操作。

MySQL运算符的优先级
优先级运算符
1!
2~
3^
4*,/,DIV,%,MOD
5+、-
6>>,<<
7&
8|
9=,<=>,<,<=,>,>=,!=,<>,IN,IS,NULL,LIKE,REGERXP
10BETWEEN AND,CASE,WHEN,THEN,ELSE
11NOT
12&&,AND
13||,OR,XOR
14:=

第2章:表数据的增、删、改操作

2.1.1 使用INSERT...VALUES语句插入数据

INSERT...VALUES语句是INSERT语句最常用的语法格式。使用INSERT语句插入数据,语法格式如下

1、插入一条完整数据

(1) 在编写SQL语句之前,先查看数据表tb_admin的结构,具体代码如下

DESC db_database08.tb_admin;

(2) 编写SQL语句,先选择数据表所在的数据库,然后应用INSERT...VALUES语句实现向数据表td-admin插入一条完整的数据,具体代码如下。

USE db_database08;

INSERT INTO tb_admin VALUES(1,'mr','mrsoft','2014-09-05 10:25:20');

(3) 使用SELECT * FROM tb_admin语句来查看数据表tb_admin中的数据,具体代码如下

SELECT * FROM tb_admin;

2、插入数据记录的一部分

(1) 编写SQL语句,先选择数据表所在的数据库,然后应用INSERT..VALUES语句实现向数据表tb_admin中插入一条记录,只包括user和password字段的值,具体代码如下。

USE db_database08;

INSERT INTO tb_admin(user,password)

VALUES('rjkflm','111');

(2)使用SELECT * FROM tb_admin语句来查看数据表tb_admin中的数据,具体代码如下

SELECT * FROM tb_admin;

因为在设计数据表时,将id字段设置为自动编号,所以即使没有指定id的值,MySQL也会自动为它填上相应的编号。

3、插入多条记录

(1) 编写SQL语句,先选择数据表所在的数据库,然后应用INSERT...VALUES语句来实现向数据表tb_admin中插入3条记录,每条记录都只包括user、password和createtime字段的值,具体代码如下。

USE db_database08;

INSERT INTO tb_admin(user,password,createtime)

VALUES ('mrbccd','111','2014-09-05 10:32:26'),

('mrbccd','111','2014-09-05 10:32:26'),

('mrbccd','111','2014-09-05 10:32:26');

(2) 使用SELECT * FROM tb_admin语句来查看数据表tb_admin中的数据,具体代码如下。

SELECT * FROM tb_admin;

2.1.2 使用INSERT..SET语句插入数据

(1) 编写SQL语句,先选择数据表所在的数据库,然后应用INSERT...SET语句实现向数据表tb_admin中插入一条记录,该条记录中包括user、password和createtime字段的值,具体代码如下。

USE db_database08;

INSERT INTO tb_admin

SET user='mrbccd',password='111',createtime='2014-09-06 10:32:26';

(2) 使用SELECT * FROM tb_admin语句来查看数据表tb_admin中的数据,具体代码如下

SELECT * FROM tb_admin;

2.1.3 使用INSERT...SELECT语句插入查询结果

(1) 查看数据表tb_mrbook的结构

DESC db_database08.tb_mrbook;

(2) 查询数据表tb_mrbook中的数据,具体代码如下

SELECT * FROM tb_mrbook;

(3) 编写SQL语句,实现从数据表tb_mrbook中查询user和pass字段的值,并将其插入数据表tb_admin中,具体代码如下

INSERT INTO db_database08.tb_admin

         (user,password)

         SELECT user,pass FROM tb_mrbook

(4) 使用SELECT语句来查看数据表tb-admin中的数据,具体代码如下

SELECT * FROM tb_database08.tb_admin;

2.2 修改数据

(1) 编写SQL语句修改用户名为mrbccd的管理员密码为123,具体代码如下

UPDATE db_database08.tb_admin SET password='123' WHERE user='mrbccd';

更新时一定要保证WHERE子句的正确性,一旦WHERE子句出错,就会破坏所有改变的数据。

(2) 查看修改的数据库中的内容,代码如下

SELECT * FROM db_database08.tb-admin WHERE user='mrbccd';

 第3章:数据查询

3.1 基本查询语句

SELECT语句基本语法如下

select selection_list

from 数据表名

where primary_constraint

group by sorting_cloumns

order by sorting_cloumns

having secondary_consstraint

limit count

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/54147.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python|基于Kimi大模型,删除已上传的“指定文档”或“全部文档”(6)

前言 本文是该专栏的第6篇,后面会持续分享AI大模型干货知识,记得关注。 在本专栏上一篇《Python|基于Kimi大模型,实现上传文档并进行对话(5)》中,笔者有详细介绍“基于kimi大模型,上传指定文档并结合prompt,获取目标文本数据”。对此感兴趣的同学,可以直接点击翻阅查…

【洛谷】P3743 小鸟的设备 的题解

【洛谷】P3743 小鸟的设备 的题解 题目传送门 题解 水一道二分 qaq 刚开始考虑的是动态规划&#xff0c;但是动态规划并不能维护题目所要求的东西。所以我们将思路转向另一种求最值问题的方法&#xff1a;二分答案。 首先&#xff0c;如果一个设备在 t t t 的时间内消耗的…

Redis事件循环与网络通信机制详解

探索 Redis 底层设计:事件循环与网络通信机制 一、引言 Redis 作为一款高性能的内存数据库,其底层设计中的事件循环与网络通信机制起着至关重要的作用。这些机制使得 Redis 能够高效地处理大量的并发连接,快速响应客户端请求,并在不同的操作系统上实现良好的性能表现。 …

Java虚拟机:类的加载机制

大家好,我是栗筝i,这篇文章是我的 “栗筝i 的 Java 技术栈” 专栏的第 034 篇文章,在 “栗筝i 的 Java 技术栈” 这个专栏中我会持续为大家更新 Java 技术相关全套技术栈内容。专栏的主要目标是已经有一定 Java 开发经验,并希望进一步完善自己对整个 Java 技术体系来充实自…

深度学习速通系列:命名实体识别

命名实体识别&#xff08;NER&#xff09;是自然语言处理&#xff08;NLP&#xff09;中的一项基础技术&#xff0c;它能够从文本中识别出具有特定意义的实体&#xff0c;如人名、地名、组织名等。NER在信息提取、问答系统、句法分析、机器翻译等领域有着广泛的应用。 NER的技…

STL相关简介

string 看到这个词&#xff0c;相信大家一定都很好奇什么是string&#xff0c;它有什么作用呢&#xff1f;今天&#xff0c;就让我们一起来了解一下关于string的简介吧~ 目录 string 1. 什么是STL 2. STL的版本 3. STL的六大组件 4. STL的重要性 5. 如何学习STL 6.STL的…

Unity实战案例全解析 :PVZ 植物脚本分析

植物都继承了Pants脚本&#xff0c;但是我因为没注意听讲&#xff0c;把Pants也挂在植物上了&#xff0c;所以子类的PlantEnableUpdate和PlantDisableUpdate抢不过父类&#xff0c;无法正确触发动画&#xff0c;我还找不到哪里出了问题&#xff0c;所以就使用了携程加while强行…

【裸机装机系列】3.kali(ubuntu)-更新sources.list并重启

当装机并重启计算机后&#xff0c;暂时还不能使用&#xff0c;需要更新源并下载软件 1、更新软件源 1> 切换root使用命令 sudo su root 进入界面后&#xff0c;是你自己的账户&#xff0c;不是root账户&#xff0c;这里的操作是需要进入root账户进行操作的&#xff0c;否…

bpf的了解以及bpftrace的简单练习

最近接触到bpf的概念&#xff0c;简单做一些练习&#xff0c;做以下整理&#xff0c;学习笔记。 0&#xff1a;总结 使用ebpf可以实现的功能打开新世界&#xff0c;可以不改变源码的情况下&#xff0c;实现内存&#xff0c;网络&#xff0c;对应接口等各种期望内容的监控。 …

王者荣耀改重复名(java源码)

王者荣耀改重复名 项目简介 “王者荣耀改重复名”是一个基于 Spring Boot 的应用程序&#xff0c;用于生成王者荣耀游戏中的唯一名称。通过简单的接口和前端页面&#xff0c;用户可以输入旧名称并获得一个新的、不重复的名称。 功能特点 生成新名称&#xff1a;提供一个接口…

C++基础知识7 list

list 1. list的介绍及使用1.1 list的介绍1.2 list的使用1.2.1 list的构造1.2.2 list iterator的使用1.2.3 list capacity1.2.4 list element access1.2.5 list modifiers1.2.6 list的迭代器失效 2.1 模拟实现list 1. list的介绍及使用 1.1 list的介绍 1.2 list的使用 1.2.1 l…

aspcms 获取webshell漏洞复现

1.通过访问/admin_aspcms/login.asp来到后台 使用admin 123456 登录 2.点击扩展功能-幻灯片设置-保存&#xff0c;同时进行抓包 3.修改数据包中的slideTextStatus字段&#xff0c;将其更改为 1%25><%25Eval(Request (chr(65)))%25><%25 密码为a 4.访问木马的地…

面试官:讲一讲Spring MVC源码解析

好看的皮囊千篇一律、有趣的灵魂万里挑一 文章持续更新&#xff0c;可以微信搜索【小奇JAVA面试】第一时间阅读&#xff0c;回复【资料】获取福利&#xff0c;回复【项目】获取项目源码&#xff0c;回复【简历模板】获取简历模板&#xff0c;回复【学习路线图】获取学习路线图。…

Android 使用scheme唤起app本地打开

记录一下近期任务。。。 以下操作全部基于手机本地已经安装对应app方可执行。 没安装建议web前端校验一下跳动app下载页吧。 AndroidManifest配置如下&#xff1a; <activity android:name".RouterActivity"><intent-filter><dataandroid:host&quo…

wopop靶场漏洞挖掘练习

1、SQL注入漏洞 1、在搜索框输入-1 union select 1,2,3# 2、输入-1 union select 1,2,database()# &#xff0c;可以得出数据库名 3、输入-1 union select 1,2,group_concat(table_name) from information_schema.tables where table_schematest#&#xff0c;可以得出数据库中…

八股文知识汇总(常考)

八股文知识汇总&#xff08;常考&#xff09; 语言特性相关 JAVA知识 - JDK动态代理为什么只能代理有接口的类&#xff1f; 说一下对象创建的过程&#xff1f;ThreadLocal是什么&#xff1f;他的实现原理是什么&#xff1f;ThreadLocal会出现内存泄露吗&#xff1f;String、…

注册建造师执业工程规模标准(房屋建筑工程)

注册建造师执业工程规模标准&#xff08;房屋建筑工程&#xff09;序号工程类别项目名称单位规 模备 注大型中型小型1 一般房屋建筑工程工业、民用与公共建筑工程层≥255&#xff5e;25<5建筑物层数米≥10015&#xff5e;100<15建筑物高度米≥3015&#xff5e;30&l…

C++ | Leetcode C++题解之第405题数字转换为十六进制数

题目&#xff1a; 题解&#xff1a; class Solution { public:string toHex(int num) {if (num 0) {return "0";}string sb;for (int i 7; i > 0; i --) {int val (num >> (4 * i)) & 0xf;if (sb.length() > 0 || val > 0) {char digit val …

Codeforces Round 299 (Div. 2) B. Tavas and SaDDas(组合数学)

题目链接&#xff1a;题目 大意&#xff1a; 给出一个“幸运数”&#xff0c;每一位都是4或7&#xff0c;问这是从1开始第几个幸运数。 思路&#xff1a; 直接暴力数复杂度太高&#xff0c;实际上就是看有多少种4和7组合。当然数组合也不能乱数&#xff0c;为了思路清晰我是…

Iptables命令常用命令

前言:下是一些非常实用的 iptables 命令合集&#xff0c;涵盖网络攻击防护和日常网络安全防护 1. 查看当前规则 iptables -L -v -n查看现有的所有规则&#xff0c;-v 显示详细信息&#xff0c;-n 禁止解析IP地址和端口以加快显示速度。 2. 清空所有规则 iptables -F清除所有已…