萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mysql教程 >> mysql常用日期 字符串處理函數命令

mysql常用日期 字符串處理函數命令

本文章來給大這整理了一些在mysql開發使用中一些常用的日期,字符串,數字等等處理函數,這些函數都對我們有很大的幫助哦,這裡給各位介紹一下。

函數如下:
left,right  字符串截取
from_unixtime  格式化unix時間戳
concat  字符串連接函數
max  取某列最大值
min  取某列最小值
sum  計算某列的和
count 統計條數
md5  返回md5加密碼的串
format  格式化數字為xx,xxx,xxx.xxxx格式 比如1,1000.123
length   計算某個字符串長度
distinct  去重復
replace  替換字符串
in  指定查詢某個值的記錄
like  模糊查詢
is null    查詢某個條件為空(null),注:null不等於”"
is not null   查詢某個條件不為為空(null)
MATCH … AGAINST …     mysql的全文索引查詢
 
mysql left,right函數
left和right是一對截取字符串前幾位可後幾位的函數,left是從左向右開始計算,right相反是從右向左計算
例:
select left(name,10) as name from user; 顯示用戶名的前10位
select right(name,10) as name from user; 顯示用戶名的後10位
select * from user where left(datetime,10)=”2011-12-02″    取出2011-12-02日注冊的用戶
select * from user where left(datetime,7)=”2011-12″    取出2011-12月注冊的用戶
left,right不僅僅可以用於截取字符串,還可以用在where條件上。特別是用在查詢條件上他的作用非常大。
 
mysql  from_unixtime函數
from_unixtime函數用來對unix時間戳進行格式化,格式化成我們易讀的日期時間格式。
例:
select from_unixtime(time, “%Y-%m-%d %H:%i:%s” ) as datetime from table; 把time字段格式化成易讀的日期時間顯示(time為unix時間戳)
select *  from table where left(from_unixtime(time, “%Y-%m-%d” ))=’2011-12-02′ 取出2011-12-02日的記錄
 
