mysql 字段等于select_mysql_select_计算字段_数据处理函数_5

二十一、创建计算字段

1、 concat() 把两个字段拼接起来

select concat(lie_name1,'间隔符',lie_name2) from

table_name;

选择出  name-type(price)

这样的格式输出,按id从小到大排序

mysql> select

concat(name,'-',type,'(',price,')') from goods order by id;

+-------------------------------------+

| concat(name,'-',type,'(',price,')') |

+-------------------------------------+

| fangbianmi-A(1)  |

| mianbao-A(5)  |

| kele-A(50)  |

| meat-B(13)  |

| meat-A(18)  |

| fish-B(16)  |

| fish-A(20)  |

| milk-C(3)  |

| T-shirt-D(60)  |

| .pen-D(30)  |

| book  .-D(20)  |

|  yagao-D(10)  |

| xiangjiao-A(8)  |

| guo-D(160)  |

| wan  -D(8)  |

|  yashua-D(11)  |

| /  cup-D(35)  |

+-------------------------------------+

17 rows in set (0.00 sec)

括号用来扩出间隔符,本例子中是- (),实际上我认为是以字符型的形式直接输出而已

2、rtrim 删除字段右侧的多余空格

select rtrim(lie_name1) from table_name;

上个例子可以看出,name=wan的这个字段右侧有空格,我们把这个空格消除看看

mysql> select concat(rtrim(name),'-') from

goods where id = 14;

+-------------------------+

| concat(rtrim(name),'-') |

+-------------------------+

| wan-  |

+-------------------------+

1 row in set (0.00 sec)

这个为了能显示出来,在name后面加上一个‘-’,这样能看出是否有空格。

3、alias  别名,使用as

上面我们concat()函数,把多个字段拼接成一个新的字段,但是他们的字段名不太好,我们可以使用as这个函数来实现

说两个例子

as可以给字段(列)取一个名字,比如说我们上面那样,拼在一起的列,也可以给表取一个别名,这样感觉上只是简便了sql的书写

给字段取别名as

mysql> select concat(rtrim(name),'-',price) as

GOODS from goods;

+--------------+

| GOODS  |

+--------------+

| fangbianmi-1 |

| mianbao-5  |

| kele-50  |

| meat-13  |

| meat-18  |

| fish-16  |

| fish-20  |

| milk-3  |

| T-shirt-60  |

| .pen-30  |

| book  .-20  |

| xiangjiao-8  |

| /  cup-35  |

| wan-8  |

|  yashua-11  |

|  yagao-10  |

| guo-160  |

+--------------+

