繼續資料庫操作:
(1)列轉行
原始資料庫:
select c.id,'語文' 課程,yw 成績 from cjb c
union all
select c.id,'數學' 課程,sx from cjb c);
轉化後的資料:
(2)行轉列
--將(1)中轉化後的表建立檢視,名稱:v_myview
create view v_myview as
select * from
(select c.id,'語文' 課程,yw 成績 from cjb c
union all
select c.id,'數學' 課程,sx from cjb c);
--方法一
select v.id,max(case when v.課程 = '語文' then v.成績 else 0 end) 語文,
max(case when v.課程 = '數學' then v.成績 else 0 end) 數學 from v_myview v group by v.id;
--方法二
select v.id,max(decode(v.課程,'語文',v.成績,0)) 語文,
max(decode(v.課程,'數學',v.成績,0)) 數學 from v_myview v group by v.id;
資料庫常用函式(1) 字串大小寫轉換
select lower('hello'),upper('world') from dual;
(2) 獲取字串長度
--會計算空格,中文和字母長度一樣
select length('hello world'),length('你好,世界') from dual;
(3)擷取字串,從1開始數
select substr('hello world',3,5) from dual;
(4)獲取字串位置
--從第乙個位置開始找o出現的位置
select instr('helloworld', 'o', 1) from dual;
(5)替換文字
--將'o'替換為'我'
select replace('helloworld','o','我') from dual;
(6)四捨五入
--留兩位小數
select round(196.2561,2) from dual;
(7)擷取數字或日期且不改變資料型別
--第二個引數可以不填,預設取整
select trunc(1568.65,2) from dual;
(8)向上,下取整
--ceil向上取整 floor向下取整
select ceil(65.1),floor(65.9) from dual;
(9)取餘數,取冪,絕對值
select mod(18,5),power(2,4),abs(200 - 500) from dual;
(10)獲取當前日期
select sysdate,systimestamp from dual;
(11)新增月份
--加12個月
select add_months(sysdate,12) from dual;
(12)獲取月的最後一天的日期
--獲取當前月的最後一天
select last_day(sysdate) from dual;
從零開始學習MySQL 資料庫管理 003
mysql訪問控制由兩部分構成 許可權位置 mysql 資料庫包含五個主要的授權表 create user yourname identified by password create user yl localhost identified by yl 新建本地賬戶 create user yl ...
從零開始的MySQL學習,資料庫索引
二 如何建立索引 三 檢視索引 四 刪除索引 create index 索引的名字 on tablename 列的列表 舉例 create table stu01 id int 2 not null name varchar 10 not null score int 4 index index s...
從零開始學編碼3
從零開始學編碼1中我們對編碼這個概念進行了了解。在從零開始學編碼2中學習了基本的電路知識。這篇我們說一說進製數。在遠古時期,人類便有了計數的需求,看著自己的手指,大拇指代表乙個蘋果,食指代表第二個蘋果,中指代表的第三個蘋果 好吧人類只有十根手指,可能只能做十以內的計數,後來人的思維能力發散,有了邏輯...