mysql concat 函數
concat函數 可以用來把某二個字符連接在一起查詢或顯示,也可以把字段和字符串進行連接。
例:
select concat(year,”-”,month,”-”,day) as datetime from table; 把表中year,month,day字段連接起來顯示
select concat(“My name is:”,name) as name from table; 把字符串和字段連接起來顯示
update software set icon=concat(“http://111cn.net”,icon); 把數據庫中icon批量更新並在原有的icon前增加域名 111cn.net
 
mysql max,min函數
顧名思義max函數用於查詢某個字段中的最大值
例:
select max(age) from user; 返回最大的年齡
select min(age) from user; 返回最小的年齡
 
mysql sum函數
sum函數 可對某個字符(int型)進行求和
例:
select sum(money) from user 計算出所有人的金錢總數
select sum(money),area from user group by area 計算出各地區人員的金錢總數
 
mysql count函數
統計聚合函數,可對sql查詢的結果進行統計
例:
select count(*) as total from user 計算出總會員 111cn.net
 
mysql md5函數
同php中的md5一樣,對某個字符串進行加密
例:
select md5(password) as password from user 把明碼的密碼進行md5加密顯示
insert into user(name,password) values(“abc”,md5(“abc”)); 寫入user表把密碼進行md5加密後存儲
 
mysql format函數
用於格式化數字為xx,xxx.xxx格式的數字
例:
select format(downloads) as download from software; 把下載量格式化為xx,xxx格式如:12,000
select format(money,2) as money from user; 把用戶金錢格式化為xx,xxx.xx格式,參數2為精確的小數點位數如:12,000.05
 
mysql length函數
計算某個字段值的長度
例:
select length(name) as length from user; 顯示出用戶名的長度
select * from table where length(aa) > 10 ; 查詢某字段長度大於10的記錄 php程序員站
 
mysql distinct函數
對某個字段去重復,(在某些時候group by也可以做到)
例:
select distinct(area) from user; 對地區進行去重復
select area,count(*) from user group by area; 對地區進行聚合並統計出數量
 
mysql replace函數
查找某個字符串並進行替換
例:
select replace(icon,”www.111cn.net”,”img.111cn.net“) from software; 把icon中的www.111cn.net替換成替換成img.111cn.net顯示
update software set icon=replace(icon,”www.111cn.net”,”img.111cn.net“) ; 把數據庫中icon的域名批量進行查找替換www.111cn.net
 
mysql in函數
可批量指定幾個值作為查詢條件
例:
select * from user where user_id in(1,2,3,4,5,100,200,333)
select * from user where user_name in(“a”,”b”,”d”)
 
mysql like函數
可對某個字段進行模糊查詢,”%”號用於匹配任意字符
例:
select * from user where name like “%王%”; 查詢所有用戶名中帶”王”字符的用戶
select * from user where name like “%王”;  查詢所有用戶名第一個字符為”王”字的用戶
 
mysql is null函數
匹配某個字符為null值的記錄,注:null不代表空符串”"
例:
select * from user where a is null ; 查詢a字段為null的用戶
select a.* from user as a left join add_user as b on a.user_id=b.user_id where b.user_id is null; 連表查詢附加表add_user中沒有附加用戶信息數據的用戶
 
mysql is not null函數
和is null用法一樣,匹配某個字符不為空的記錄
 
mysql MATCH … AGAINST 全文匹配函數
mysql的全文匹配函數,要使用此函數查詢的字符必須增加了全文索引,另外mysql不支持中文全文索引,所以國人在開發中估計很少用到此函數。
match中包含要進行全文匹配的字段,多個字段用”,”號分割 against為匹配的字符串
例:
select * from software where match(title,body) against(“php”); 全文匹配title和body字段中包含”php”的記錄
select * from software where match(title) against(“php mysql”); 全文匹配title字段中包含”php mysql”的記錄。


mysql常用命令
1、mysql服務的啟動和停止
service mysqld start
service mysqld stop

2、登陸mysql
語法如下: mysql -u用戶名 -p用戶密碼
鍵入命令mysql -u root -p, 回車後提示你輸入密碼,例如輸入123456,然後回車即可進入到mysql中了。
mysql的提示符是:mysql>

3、顯示數據庫列表
show databases;

缺省有兩個數據庫:mysql和test。mysql庫存放著mysql的系統和用戶權限信息,我們改密碼和新增用戶,實際上就是對這個庫進行操作。

4、顯示庫中的數據表
use mysql; //選中一個數據庫
show tables;

5、顯示數據表的結構
describe 表名;

顯示該數據表由哪幾個字段組成,數據類型分別是什麼。

6、顯示表中的記錄
select * from 表名;

7、賦予用戶權限同時添加新用戶
格式:grant 權限 on 數據庫.* to 用戶名@登錄主機 identified by "密碼"
例如,增加一個用戶user1密碼為password1,讓其可以在本機上登錄, 並對所有數據庫有查詢、插入、修改、刪除的權限。首先用以root用戶連入mysql,然後鍵入以下命令:
grant select,insert,update,delete on *.* to user1@localhost identified by "password1";
賦予全部權限
grant all on *.* to user1@localhost identified by "password1";

如果希望該用戶能夠在任何機器上登陸mysql,則將localhost改為"%"。

8、重新加載授權表
flush privileges;

9、刪除數據庫中用戶
use mysql;
delete from user where user="user1" and host="localhost";

10、建庫與刪庫
create database 庫名;
drop database 庫名;

11、建表與刪表
use 庫名;
create table <表名> (<字段名1> <類型1> [,..<字段名n> <類型n>]);
drop table 表名;

例如:
create table class(id int(4) not null primary key, name char(20) not null,degree double(16,2));
建表時要設計字段數據類型,是否為主鍵等多種屬性。

12、往表中加入記錄
insert into class values ("0001","zhang","99.8");

13、更新表中數據
update class set degree="100.1" where id="0001";

14、清空表中記錄
delete from 表名;

15、退出mysql
exit;

copyright © 萬盛學電腦網 all rights reserved