17 rows in set (0.01 sec

把字段名字该成了GOODS

给表取别名as

mysql> select w.id,w.name,g.name as goods from

worker as w,goods as g where g.id in (1,2,3) and w.id=g.id;

+----+----------+------------+

| id | name  | goods

|

+----+----------+------------+

|  1 | zhangsan | fangbianmi |

|  2 | lisi  | mianbao  |

|  3 | wangwu  | kele

|

+----+----------+------------+

3 rows in set (0.00 sec)

这个不太好看,是这样的,给worker as w,goods as g,

然后我们在拼接两个表的列的时候,就很轻松了,不容再输入繁琐的表全称,需要注意的是,这里把两个表的id当做外键来使用了。

4、执行数据计算

因为我做表的失误,现在假设goods表中,id为该物品的购买数量。现在计算前五个商品的价格总和

mysql> select name,price,id as

quantity,id*price as sum from goods where id <=

5;

+------------+-------+----------+------+

| name  | price | quantity | sum

|

+------------+-------+----------+------+

| fangbianmi |  1 |

1 |  1

|

| mianbao  |

5 |  2 |

10 |

| kele  |  50 |

3 |  150 |

| meat  |  13 |

4 |  52 |

| meat  |  18 |

5 |  90 |

+------------+-------+----------+------+

5 rows in set (0.00 sec)

mysql支持+ - * /,如果想控制计算的顺序,可以使用(),这样比较直观

二十二、数据处理函数

相对于其他的sql语句,函数的可移植性比较差,因为每种DBMS都有自己的函数库,但是语句大部分都差不多,所以如果要使用函数的话,最好用#写好注释

1、文本处理函数

rtrim()本身就是一个文本处理的函数

upper(),作用是将字段改为大写

mysql> select upper(name) as NAME from goods

order by id;

+------------+

| NAME  |

+------------+

| FANGBIANMI |

| MIANBAO  |

| KELE  |

| MEAT  |

| MEAT  |

| FISH  |

| FISH  |

| MILK  |

| T-SHIRT  |

| .PEN  |

| BOOK  .  |

|  YAGAO  |

| XIANGJIAO  |

| GUO  |

| WAN  |

|  YASHUA  |

| /  CUP  |

+------------+

17 rows in set (0.01 sec)

文本处理函数还有很多,这里只说常用的

left(lie_name1,num) 输出这一列左边num个字符

rigth(lie_name1,num) 输出这一列右边num个字符

lower(lie_name) 转换为小写

ltrim(lie_name) 清除字段左边的空格

rtrim(lie_name) 清除字段右边的空格

lower(lie_name) 转换字段为小写

substring(lie_name,num1,num2) 取字段第num1个字符还是的后面num2个字符

2、日期和时间处理函数

日期数据类型:

DATE 表示1000-01-01~~~9999-12-31,格式为YYYY-MM-DD

TIME 格式为 HH:MM:SS

DATETIME DATE和TIME的组合

YEAR

用量为数字表示,范围是70(1970)~~~69(2069),用四位数字表示,范围是1901~~2155

adddate() 增加一个日期(天、周)

addtime() 增加一个时间(时、分)

curdate() 返回当前日期

curtime() 返回当前时间

date() 返回日期时间的日期部分

datediff() 尖酸两个日期之差

date_add() 高度灵活的日期运算函数

date_format() 返回一个格式化的日期或时间串

day() 返回一个日期的天数

dayofweek() 对于一个日期,返回对应的星期几

hour() 返回一个时间的小时部分

minute() 返回一个时期的分钟部分

month() 返回一个日期的月份部分

now() 返回当前日期和时间

second() 返回一个时间的秒部分

time() 返回一个日期时间的时间部分

year() 返回一个日期的年份部分

修改一下goods表,加一个date列

mysql> alter table goods add column date

datetime;

mysql> select * from goods;

+----+------------+------+------------+-------+---------------------+

| id | name  | type | production | price | date

|

+----+------------+------+------------+-------+---------------------+

|  1 | fangbianmi | A  | zhengzhou  |

1 | 2011-12-13 05:12:55

|

|  2 | mianbao  | A  |

zhengzhou  |  5 | 2111-12-11 08:02:25 |

|  3 | kele  | A  | xian  |  50 |

2102-05-15 10:08:35 |

|  4 | meat  | B  | beijing  |

13 | 2101-01-15 18:08:35

|

|  5 | meat  | A  | beijing  |

18 | 1902-05-15 10:09:35

|

|  6 | fish  | B  | shandong  |

16 | 2101-05-17 12:09:35

|

|  7 | fish  | A  | shandong  |

20 | 2001-08-17 14:03:35

|

|  8 | milk  | C  | shandong  |

3 | 2000-09-27 05:53:05

|

|  9 | T-shirt  | D  |

guangzhou  |  60 | 2004-07-20 05:53:44 |

| 10 | .pen  | D  |

shenzhen  |  30 | 2011-08-20 05:53:04 |

| 11 | book  .  | D  |

shenzhen  |  20 | 2011-01-30 19:53:04 |

| 12 | xiangjiao  | A  | shenzhen  |

8 | 2012-12-25 10:23:34

|

| 16 | /  cup  | D  |

guangzhou  |  35 | 2142-08-11 19:04:19 |

| 14 | wan  | D  | tianjin  |

8 | 2012-08-21 10:11:44

|

| 15 |  yashua  | D

| guangzhou

|  11 |

2042-04-21 09:04:07 |

| 11 |  yagao  | D  |

guangzhou  |  10 | 2011-01-30 19:53:04 |

| 13 | guo  | D  | tianjin  |

160 | 2011-03-25 16:43:04 |

+----+------------+------+------------+-------+---------------------+

17 rows in set (0.00 sec)

我们存储的数据类型是datetime,包含日期和时间。

如果我们只按照数据的日期,找出需要的日期。就需要date()函数

select lie_name1 from table_name where

date(date_name)='YYYY-MM-DD'

mysql> select name from goods where

date(date)='2012-8-21';

+--------+

| name  |

+--------+

| wan  |

+--------+

1 row in set (0.00 sec)

假如我们想搜索2011年1月到5月的所有name

mysql> select name from goods where date(date)

between '2011-01-01' and '2011-5-31';

+---------+

| name  |

+---------+

| book  . |

|  yagao |

| guo  |

+---------+

3 rows in set (0.00 sec)

另外一种方法

mysql> select name from goods where

year(date)=2011 and month(date) in (1,2,3,4,5);

+---------+

| name  |

+---------+

| book  . |

|  yagao |

| guo  |

+---------+

3 rows in set (0.04 sec)

3、数值操作函数

这个函数是DBMS种最统一的函数

abs() 返回一个数的绝对值

cos() 返回一个角度的余弦

exp() 返回一个数的指数值

mod() 返回除操作的余数

pi() 返回圆周率

rand() 返回一个随机数

sin() 返回正弦

tan() 返回正切

选择ID除以3等于1的值

mysql> select name from goods where

mod(id,3)=1;

+------------+

| name  |

+------------+

| fangbianmi |

| meat  |

| fish  |

| .pen  |

| /  cup  |

| guo  |

+------------+

6 rows in set (0.00 sec)

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

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

相关文章

php mysql随机记录_php随机取mysql记录方法小结

这篇文章主要介绍了php随机取mysql记录方法,实例分析了几种常见的随机获取mysql数据的方法,是非常实用的技巧,具有一定的参考借鉴价值,需要的朋友可以参考下本文实例总结了php随机取mysql记录方法。分享给大家供大家参考。具体分析如下&#xff1a;在php中要随机取mysql记录我们…

mysql 主从备份问题_我遇到的mysql主从同步的问题

测试mysql主从同步的问题&#xff0c;主从同步test库。主库&#xff1a;rootttt 11:00>use test;Database changedroottest 11:00>show tables;----------------| Tables_in_test |----------------| a |----------------从库&#xff1a;root(none) 11:01>use test;D…

中西方对时间的差异_中西文化的差异-2 时间观

中西文化的差异-2 时间观时间和空间存在不可思议的相似性。因此&#xff0c;人们对时间的不同理解可分为两种时空观念———直线型和循环型。大体而言&#xff0c;英语国家的人认为时间是直线型&#xff0c;客观顺序是把事件分为过去&#xff0c;现在&#xff0c;将来三种时态(…

java开发环境怎么写_Java开发基础设置:如何配置Java运行环境

很多朋友都有自学Java的愿望&#xff0c;但是自学一门语言何其艰难&#xff0c;没人指引的话往往不得其门而入。那么&#xff0c;今天千锋老师就给大家带来Java入门课程中配置Java运行环境的方法&#xff0c;希望能够对大家有所帮助。一、JDK安装 什么是JVMJava Virtual Machin…

被动声呐 相移波束形成_100天计划-DAY9-拖曳声呐

拖曳线列阵声纳是拖曳在距舰船尾部一定距离的声接收系统&#xff08;通常称为线列阵&#xff09;&#xff0c;通过接收航行目标自身辐射的噪声或者通过接收目标反射回来的信号&#xff0c;来检测目标的有无并估计目标有关参数。拖曳线列阵声纳可以分为主动、被动和主被动联合三…

mongodb转实体对像_MongoDB:实体对象(javabean)转DBObject

packageutils;importjava.lang.reflect.Field;importcom.mongodb.BasicDBObject;importcom.mongodb.DBObject;importpojo.User;public classBeanFromDBObject {/*** Description:bean-->DBObject*parambean*returnDBObject 返回类型*/public static DBObject getDBObject(T …

mysql四种隔离级别知乎_详解MySQL事务的四大特性和隔离级别

1、事务的四大特性(ACID)1.1、原子性(Atomicity) 原子性是指事务包含的一系列操作要么全部成功&#xff0c;要么全部回滚&#xff0c;不存在部分成功或者部分回滚&#xff0c;是一个不可分割的操作整体。1.2、一致性(Consistency)一致性是可以理解为事务对数据完整性约束的遵循…

mysql唯一索引弊端_MySQL 关于唯一索引和普通索引的抉择

想象这样一个场景&#xff0c;在设计一张用户表时&#xff0c;每人的身份证号是唯一的&#xff0c;需要搜索。但由于身份证号字段较大&#xff0c;不好将其作为主键。在业务代码已经保证插入身份证唯一的情况下&#xff0c;可以选择建立唯一索引和普通普通索引&#xff0c;这时…

mysql 8 my.cfg_搭建lamp环境以及安装配置phpmyadmin

接下来配置phpmyadminphpMyAdmin是一种MySQL的管理工具,它直接从web上去管理MySQL. 假设你的web(网页存放)根目录是 /var/www/ 假设你的主机web访问是这样的http://192.168.1.11/ 你可以把他安装到 /var/www/phpmyadmin 当然也可是/var/www/的任意下级目录 注意phpMyAdmi…

mysql触发器 err 1064_MySQL触发器定义 - 1064错误

我建议的触发器&#xff1a;#START TRIGGERdelimiter //DECLARE msg VARCHAR(255);CREATE TRIGGER passStandard_check BEFORE INSERT ON ModuleFOR EACH ROWBEGINIF NEW.passStandard < 0 || NEW.passStandard > 1 THENset msg concat(Trigger Error: Pass Standard: ,…

mysql按中文拼音字母排序_解析MySQL按常规排序、自定义排序和按中文拼音字母排序的方法...

MySQL常规排序、自定义排序和按中文拼音字母排序&#xff0c;在实际的SQL编写时&#xff0c;我们有时候需要对条件集合进行排序。下面给出3种比较常用的排序方式&#xff0c;一起看看吧MySQL常规排序、自定义排序和按中文拼音字母排序&#xff0c;在实际的SQL编写时&#xff0c…

python装饰器的通俗理解_简单理解Python装饰器

Python有大量强大又贴心的特性&#xff0c;如果要列个最受欢迎排行榜&#xff0c;那么装饰器绝对会在其中。刚接触装饰器&#xff0c;会觉得代码不多却难以理解。其实装饰器的语法本身挺简单的&#xff0c;复杂是因为同时混杂了其它的概念。下面我们一起抛去无关概念&#xff0…

vasp和ms_科学网—VASP如何计算铁磁和考虑强关联作用 - 叶小球的博文

关注&#xff1a;1) U参数的加入2) 自旋极化的考虑3) 铁磁、反铁磁的考虑来自文章的计算方法介绍The similar MSUs of Pu di- and trihydride provide aframework within which intermediate compositions can be exploredcomputationally.The calculationspresented here are…

java点_java常见基础点

1. 重载与重写重载&#xff1a;发生在同一个类中&#xff0c;方法名必须相同&#xff0c;参数类型不同、个数不同、顺序不同&#xff0c;方法返回值和访问修饰符可不同。重写&#xff1a;子类对父类允许访问的方法重新编写&#xff0c;方法名参数列表必须相同&#xff0c;返回值…

java 反射 父类的属性_用反射的方式获取父类中的所有属性和方法

package com.syh.jdbc.reflection_super;/*** 父类* author syh**/public class Parent {public String publicField "1";String defaultField "2";protected String protectedField "3";private String privateField "4" ;public…

java cassandra连接池_java操作cassandra(连接池)

package com.chu.cassandratest;import java.util.concurrent.Semaphore;import java.util.concurrent.TimeUnit;import org.apache.thrift.transport.TTransportException;/*** cassandra连接池* author chuer* date 2014年12月31日 上午10:05:26*/public class CassandraConn…

java中变量命名规范_关于java中变量命名规范的详细介绍

Java是一种区分字母的大小写的语言&#xff0c;所以我们在定义变量名的时候应该注意区分大小写的使用和一些规范&#xff0c;接下来我们简单的来讲讲Java语言中包、类、变量等的命名规范。(一)Package(包)的命名Package的名字应该都是由一个小写单词组成&#xff0c;例如com、x…

java找重复字符串_在java中怎样查找重复字符串

在一段java编程代码中&#xff0c;字符串是不可缺少的一个要素&#xff0c;属于java中的基础知识&#xff0c;字符串不仅在java面试题中会出现&#xff0c;在编写代码时更要掌握怎样使用字符串。在前面我们也学习过关于字符串截取的知识&#xff0c;你应该有所掌握吧、格式化字…

android java函数_java – 在android中创建全局函数

像这样创建类并在此处添加您的函数&#xff1a;package com.mytest;import android.content.Context;import android.net.ConnectivityManager;import android.net.NetworkInfo;public class MyGlobals{Context mContext;// constructorpublic MyGlobals(Context context){this…

java final定义_Java中final关键字的用法

final在Java中并不常用&#xff0c;然而它却为我们提供了诸如在C语言中定义常量的功能&#xff0c;不仅如此&#xff0c;final还可以让你控制你的成员、方法或者是一个类是否可被覆写或继承等功能&#xff0c;这些特点使final在Java中拥有了一个不可或缺的地位&#xff0c;也是…