標籤:student asc sele prim 開頭 base 時間 順序 diff
mysql中:終止語句方法:
1.在語句結尾處,輸入分號(;)表示語句到此結束
2.使用\g(意思是go)
\G以垂直的方式顯示結果,每行顯示一個值
資料庫:資料庫中包含表,對錶中資料執行插入,檢索,修改或刪除操作
建立新的資料庫:CREATE DATABASE sampdb;(從小寫字母這裡開始是自己取的資料庫名字)
將當前資料庫選中並設為預設資料庫:①USE sampdb; ②SELECT DATABASE();
建立表:CREATE TABLE tbl_name(colum_spaces);
資料類型VARCHAR: VARCHAR(n)表示該列可存放長度可變的字串,但其長度存在上限,最大字元為n個字元
AUTO_INCREMENT:自動產生索引號
PRIMARY KEY(member_id):表示member_id列建立索引,要求該列裡的所有值都必須唯一,可以加快表的尋找速度
ENUM(‘F‘,‘M‘); 把表列的可能取值限定在某個有限集合裡
建立一個表時在其末尾加ENGINE,表示為mysql應該使用的儲存引擎指定名字(儲存引擎是用來管理某種表的處理器),如:ENGINE=InnoDB;
表中插入一行值:INSERT INTO tbl_name VALUES(valu1,value2...); eg: INSERT INTO student VALUES(‘lymle‘,‘M‘,NULL);
還可以在一個表中一次插入多行:eg:INSERT INTO student VALUES(‘Avery‘,‘F‘,NULL),(‘Nathan‘,‘M‘,NULL);
建立的行,指定幾列賦初值:格式:INSERT INTO tbl_name(col_name1,col_name2...) VALUES(value2,value2...); eg: INSERT INTO member (last_name,first_name)VALUES (‘stein‘,‘waddo‘);
可一次插入多個值值列表:INSERT INTO student(name,sex) VALUES(‘Abby‘,‘F‘),(‘Jo‘,‘M‘);
指定幾列賦初值,第二種形式:INSERT INTO tbl_name SET col_name1=value,col_name2=value2...; eg:INSERT INTO member SET last_name=‘stein‘,first_name=‘waldo‘;
從檔案中讀取已經編好的語句(不像每次輸入一行,檔案中的是語句全部提前打好,最終一次性輸入),倘若mysql已經運行,可以執行如下格式,SOURCE 檔案名稱; eg:SOURCE insert_president.sql 此處檔案名稱自己取,末尾的sql是方便尋找代表裡面存放的是sql語句。
讀取檔案中轉載的未經處理資料:格式:LOAD DATA LOCAL INFILE ‘檔案名稱‘ INTO
檢索資訊: SELECT ( what to retrieve) FROM (table or tables) WHERE (coditions that data must satisfy); 其中大寫字母為關鍵字,括弧中的為可替換詞
WHERE子句的運算式:允許使用算術運算子,比較子,邏輯運算子。
當把一個列與大量值進行比較時,即從選中的這列中篩選出滿足條件的值(只需滿足其中一個條件即可)時,用IN()會比較方便 eg: SELECT last_name,first_name FROM president WHERE state IN(‘VA‘,‘MA‘);
NULL表示無值或未知值,要判斷一個值是否為NULL,只能用IS NULL 或IS NOT NULL,而不能用=,<,或<>(這是不等於的意思) eg:SELECT last_name,first_name FROM president WHERE death IS NULL; <=>用於比較NULL與NULL,NULL與NULL的結果為1
對查詢結果排序:在查詢語句後加一條ORDER BY 子句,預設是升序排列,在列名後面加關鍵字ASC(升序)或DESC(降序又叫逆序) eg:SELECT last.name,state FROM president ORDER BY state DESC;
對多列排序時,每列可以單獨地升序或降序: eg:SELECT last_name,state FROM president ORDER BY state ESC,last_name ASC;
排序時,升序:NULL出現在開頭,降序時,NULL出現在末尾。想要不服從這種順序,可以使用IF()函數,計算第一個參數給出地運算式的值,結果為真,返回第二個參數的值,若結果為假,則返回第三個參數的值,排序時預設把真的放到假的前面,設定時可以把需要排在前面的通過條件設成真即可。
限制查詢結果輸出行數:在末尾加LIMIT eg:SELECT bir FROM pre ORDER BY birth LIMIT 5; 按出生日期把排在前5位的總統列出來
通過LIMIT,從查詢結果的中間抽出部分連續行,需要指定兩個值,①從查詢結果的開頭跳過的行數②需要返回的行數目 eg: SELECT birth FROM president ORDER BY birth DESC LIMIT 10,5; //跳過前10行,取之後連續的5行
將查詢結果串連,使用關鍵字CONNECT eg:SELECT CONNECT (first_name,‘ ‘,last_name)CONNECT(city,‘ ‘,state) FROM president; //先將名和姓用空格連起來,串連表中的幾列
為輸出資料行分配別名(當輸出資料行的名字很長時),格式:AS name 若輸出資料行別名中含有空格,別名必須用引號引起來 eg: SELECT CONNECT (first_name,‘ ‘,last_name)AS name, CONNECT(city,‘ ‘,state) AS Birthplace FROM president ;
在為列提供別名時,可以省略關鍵字AS, eg:SELECT 1 one,2 two,3 three;
檢索具體的某一年,月,日,使用YEAR(),MONTH(),DAYOFMONTH()函數, eg:SELECT last_name,birth FROM president WHERE MONTH(birth)=3 AND DAYOFMONTH(birth)=29;//找出3月29日出生的總統
查詢今日,使用CURDATE()函數
查詢兩個日期間的時間間隔:①當已知兩個日期時,用TIMESTANPDIFF()函數, 格式: TIMESTAMPDIFF(interval,datetime_expre1,datetime_expr2) 後面兩個是比較的時間點,後減前為時間間隔,其中 interval(時間間隔單位)必須是下面幾種之一: FRAC_SECOND 表示間隔是毫秒, SECOND 秒 ,MINUTE 分鐘,HOUR 小時 DAY 天 ,WEEK 星期, MONTH 月, QUARTER 季度 , YEAR 年 eg: SELECT last_name,expiration FROM member WHERE TIMESTAMPDIFF( DAY ,CURDATE(),expiration)<60;
②已知一個日期和時間間隔,計算另一個日期,關鍵函數:DATA_ADD()和DATA_SUB() eg: SELECT DATA_ADD(‘1970-1-1‘, INTERVAL 10 YEAR); //其中的interval為間隔,該條語句能把在這10年期間的都搜尋出來
mysql技術內幕之常規使用