日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

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

發布時間:2025/3/11 数据库 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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)

總結

以上是生活随笔為你收集整理的mysql 字段等于select_mysql_select_计算字段_数据处理函数_5的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日本少妇一区二区 | 四川操bbb| 岛国伊人 | 国产在线视频导航 | 天天射寡妇射 | 婷婷丁香在线 | 秋霞国产| 国产原创中文av | 国产热 | 中文字幕无码乱码人妻日韩精品 | 日韩精品伦理 | 色丁香婷婷综合久久 | 成人乱人乱一区二区三区一级视频 | 亚洲精品码 | 伊人国产视频 | 国产精品第157页 | 国产地址一| 精品国产无码在线 | 深爱五月综合网 | a猛片| 72pao成人国产永久免费视频 | 国产偷v国产偷v亚洲高清 | 欧美大片免费播放器 | 国产午夜一级一片免费播放 | 青春草国产视频 | 欧美日韩人妻精品一区在线 | 一级片在线播放 | 欧美天天 | 国产又粗又猛又爽又黄的网站 | 成人小视频免费看 | 精品人妻一区二区三区久久嗨 | 超碰偷拍 | 精品一区在线观看视频 | 91丨九色丨国产 | 东方av在线免费观看 | 欧洲一区二区 | 欧美黄色精品 | 国产福利一区二区视频 | 午夜免费毛片 | 黄色一级二级 | 午夜久久久久久久久久影院 | 久久日本精品字幕区二区 | 九九热九九爱 | 天天爽av | 久久久久香蕉视频 | 99热这里只有精 | 亚洲社区在线观看 | 亚洲手机视频 | 欧美一区二区三区公司 | 澳门av在线 | 欧美一级黄色录像 | 欧美无砖专区免费 | 亚洲国产美女视频 | 超碰2022| 澳门黄色一级片 | 熟女肥臀白浆大屁股一区二区 | 国产激情免费视频 | 日韩 国产 在线 | 爽爽影院在线免费观看 | 奇米影视久久 | 欧美性大战久久久久xxx | 黄色av网站在线免费观看 | www.玖玖玖| 性高潮久久久久久久 | 美国一区二区 | 国产伦精品一区二区三区免费 | 黄色动漫在线观看 | 精品欧美黑人一区二区三区 | 国产精品久久久久久亚洲av | 久久久久人妻一区精品 | 丁香花完整视频在线观看 | 国产一级在线视频 | 欧美丰满老妇熟乱xxxxyyy | 日本一区二区三区在线观看 | 韩国av在线播放 | 丰满熟妇被猛烈进入高清片 | 69精品人妻一区二区三区 | 久草福利网| 欧美另类视频在线 | a级在线观看视频 | 成人精品在线视频 | 中文字幕第一页在线 | 亚洲成人a√ | 日韩黄色在线视频 | 国产欧美一区二区三区国产幕精品 | 大尺码肥胖女系列av | 蜜臀视频一区二区三区 | 亚洲综合色婷婷 | 日韩精品中字 | 一区二区三区四区精品 | 国产女人18毛片水真多 | 在线视频免费观看你懂的 | 日韩精品久久久久久久电影99爱 | 欧美午夜一区 | 国产又粗又爽视频 | 色婷婷久久久亚洲一区二区三区 | 麻豆网页 | 免费黄色网址在线观看 | 欧美视频网址 |