案例所使用表字段介绍:
语法
select 查询列表 from 表名;
类似于:System.out.println(打印东西);
特点
注意事项
需求 | 语句 | 解释说明 |
---|---|---|
查询表中的单个字段 | select 字段 from 表名; | — |
查询表中的多个字段 | select 字段1,字段2 from 表名; | — |
查询表中的所有字段 | select * from 表名; | 缺点是:列之间的顺序是固定的;当想按照另一种顺序显示的时候,则需要将列名都写出来。 select last_name,email,job_id,phone_number from employees |
查询常量值 | select xxxx; | 字符串和字符一样,都使用单引号。 字符型和日期型的常量值必须用单引号引起来,数值型不需要。 |
查询表达式 | select 100*90; | 加减乘除取模 |
查询函数 | select 函数名(实参列表); 其中函数是必须有返回值的。 |
相当于执行了两步:函数的执行 和 查询函数的返回值。 |
起别名 | select 100%98 as 结果 使用as关键字 select 100%98 (空格) 结果 as可以省略 |
好处:①便于理解;②如果要查询的字段有重名的情况,使用别名可以区分开来。 select salary “out put” from employees; 当别名出现的特殊字符(空格)的时候,需要别名加双引号 |
去重 | select distinct 字段 from 表; | 字段名只能写一个,表示该字段的值不能重复 |
+号 的作用 | mysql中的+号:仅仅是运算符; ①select 100+90;两个操作数都为数值型,则做加法运算。 ②select ‘100’+90;只要其中一方是字符型,试图将字符型转换为数值型;如果转换成功,则继续做加法运算。 ③select’join’+90;如果转化失败,则将字符型数值转换为0. ④select null + 90;只要其中一方为null,则结果肯定为null。 |
java中的+号作用:①运算符,两个操作数都为数值型;②连接符,只要有一个操作数为字符串; |
拼接字符 concat(字符1,字符2…) | select concat(字符1,字符2…) | 案例:查询员工名和姓连接成一个字段,并显示为姓名。 select concat(last_name,first_name) as 姓名 from employees 使用concat函数对字符进行连接 |
ifnull函数 | ifnull(字段或表达式,指定值) | 判断某字段或表达式是否为null 如果为null,则返回指定的值;反之,返回原本的值。 |
isnull函数 | isnull(字段或表达式) | 判断某字段或表达式是否为null 如果为null,则返回1;反之,返回0. |
ifnull(字段或表达式,指定值)
测试案例1-3
desc 表名; select * from 表名;
select 查询列表 from 表名 where 筛选条件;
要求筛选条件的最终结果是true或false
执行顺序:from→where→select
条件运算符
小于 < 小于等于<= 大于> 大于等于>= 等于= 不等于<> 安全等于<=>
说明2022/7/29
等于=
用于比较两边的操作数是否相等,相等返回1,不相等返回0;共有两个操作数。
操作数 | 结果 |
---|---|
一个或两个为null | 结果为null |
两个都是字符串 | 比较字符串 |
两个都是整数 | 按照整数比较 |
一个字符串、一个数字 | MySQL自动将字符串转换为数字 再进行比较 字符转数字失败,转换为0 |
安全等于 < = >
可以比较 字符串、数字、null值
操作数 | 结果 |
---|---|
两个操作数都是nulll | 结果为1 |
一个操作数是null | 结果为0 |
案例
作用:用于连接条件表达式
符号 | 说明 |
---|---|
and && |
两个条件都为true,结果为true;反之,为false |
or || |
有一个为true,结果为true;反之,为false |
not ! |
如果连接的条件本身为false,结果为true;反之,为false |
案例
关键词:like、between and、in、is null 或者 is not null 、<=> 安全等于
关键词 | 说明 |
---|---|
like | 一般和通配符搭配使用,用于判断字符型或者数值型。 通配符:% 任意多个字符,包括0个字符; _ 任意单个字符 注:可以使用escape来任意指定转义字符,默认情况下是\。 |
between and | between 值1 and 值2;在值1和值2之间,即值1<= 字段 <= 值2 特点:①使用between and 可以提高语句的简洁度;②包含临界值; 两个临界值不要调换顺序。因为下面两者是等价的。 #where employee_id between 100 and 120; #where employee_id>=100 and employee_id<=120; |
in | 含义:判断某字段的值是否属于in列表中的某一项 特点:①使用in提高语句简洁度;②in列表的值类型必须统一或兼容;③不支持通配符; |
is null is not null |
= 和 <> 不能用于判断null值; is null 和 is not null 用于判断null的值; |
< = > 安全等于 |
判断是否等于。可以是null,也可以是数值型。 缺点:可读性比较差。 |
is null 和 < = > 比较
关键词 | 普通的数据(如 数值型) | null类型 | 可读性 |
---|---|---|---|
is null | 不支持 | 支持 | 较好 |
< = > | 支持 | 支持 | 较差 |
案例:like、 between and、 in
案例 is null 、is not null 、安全等于
测试题
注意
2022/4/14 |
---|
关于sql语句中的单引号和双引号问题 |
双引号和单引号问题
如果操作的是字符串类型常量,则需要在字符串两侧加单引号;
如果使用是的变量,则需要使用双引号;
字符串类型常量
'汪苏泷'
字符串类型变量,将字符串常量去掉、添加双引号、在添加连接符&、再放入变量
' “ & 变量 & ” '
作用:为了实现查询内容的有序显示
语法
select 查询列表 from 表名
【where 筛选列表】
order by 排序列表【asc | desc】;
asc 表示升序,desc 表示降序
ascend 升序,descend 降序;
特点
asc表示的是升序,desc表示的是降序;如果不写,默认为升序;
order by 子句中支持单个字段(字段)、多个字段(字段1,字段2)、表达式(salary *12 )、函数、别名;
order by 子句一般都是放在查询语句的最后面,但是limit子句除外;
执行顺序:from→where→select→order by ;
文章浏览阅读3.7w次。用python跑数据库脚本时,python报错"DatabaseError: DPI-1047: 64-bit Oracle Client library cannot be loaded: "原因是我的python2.7是64位的,并且装了cx_oracle6.1库,而数据库用了32位的instantclient-basic。解决方案:下载个64位的,然后解压,配置64位_cx_oracle.databaseerror: dpi-1047: 64-bit oracle client library cannot be lo
文章浏览阅读2.2k次。1_mysql 存储过程有事物吗
文章浏览阅读1.4w次,点赞5次,收藏33次。目录1. 环境准备 1.1 OS选择和安装 1.2硬件网卡选择 1.3 Trex环境安装2. Trex环境调试 - stateless模式 2.1 stateless模式配置和启动 2.2 console连接环境确认3. 数据包回放 - stateful模式 3.1 pcap准备 3.2修改文件、回放脚本_trex发包服务器搭建
文章浏览阅读354次,点赞7次,收藏8次。杰出的处理能力,迅速解决问题 - MSO2000和DPO2000系列数字荧光示波器 (DPO)为您查看信号和迅速解决问题提供了所需的性能和工具。DPO2000 系列是少有在所有通道上提供了1M 点可用记录长度、串行触发和解码分析选项、可变低通滤波器、允许直到示波器全部带宽查看信号细节及体积小巧的示波器。-体积小,重量轻,深仅5.3 英寸(134mm),重仅7 磅14 盎司(3.6 公斤)混合信号设计和分析(MSO2000 系列)-能够时间相关最多4 条模拟和16 条数字通道。-并行总线触发和分析。
文章浏览阅读2.1w次,点赞11次,收藏107次。上篇文章讲述了如何在地图显示位置点,这篇文章主要讲述如何在地图上画运动轨迹,以及地图图层点击事件的处理。很多运动类的app都有画出跑步者运动轨迹的需求,拿咕咚来说,我们看一下它的效果图:咕咚运动轨迹图本篇将要实现的效果1.跑步结束后,静态的画出整个运动轨迹2.跑步过程中,时时动态的画运动轨迹效果图如何实现:1._百度地图polyline和轨迹
文章浏览阅读656次。在 cocos2d-x 中嵌入浏览器次阅读Embeds a browser in cocos2d-x在游戏中嵌入网页是很常见的需求,cocos2d-x 引擎官方并没有提供这个功能。我在网上转了一圈,把找到的资料做了一些修改,将其集成到我们使用的 quick-cocos2d-x 引擎中。主要代码来自:CCXWebview,这里 还有一篇专门讲解Android嵌入浏览器的文章,可以参考。集成的类叫做 ..._cocos2dx pc 内嵌网页
文章浏览阅读446次。String json=JSON.toJSONString(user);//关键1.简单的解析json字符串首先将json字符串转换为json对象,然后再解析json对象,过程如下。 1 JSONObject jsonObject = JSONObject.fromObject(jsonStr); 根据json中的键得到它的值 1 2 3 4 String name = jsonObject.get._接收{}对象,此处接收数组对象会有异常
文章浏览阅读5.3k次,点赞12次,收藏87次。Tesseract最初由惠普实验室支持,用于电子版文字识别,1996年被移植到Windows上,1998年进行了C++化,在2005年Tesseract由惠普公司宣布开源。2006年到现在,由Google公司维护开发。最初Tesseract是用C语言写的,在1998年改用C++。..._机器学习如何图片中文字识别的程序
文章浏览阅读2k次,点赞4次,收藏24次。输入捕获模式可以用来测量脉冲宽度或者测量频率原理图如图 所示,就是输入捕获测量高电平脉宽的原理,假定定时器工作在向上计数模式,图中 t1~t2 时间,就是我们需要测量的高电平时间。测量方法如下:首先设置定时器通道 x 为上升沿捕获,这样, t1 时刻,就会捕获到当前的 CNT 值,然后立即清零 CNT,并设置通道 x为下降沿捕获,这样到 t2 时刻,又会发生捕获事件,得到此时的 CNT 值,记为 CCRx2。这样,根据定时器的计数频率,我们就可以算出 t1~t2 的时间,从而得到高电平脉宽。_stm32使用定时器对脉冲进行捕获和计数
文章浏览阅读5.7k次,点赞6次,收藏46次。struct BTNode{ int data; struct BTNode *lchild; struct BTNode *rchild;}BTNode * MinNode(BTNode *b){ if (b != NULL){ BTNode *min1, *min2, *min; if (b->lchild == NULL &..._c语言非空二叉树最小值结点
文章浏览阅读8.5k次,点赞63次,收藏392次。Vue.js从零开始1、简单认识Vue.jsVue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。2、Vue.js安装CDN引入直接下载然后引入,script方式引用npm方式安装注意开发环境版本(vue.js)和生产环境版_vue.js初学者
文章浏览阅读501次。原标题:【AE】加载动画和数字跳动转载一篇晓斌师兄的教程~最近都在研究动效,跟着师兄一起动手吧!转载:吴影浪技 作品:http://www.zcool.com.cn/work/ZMjExNzkxMDQ=.htmlHello,大家好,今天给大家分享一个小案例,就是上面那个图的制作思路,一如既往的,只分享思路,不要在意那些参数。教程分两部分,第一部分是简单说一些AE的工具,方便后面操作(其实是某土豪煤..._数字加载动画