資料庫從零開始 3

2021-09-26 18:36:26 字數 2316 閱讀 2761

繼續資料庫操作:

(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中學習了基本的電路知識。這篇我們說一說進製數。在遠古時期,人類便有了計數的需求,看著自己的手指,大拇指代表乙個蘋果,食指代表第二個蘋果,中指代表的第三個蘋果 好吧人類只有十根手指,可能只能做十以內的計數,後來人的思維能力發散,有了邏輯...