Ⅰ sql語句實現
這是個sql語句的基本學習手冊
你可以自己查一下
SQL語句學習手冊實例版
表操作
例 1 對於表的教學管理資料庫中的表 STUDENTS ,可以定義如下:
CREATE TABLE STUDENTS
(SNO NUMERIC (6, 0) NOT NULL
SNAME CHAR (8) NOT NULL
AGE NUMERIC(3,0)
SEX CHAR(2)
BPLACE CHAR(20)
PRIMARY KEY(SNO))
例 2 對於表的教學管理資料庫中的表 ENROLLS ,可以定義如下:
CREATE TABLE ENROLLS
(SNO NUMERIC(6,0) NOT NULL
CNO CHAR(4) NOT NULL
GRADE INT
PRIMARY KEY(SNO,CNO)
FOREIGN KEY(SNO) REFERENCES STUDENTS(SNO)
FOREIGN KEY(CNO) REFERENCES COURSES(CNO)
CHECK ((GRADE IS NULL) OR (GRADE BETWEEN 0 AND 100)))
例 3 根據表的 STUDENTS 表,建立一個只包含學號、姓名、年齡的女學生表。
CREATE TABLE GIRL
AS SELECT SNO, SNAME, AGE
FROM STUDENTS
WHERE SEX=' 女 ';
例 4 刪除教師表 TEACHER 。
DROP TABLE TEACHER
例 5 在教師表中增加住址列。
ALTER TABLE TEACHERS
ADD (ADDR CHAR(50))
例 6 把 STUDENTS 表中的 BPLACE 列刪除,並且把引用 BPLACE 列的所有視圖和約束也一起刪除。
ALTER TABLE STUDENTS
DROP BPLACE CASCADE
例 7 補充定義 ENROLLS 表的主關鍵字。
ALTER TABLE ENROLLS
ADD PRIMARY KEY (SNO,CNO) ;
視圖操作(虛表)
例 9 建立一個只包括教師號、姓名和年齡的視圖 FACULTY 。 ( 在視圖定義中不能包含 ORDER BY 子句 )
CREATE VIEW FACULTY
AS SELECT TNO, TNAME, AGE
FROM TEACHERS
例 10 從學生表、課程表和選課表中產生一個視圖 GRADE_TABLE , 它包括學生姓名、課程名和成績。
CREATE VIEW GRADE_TABLE
AS SELECT SNAME,CNAME,GRADE
FROM STUDENTS,COURSES,ENROLLS
WHERE STUDENTS.SNO = ENROLLS.SNO AND
COURSES.CNO=ENROLLS.CNO
例 11 刪除視圖 GRADE_TABLE
DROP VIEW GRADE_TABLE RESTRICT
索引操作
例 12 在學生表中按學號建立索引。
CREATE UNIQUE INDEX ST
ON STUDENTS (SNO,ASC)
例 13 刪除按學號所建立的索引。
DROP INDEX ST
資料庫模式操作
例 14 創建一個簡易教學資料庫的資料庫模式 TEACHING_DB ,屬主為 ZHANG 。
CREATE SCHEMA TEACHING_DB AUTHRIZATION ZHANG
例 15 刪除簡易教學資料庫模式 TEACHING_DB 。(( 1 )選用 CASCADE ,即當刪除資料庫模式時,則本資料庫模式和其下屬的基本表、視圖、索引等全部被刪除。( 2 )選用 RESTRICT ,即本資料庫模式下屬的基本表、視圖、索引等事先已清除,才能刪除本資料庫模式,否則拒絕刪除。)
DROP SCHEMA TEACHING_DB CASCADE
單表操作
例 16 找出 3 個學分的課程號和課程名。
SELECT CNO, CNAME
FROM COURSES
WHERE CREDIT = 3
例 17 查詢年齡大於 22 歲的學生情況。
SELECT *
FROM STUDENTS
WHERE AGE > 22
例 18 找出籍貫為河北的男生的姓名和年齡。
SELECT SNAME, AGE
FROM STUDENTS
WHERE BPLACE = ' 河北 ' AND SEX = ' 男 '
例 19 找出年齡在 20 ~ 23 歲之間的學生的學號、姓名和年齡,並按年齡升序排序。 (ASC (升序)或 DESC (降序)聲明排序的方式,預設為升序。 )
SELECT SNO, SNAME, AGE
FROM STUDENTS
WHERE AGE BETWEEN 20 AND 23
ORDER BY AGE
例 20 找出年齡小於 23 歲、籍貫是湖南或湖北的學生的姓名和性別。(條件比較運算符=、< 和邏輯運算符 AND (與),此外還可以使用的運算符有:>(大於)、>=(大於等於)、<=(小於等於)、<>(不等於)、 NOT (非)、 OR (或)等。
謂詞 LIKE 只能與字元串聯用,常常是 「 <列名> LIKE pattern」 的格式。特殊字元 「_」 和 「%」 作為通配符。
謂詞 IN 表示指定的屬性應與後面的集合(括弧中的值集或某個查詢子句的結果)中的某個值相匹配,實際上是一系列的 OR (或)的縮寫。謂詞 NOT IN 表示指定的屬性不與後面的集合中的某個值相匹配。
謂詞 BETWEEN 是 「 包含於 … 之中 」 的意思。)
SELECT SNAME, SEX
FROM STUDENTS
WHERE AGE < 23 AND BPLACE LIKE' 湖% '
或
SELECT SNAME, SEX
FROM STUDENTS
WHERE AGE < 23 AND BPLACE IN ( ' 湖南 ' , ' 湖北 ' )
例 22 找出學生表中籍貫是空值的學生的姓名和性別。(在 SQL 中不能使用條件:<列名>= NULL 。在 SQL 中只有一個特殊的查詢條件允許查詢 NULL 值:)
SELECT SNAME, SEX
FROM STUDENTS
WHERE BPLACE IS NULL
多表操作
例 23 找出成績為 95 分的學生的姓名。(子查詢)
SELECT SNAME
FROM STUDENTS
WHERE SNO =
(SELECT SNO
FROM ENROLLS
WHERE GRADE = 95)
例 24 找出成績在 90 分以上的學生的姓名。
SELECT SNAME
FROM STUDENTS
WHERE SNO IN
(SELECT SNO
FROM ENROLLS
WHERE GRADE > 90)
或
SELECT SNAME
FROM STUDENTS
WHERE SNO = ANY
(SELECT SNO
FROM ENROLLS
WHERE GRADE > 90)
例 25 查詢全部學生的學生名和所學課程號及成績。(連接查詢)
SELECT SNAME, CNO, GRADE
FROM STUDENTS, ENROLLS
WHERE STUDENTS.SNO = ENROLLS.SNO
例 26 找出籍貫為山西或河北,成績為 90 分以上的學生的姓名、籍貫和成績。(當構造多表連接查詢命令時,必須遵循兩條規則。第一,連接條件數正好比表數少 1 (若有三個表,就有兩個連接條件 ) ;第二,若一個表中的主關鍵字是由多個列組成,則對此主關鍵字中的每一個列都要有一個連接條件(也有少數例外情況))
SELECT SNAME, BPLACE, GRADE
FROM STUDENTS, ENROLLS
WHERE BPLACE IN (『 山西 ' , 『 河北 ') AND GRADE >= 90 AND STUDENTS.SNO=ENROLLS.SNO
例 28 查出課程成績在 80 分以上的女學生的姓名、課程名和成績。( FROM 子句中的子查詢)
SELECT SNAME,CNAME, GRADE
FROM (SELECT SNAME, CNAME , GRADE
FROM STUDENTS, ENROLLS,COURSES
WHERE SEX = ' 女 ')
AS TEMP (SNAME, CNAME,GRADE)
WHERE GRADE > 80
表達式與函數的使用
例 29 查詢各課程的學時數。(算術表達式由算術運算符+、-、 * 、/與列名或數值常量所組成。)
SELECT CNAME,COURSE_TIME = CREDIT*16
FROM COURSES
例 30 找出教師的最小年齡。(內部函數: SQL 標准中只使用 COUNT 、 SUM 、 AVG 、 MAX 、 MIN 函數,稱之為聚集函數( Set Function )。 COUNT 函數的結果是該列統計值的總數目, SUM 函數求該列統計值之和, AVG 函數求該列統計值之平均值, MAX 函數求該列最大值, MIN 函數求該列最小值。)
SELECT MIN(AGE)
FROM TEACHERS
例 31 統計年齡小於等於 22 歲的學生人數。(統計)
SELECT COUNT(*)
FROM STUDENTS
WHERE AGE < = 22
例 32 找出學生的平均成績和所學課程門數。
SELECT SNO, AVG(GRADE), COURSES = COUNT(*)
FROM ENROLLS
GROUP BY SNO
例 34 找出年齡超過平均年齡的學生姓名。
SELECT SNAME
FROM STUDENTS
WHERE AGE >
(SELECT AVG(AGE)
FROM STUDENTS)
例 35 找出各課程的平均成績,按課程號分組,且只選擇學生超過 3 人的課程的成績。( GROUP BY 與 HAVING
GROUP BY 子句把一個表按某一指定列(或一些列)上的值相等的原則分組,然後再對每組數據進行規定的操作。
GROUP BY 子句總是跟在 WHERE 子句後面,當 WHERE 子句預設時,它跟在 FROM 子句後面。
HAVING 子句常用於在計算出聚集之後對行的查詢進行控制。)
SELECT CNO, AVG(GRADE), STUDENTS = COUNT(*)
FROM ENROLLS
GROUP BY CNO
HAVING COUNT(*) >= 3
相關子查詢
例 37 查詢沒有選任何課程的學生的學號和姓名。(當一個子查詢涉及到一個來自外部查詢的列時,稱為相關子查詢( Correlated Subquery) 。相關子查詢要用到存在測試謂詞 EXISTS 和 NOT EXISTS ,以及 ALL 、 ANY ( SOME )等。)
SELECT SNO, SNAME
FROM STUDENTS
WHERE NOT EXISTS
(SELECT *
FROM ENROLLS
WHERE ENROLLS.SNO=STUDENTS.SNO)
例 38 查詢哪些課程只有男生選讀。
SELECT DISTINCT CNAME
FROM COURSES C
WHERE ' 男 ' = ALL
(SELECT SEX
FROM ENROLLS , STUDENTS
WHERE ENROLLS.SNO=STUDENTS.SNO AND
ENROLLS.CNO=C.CNO)
例 39 要求給出一張學生、籍貫列表,該表中的學生的籍貫省份,也是其他一些學生的籍貫省份。
SELECT SNAME, BPLACE
FROM STUDENTS A
WHERE EXISTS
(SELECT *
FROM STUDENTS B
WHERE A.BPLACE=B.BPLACE AND
A.SNO < > B.SNO)
例 40 找出選修了全部課程的學生的姓名。
本查詢可以改為:查詢這樣一些學生,沒有一門課程是他不選修的。
SELECT SNAME
FROM STUDENTS
WHERE NOT EXISTS
(SELECT *
FROM COURSES
WHERE NOT EXISTS
(SELECT *
FROM ENROLLS
WHERE ENROLLS.SNO = STUDENTS.SNO
AND ENROLLS.CNO = COURSES.CNO))
關系代數運算
例 41 設有某商場工作人員的兩張表:營業員表 SP_SUBORD 和營銷經理表 SP_MGR ,其關系數據模式如下:
SP_SUBORD (SALPERS_ID, SALPERS_NAME, MANAGER_ID, OFFICE)
SP_MGR (SALPERS_ID, SALPERS_NAME, MANAGER_ID, OFFICE)
其中,屬性 SALPERS_ID 為工作人員的編號 , SALPERS_NAME 為工作人員的姓名 , MANAGER_ID 為所在部門經理的編號 , OFFICE 為工作地點。
若查詢全部商場工作人員,可以用下面的 SQL 語句:
(SELECT * FROM SP_SUBORD)
UNION
(SELECT * FROM SP_MGR)
或等價地用下面的 SQL 語句:
SELECT *
FROM (TABLE SP_SUBORD UNION TABLE SP_MGR)
( 2 ) INTERSECT
(SELECT * FROM SP_SUBORD)
INTERSECT
(SELECT * FROM SP_MGR)
或等價地用下面的 SQL 語句:
SELECT *
FROM (TABLE SP_SUBORD INTERSECT TABLE SP_MGR)
或用帶 ALL 的 SQL 語句:
(SELECT * FROM SP_SUBORD)
INTERSECT ALL
(SELECT * FROM SP_MGR)
或
SELECT *
FROM (TABLE SP_SUBORD INTERSECT ALL TABLE SP_MGR)
( 3 ) EXCEPT
(SELECT * FROM SP_MGR)
EXCEPT
(SELECT * FROM SP_SUBORD)
或等價地用下面的 SQL 語句:
SELECT *
FROM (TABLE SP_MGR EXCEPT TABLE SP_ SUBORD)
或用帶 ALL 的 SQL 語句:
(SELECT * FROM SP_MGR)
EXCEPT ALL
(SELECT * FROM SP_SUBORD)
例 42 查詢籍貫為四川、課程成績在 80 分以上的學生信息及其成績。(自然連接)
(SELECT * FROM STUDENTS
WHERE BPLACE=『 四川 ')
NATURAL JOIN
(SELECT * FROM ENROLLS
WHERE GRADE >=80)
例3.43 列出全部教師的姓名及其任課的課程號、班級。
(外連接與外部並外連接允許在結果表中保留非匹配元組,空缺部分填以 NULL 。外連接的作用是在做連接操作時避免丟失信息。
外連接有 3 類:
( 1 )左外連接( Left Outer Join )。連接運算謂詞為 LEFT [OUTER] JOIN ,其結果表中保留左關系的所有元組。
( 2 )右外連接( Right Outer Join )。連接運算謂詞為 RIGHT [OUTER] JOIN ,其結果表中保留右關系的所有元組。
( 3 )全外連接( Full Outer Join )。連接運算謂詞為 FULL [OUTER] JOIN ,其結果表中保留左右兩關系的所有元組。)
SELECT TNAME, CNO, CLASS
FROM TEACHERS LEFT OUTER JOIN TEACHING USING (TNO)
SQL 的數據操縱
例 44 把教師李映雪的記錄加入到教師表 TEACHERS 中。(插入)
INSERT INTO TEACHERS
VALUES(1476 , ' 李映雪 ' , 44 , ' 副教授 ')
例 45 成績優秀的學生將留下當教師。
INSERT INTO TEACHERS (TNO , TNAME)
SELECT DISTINCT SNO , SNAME
FROM STUDENTS , ENROLLS
WHERE STUDENTS.SNO = ENROLLS.SNO AND GRADE >= 90
例 47 把所有學生的年齡增加一歲。(修改)
UPDATE STUDENTS
SET AGE = AGE+1
例 48 學生張春明在資料庫課考試中作弊,該課成績應作零分計。
UPDATE ENROLLS
SET GRADE = 0
WHERE CNO = 'C1' AND
' 張春明 ' =
(SELECT SNAME
FROM STUDENTS
WHERE STUDENTS.SNO=ENROLLS.SNO)
例 49 從教師表中刪除年齡已到 60 歲的退休教師的數據。(刪除)
DELETE FROM TEACHERS
WHERE AGE >= 60
SQL 的數據控制
例 50 授予 LILI 有對表 STUDENTS 的查詢權。(表/視圖特權的授予
一個 SQL 特權允許一個被授權者在給定的資料庫對象上進行特定的操作。授權操作的資料庫對象包括:表 / 視圖、列、域等。授權的操作包括: INSERT 、 UPDATE 、 DELETE 、 SELECT 、 REFERENCES 、 TRIGGER 、 UNDER 、 USAGE 、 EXECUTE 等。其中 INSERT 、 UPDATE 、 DELETE 、 SELECT 、 REFERENCES 、 TRIGGER 有對表做相應操作的許可權,故稱為表特權。)
GRANT SELECT ON STUDENTS
TO LILI
WITH GRANT OPTION
例 51 取消 LILI 的存取 STUDENTS 表的特權。
REVOKE ALL
ON STUDENTS
FROM LILI CASCADE
Ⅱ 新手怎麼學習數據分析
第一方面是數學基礎,第二方面是統計學基礎,第三方面是計算機基礎。要想在數據分析的道路上走得更遠,一定要注重數學和統計學的學習。數據分析說到底就是尋找數據背後的規律,而尋找規律就需要具備演算法的設計能力,所以數學和統計學對於數據分析是非常重要的。
而想要快速成為數據分析師,則可以從計算機知識開始學起,具體點就是從數據分析工具開始學起,然後在學習工具使用過程中,輔助演算法以及行業致死的學習。學習數據分析工具往往從Excel工具開始學起,Excel是目前職場人比較常用的數據分析工具,通常在面對10萬條以內的結構化數據時,Excel還是能夠勝任的。對於大部分職場人來說,掌握Excel的數據分析功能能夠應付大部分常見的數據分析場景。
在掌握Excel之後,接下來就應該進一步學習資料庫的相關知識了,可以從關系型資料庫開始學起,重點在於Sql語言。掌握資料庫之後,數據分析能力會有一個較大幅度的提升,能夠分析的數據量也會有明顯的提升。如果採用資料庫和BI工具進行結合,那麼數據分析的結果會更加豐富,同時也會有一個比較直觀的呈現界面。
數據分析的最後一步就需要學習編程語言了,目前學習Python語言是個不錯的選擇,Python語言在大數據分析領域有比較廣泛的使用,而且Python語言自身比較簡單易學,即使沒有編程基礎的人也能夠學得會。通過Python來採用機器學習的方式實現數據分析是當前比較流行的數據分析方式。
對大數據分析有興趣的小夥伴們,不妨先從看看大數據分析書籍開始入門!B站上有很多的大數據教學視頻,從基礎到高級的都有,還挺不錯的,知識點講的很細致,還有完整版的學習路線圖。也可以自己去看看,下載學習試試。
Ⅲ 零基礎學sql要多久
入門需要一個月。
結構化查詢語言(Structured Query Language)簡稱SQL,是一種特殊目的的編程語言,是一種資料庫查詢和程序設計語言,用於存取數據以及查詢、更新和管理關系資料庫系統。
結構化查詢語言是高級的非過程化編程語言,允許用戶在高層數據結構上工作。它不要求用戶指定對數據的存放方法,也不需要用戶了解具體的數據存放方式。
所以具有完全不同底層結構的不同資料庫系統,可以使用相同的結構化查詢語言作為數據輸入與管理的介面。結構化查詢語言語句可以嵌套,這使它具有極大的靈活性和強大的功能。
(3)10小時學會sql擴展閱讀
SQL的核心部分相當於關系代數,但又具有關系代數所沒有的許多特點,如聚集、資料庫更新等。它是一個綜合的、通用的、功能極強的關系資料庫語言。其特點是:
1、數據描述、操縱、控制等功能一體化。
2、兩種使用方式,統一的語法結構。SQL有兩種使用方式。一是聯機交互使用,這種方式下的SQL實際上是作為自含型語言使用的。
另一種方式是嵌入到某種高級程序設計語言(如C語言等)中去使用。前一種方式適合於非計算機專業人員使用,後一種方式適合於專業計算機人員使用。盡管使用方式不向,但所用語言的語法結構基本上是一致的。
Ⅳ 只懂用Excel做數據分析,想自學SQL建立資料庫,該怎樣開始起步 一直擅長Excel的操作,給
十幾二十萬的數據用excel確實吃力了一些呀
學sql的時間根據你對IT技術的接受程度不同所需要的時間不同
如果你現在知道excel的各種公式,包括sumproct、index、match,以及可以直接手寫出來而不用滑鼠的話,相信你的sql一周之內即可學會基礎的使用了
如果你現在已經熟悉vba代碼,能夠用代碼來處理一些公式所不能及的功能,相信你的sql三天之內即可學會基礎的使用了
如果要問從哪裡開始學起……
建議直接上sql server 2008
因為sql server有比較好的交互界面,並且在創建資料庫、表的時候都可以直接用滑鼠操作,相比mysql的話可以花更多的時間在學習編寫查詢語句上
當學會了查詢語句的基本寫法及鏈接查詢的寫法以後
可以算是能夠有效利用sql了的
再之後再慢慢學習創建表啊視圖啊索引啊的sql語句,然後再慢慢深入唄
基於你的需求,在學會了查詢語句的基本寫法及鏈接查詢的寫法以後就可以滿足了
估計時間三天到一周吧
書的話隨便買一本sql server 的教程就好了的
沒有說誰的特別好誰的特別差
之後就多逛逛各種論壇請教大神們使用中的問題
並且學會高效利用網路就好了。
Ⅳ SQL難學嗎自學的話大概要多長時間
SQL如果有老師教的話一個星期就能上手,但要學好一年二年不算長,關鍵看你做什麼應用,做資料庫維護,那就要學精,要很長時間的學習與實踐;如果只是存數據來開發應用程序,那把:庫、表、行、列弄清楚,就可以用。自學花的時間會長點,不過不會很難。照著學沒有問題。
SQL學習多久,覺得看學員基礎情況。1、如果原來什麼語言也沒有學過,也沒有基礎,那最基礎的要先選擇一種語言來學習,是VB,C..,pascal,看個人的喜好,一般情況下,選擇C語言來學習2、如果是有過語言的學習,看應該一個星期差不多,因為語言的理念互通的,只是所用的命令有所不一樣。3、以前用過其它資料庫管理,那應該兩天就可以,主要熟悉界面和管理,其它的沒什麼變化。
想了解更多有關編程語言的詳情,推薦選擇【達內教育】。該機構具有豐厚的師資力量,優秀的教學體系,教學質量突出,實戰講師,經驗豐富,理論知識+學習思維+實戰操作,打造完整學習閉環。達內教育獨創TTS8.0教學系統,並設有企業雙選會。達內的OMO教學模式,全新升級,線上線下交互學習,直播學,隨時學,隨時問,反復學,學習安排更便捷。→感興趣的話點擊此處,免費學習一下
Ⅵ mysql多久能學會
有資料庫功底的(mssql/oracle/sybase)一天就能吃透,沒有資料庫基礎的話,恩,是要點時間的,如果你安裝了mysql 建議你用mysql搭建個伺服器環境,學習時間一周差不多(前提:大學時考試都是考前一周才學習而且不掛科)
Ⅶ 有沒有好的學習SQL的教程...初級的。
列出以下經典SQL教程下載,如果想獲得更多更新的SQL教程請到www.ibook8.com進入SQL教程列表,更有經典SQL視頻教程等著您。01 SQL Server 2000 看圖教程 17M 推薦 02 SQL server 2000自學教程 7M 推薦 03 SQL Server 7參考手冊 96M 04 SQL Server精華 4.53M 05 SQL Server 2000資料庫開發從零開始 10M 推薦 06 SQL Server 2000資料庫管理 16M 07 戰勝SQL Server必做練習50題 16M 推薦 08 SQL SERVER 2000培訓教程 4.8M 09 sql server2000實用工具大全 14M 10 SQL基礎教程 6.02M 推薦 11 10分鍾學會SQL 324K 12 Microsoft SQL Server7 資料庫技術指南 16M 13 Sql Server7教程 39M 14 Microsoft SQL Server高級編程管理指南 7.5M 15 SQL7.0教程 19.85M 16 SQL Server 2000編程員指南 32M 17 SQL Server 2000資料庫開發 13M 18 輕松搞定SQL Server 2000程序設計 10M 19 SQL入門,使用與高級使用篇 55K 20 SQL Server 7.0 資料庫管理與應用開發 20.86M 21 SQL Server 2000開發指南 15M 22 SQL_Server_2000編程人員指南 36M 23 SQL Server 2000開發者指南 8.1M 24 21天學會Sql 2.1M 25 SQLServer7關系資料庫系統管理與開發 14.3M 26 SQL SERVER 7.24 學時教程 14M 27 SQL系統管理員新起點--7.0實用教程 4.88M 28 sql_server_7編程技術內幕 19.6M 29 Microsoft SQL Server 管理員手冊 6M 30 SQL Server2000 管理手冊 9.4M 31 SQL 2000 簡明教程 4.77M 32 SQL Server 2000 學習教程 10.5M 33 SQL7.0最新教程 38M 34 SQL Server 2000菜鳥進階 408K 連接 http://www.ibook8.com/book/sql.htm
Ⅷ 請問:多久能學會SQL
SQL基礎的1天就能學懂,但要用在實際工作中,寫幾百行分組的,不同邏輯要求的,幾年的工作都可以從中學到新東西。
Ⅸ 學會SQl Server得多長時間
基礎就是建庫,建表,約束條件,關系,增刪改查,高級查尋就是用t-sql語句來建前面那些,再就是索引,視圖,存儲器,會Oracle學SQL就不難了,我現在是會SQL在學Oracle,http://video..com/v?ct=301989888&rn=20&pn=0&db=0&s=8&word=sql
Ⅹ MySQL與sql server一般要多長時間能學會
那要看個人的領悟能力了
一般來說學個一兩個月就能初步學懂SQL SERVER
以後學另外一個就短了 應為都差不多