MySql常見命令、函數


⒈常見命令

命令 說明
show databases; 顯示數據庫列表
use DataBaseName; 打開指定的數據庫
show tables; 顯示當前打開數據庫的表列表
show tables from DataBaseName; 顯示指定數據庫的表列表
select database(); 顯示當前命令指向的數據庫
create table TableName(id int,name varchar(50)); 創建表
desc TableName; 查看表結構
show index from TableName 查看表索引
select * from TableName; 查詢表數據
insert into TableName(id,name) values(1,'fanqi'),(2,'gaoxing'); 插入數據
SET SQL_SAFE_UPDATES = 0; 禁用MySql安全更新模式
update TableName set name='fanqi' where id = 1; 更新數據
delete from TableName where id = 2; 刪除數據
select version(); 查詢當前MySql版本

  *如果某些字段名與MySql保留關鍵字一致,則加上`字段名`着重號即可。

  *MySql有兩種通配符

    1.% 代表任意多個字符,包括0個字符

    2._ 代表任意單個字符

  MySql必要時需要使用'\'轉義符,也可以使用escape聲明特定的轉義符

  *is null 和<=>(安全等於)的區別

is null 僅僅可以判斷null值,可讀性較高,建議使用
<=>

既可以判斷null值,也可以判斷普通數值,可讀性較低

  *排序中,asc代表升序,desc代表降序,默認asc升序。

 

⒉常見函數

  1.字符串類

命令 說明
select concat('fan','_','qi'); 字符串連接
select ifnull(null,10);

判斷是否為空,參數1是判斷的表達式或值

參數2是如果為空返回的值

select length('fanqi');

顯示長度

*UTF-8編碼一個漢字3個字節

*GBK編碼一個漢字2個字節

select upper('fanqi');

將參數轉化為大寫

select lower('FANQI');

將參數轉化為小寫

select substr('fanqi is very good',6);

select substring('fanqi is very good',6);

功能一樣,另一個為簡寫,截取字符串

*SQL中索引從1開始

select instr('fanqi is very good','fanqi');

返回指定字符第一次出現的索引,如果找不到

則返回0

select trim('a' from 'aaaaaa樊奇aaaaa');

去除字符串中指定字符,如未指定則默認空格

select lpad('fanqi',2,'*');

用指定的字符實現左填充指定長度

*原字符已超出指定長度,則會自動從左截取

select rpad('fanqi',2,'*');

用指定的字符實現右填充指定長度

select replace('fanqi is very good','fanqi','樊奇');

替換指定的字符串

  2.數學函數

select round(1.1923,2);

四舍五入,如果不指定保留的小數位數

則默認只保留整數

select ceil(1.1923); 向上取整,返回>=該參數的最小整數
select floor(1.1923); 向下取整,返回<=該參數的最大整數
select truncate(1.1923,1);

截斷,后面有什么都不要了

第二個參數是保留的小數位

select mod(10,3);

取余,mod(a,b)

計算機內部取余公式 a-a/b*b

若a為正,則取余結果為正

若a為負,則取余結果為負

  3.日期函數

select now(); 返回當前系統日期+時間
select curdate(); 返回當前系統日期,不包含時間
select curtime(); 返回當前系統時間,不包含日期

select year(now());
select year('1994-06-24');
select month(now());
select monthname(now());

可以獲取日期中指定的部分

年、月、日、時、分、秒

select str_to_date('1994-06-24','%Y-%c-%d');

將字符串通過指定的格式轉換成日期

格式符詳見下表

select date_format(now(),'%Y年%c月%d日');

將日期通過指定的合適轉換成字符串

格式符詳見下表

select datediff(now(),'1994-06-24'); 計算兩個日期之間相差的天數

        附加:

序號 格式符 含義
1 %Y 4位的年份
2 %y 2位的年份
3 %m 月份(01,02,... 12)
4 %c 月份(1,2,... 12)
5 %d 日(01,02,...)
6 %H 小時(24小時制)
7 %h 小時(12小時制)
8 %i 分鍾(00,01,02,... 59)
9 %s 秒(00,01,02,... 59)

  4.其它函數

select version(); 查看當前MySql版本
select database(); 查看當前打開的庫
select user(); 查看當前用戶
select md5('fanqi'); 返回當前字符串的md5加密形式

   5.流程控制函數

    ①if函數,提供類似於if elst的效果,三目運算符。   

1 select if(10<5,'','');

    ②case函數,有兩種用法

      Ⅰ類似於switch case的效果(既可以當表達式又可以單獨出來作為語句)

        語法:

          case 要判斷的字段或表達式

          when 常量1 then 要顯示的值1或語句1;         //如果為值得話此處不加分號

          when 常量2 then 要顯示的值2或語句2;   //

          ........

          else 默認要顯示的值n或語句n

          end

        案例:查詢員工的工資,要求

                    部門號=30,顯示的工資為1.1倍

                    部門號=40,顯示的工資為1.2倍

                    部門號=50,顯示的工資為1.3倍

                    其它部門,顯示的工資為原工資   

1 select salary 原始工資,department_id,
2 case department_id
3 when 30 then salary * 1.1
4 when 40 then salary * 1.2
5 when 50 then salary * 1.3
6 else salary
7 end as 新工資
8 from employees;

        Ⅱ類似於多重if

          語法:

            case

            when 條件1 then 要顯示的值1或語句1

            when 條件2 then 要顯示的值2或語句2

            .......

            else 默認要顯示的值n或語句n

            end

          案例:查詢員工的工資情況

              如果工資>20000,顯示A級別

              如果工資>15000,顯示B級別

              如果工資>10000,顯示C級別

              否則,顯示D級別

1 select salary 原始工資
2 case
3 when salary > 20000 then 'A'
4 when salary > 15000 then 'B'
5 when salary > 10000 then 'C'
6 else 'D'
7 end as 工資級別
8 from employees;

 

  6.分組函數

    用於統計使用,又稱之為聚合函數或統計函數或組函數

sum 求和
avg 求平均值
max 最大值
min 最小值
count 計算個數

  sum、avg一般用於處理數值型,max、min、count可以處理任何類型

  以上分組函數全部忽略null值,null不參與它們的運算

  可以和distinct搭配實現去重的運算

  select count(字段) from 表名;  //計算非null的行數

  select count(*) from 表名;  //一般用於統計表的行數(帶null)

  select count(7) from 表名;  //相當於在表中加了一列常量值,一般用於統計行數


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM