當前位置:
首頁 > 知識 > MySQL系列(一)——基礎知識大總結

MySQL系列(一)——基礎知識大總結


前言:本文主要為mysql基礎知識的大總結,mysql的基礎知識很多,這裡只是作為簡單的介紹,但是具體的細節還是需要自行搜索。當然本文還有很多遺漏的地方,後續會慢慢補充完善。

資料庫和資料庫軟體

  • 資料庫是保存有組織數據的容器

  • DBMS是為管理資料庫而設計的軟體管理系統,MYSQL、ORACLE 等是資料庫管理系統

MYSQL

  • MYSQL是一種資料庫管理軟體

  • 開放源碼,免費使用

MYSQL命令

  • CREATE DATABASE NAME 創建資料庫

  • USE DATABASE 選擇資料庫

  • DROP DATABASE NAME 直接刪除資料庫

  • SHOW DATABASE 顯示可用資料庫列表

  • SHOW TABLE 顯示資料庫中的表的列表

  • SHOW COLUMNS FROM TABLE 與 DESCRIBE TABLE 等效,顯示錶的欄位信息

  • SHOW GRANTS 顯示授予用戶的安全許可權

  • SHOW ERRORS SHOW WARNINGS 顯示伺服器錯誤和警告信息

SQL

  • STRUCTURED QUERY LANGUAGE 結構化查詢語言,一種專門用於與資料庫通信的語言

  • 不是DBMS專有的語言,很多DBMS都支持SQL,但是不同DBMS對SQL的實現不同

  • DBMS支持的SQL語法不能完全適用於其他DBMS

  • SQL語句不區分大小寫

  • 多條語句需要分號分隔,單條語句可以不用分號

  • 通常SQL語句用大寫,標識符(比如表名 列名 資料庫名)用小寫

創建表

  • CREATE TABLE user (id INT NOT NULL AUTO_INCREMENT, username VARCHAR(50) NOT NULL,password VARCHAR (50) NOT NULL DEFAULT 1,PRIMARY KEY(id)) ENGINE =INNODB

檢索列

  • SELECT username FROM user

  • SELECT username,password FROM user

  • SELECT * FROM user 建議不是要所有的列,不用"*",要不然這種操作是很耗性能的

  • SELECT DISTINCT username FROM user 只返回不同的username,比如有兩行用戶名是一樣的,只顯示一行記錄

限制結果

  • SELECT * FROM TABLE LIMIT 5 檢索前五行

  • SELECT * FROM TABLE LIMIT 5,5 檢索6到10

  • SELECT * FROM TABLE LIMIT 5,-1 檢索6到最後一行

結果排序

  • SELECT * FROM user ORDER BY username,以username的字母順序排列

  • SELECT * FROM user ORDER BY username,password ,如果username有相同的,那麼username相同的再按password排列,如果username都是唯一,這個時候password不起作用

  • SELECT * FROM user ORDER BY username DESC ,降序排列,默認是升序ASC

  • SELECT * FROM user e ORDER BY username DESC,password 此時按照username降序排列,如果username相同的行按照password升序排列

  • SELECT * FROM user ORDER BY username LIMIT 1 混合使用ORDER 和 LIMIT

  • SELECT * FROM user WHERE username ="jiajun" ORDER BY password 這裡ORDER要在WHERE 之後

過濾數據

  • SELECT * FROM user WHERE username <> "jiajun" 不等於 和 != 效果相同

  • SELECT * FROM user WHERE id BETWEEN 1 AND 10 檢索1到10的記錄,包括1和10

  • SELECT * FROM user WHERE username IS NULL 查找列無值的行,這裡的無值不等於 值為0 和 空字元串

  • SELECT * FROM user WHERE id=1 OR username="jiajun" AND password="666" 執行順序是 WHERE id=1 OR (username="jiajun" AND password="666")AND的優先順序更高,但是建議添加括弧

  • SELECT * FROM user WHERE id IN (1,2) 效果和SELECT * FROM user WHERE id=1 OR id =2 如果要實現這種效果,建議使用第一種,語法更清晰,而且一般執行更快

  • SELECT * FROM user WHERE id NOT IN (1,2)

通配符過濾

  • SELECT * FROM user WHERE username LIKE "jia%" ,匹配JIA開頭的username,不管後面有多少字元,jia和jiajun都是匹配,可以配置MYSQL是否區份大小寫,如果區份大小寫,也就是jiajun是不匹配的 。注意LIKE "%"是不能匹配值為NULL的

  • SELECT * FROM user WHERE username LIKE "jia_" , _只能匹配一個字元,也就是匹配jiaj不匹配jiajun

  • 通配符匹配是效率不高,如果其他方式能有相同的效果,建議用其他效果,並且最好不要將通配符放在開始處,因為這樣是很慢的

正則表達式過濾

  • SELECT * FROM user WHERE username REGEXP ".IA" ,正則表達式, . 匹配任意一個字元

  • SELECT * FROM user WHERE username REGEXP "jun" 匹配包含jun的username,"jiajun"和"jun"都匹配

  • SELECT * FROM user WHERE username REGEXP "jiajun|jiaj" ,"|"和"OR" 效果一樣

  • SELECT * FROM user WHERE username REGEXP 『[123]jun』 ,匹配包含"1jun"或者"2jun"或者"3jun"

  • [^123]123除外

  • [1-9],[A-Z],用"-"表示範圍

  • 匹配特殊字元(比如"."和"_")可以採用""轉義,比如匹配有"."的可以這樣表示"."

拼接欄位

  • SELECT CONCAT(username,"C",password,")") FROM user,將兩個欄位拼接到一起,查詢結果是一列,行值 jiajun(666)

  • SELECT CONCAT(username,"C",password,")") AS up FROM user,為拼接後的一列設置欄位名

算數運算

  • SELECT price*count AS all FROM TABLE 將單價和數量相乘,列名為all

函數

  • 函數可移植性不高,也就是一個函數支持一個DBMS,但不一定支持另一個DBMS,比如支持MYSQL而不支持ORACLE。所以使用函數的要寫好注釋。

文本處理函數

  • LENGTH() 返回串長度

  • LOWER()將串轉換為小寫

  • UPPER()將串轉換為大寫

  • LTRIM()去掉串左邊的空格

  • RTRIM()去掉串右邊的空格

日期和時間處理函數

  • CURDATE() 2017-07-22

  • CURTIME()16:20:19

  • NOW() 2017-07-22 16:20:19

  • DATE() 返回日期的日期部分 SELECT DATE(NOW()) 2017-07-22

  • DATE_FORMAT() 返回格式化的日期和時間串

  • HOUR() 返回一個時間的小時部分

  • MINUTE() 返回一個時間的分鐘部分

  • MONTH() 返回一個日期的月份部分

  • NOW() 返回當前日期和時間

  • SECOND() 返回一個時間的秒部分

  • TIME() 返回一個日期時間的時間部分

  • YEAR() 返回一個日期的年份部分

文章來自博客園


「勤工儉學計劃」,給你一個真正0元學習IT技術的機會!

http://www.ujiuye.com/zt/qgjx/?wt.bd=fq37300j

找工作太難?不是你不行,我們來幫你!

http://www.ujiuye.com/zt/jyfc/?wt.bd=fq37300j

交流群:345648424

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 IT優就業 的精彩文章:

優就業帶你參觀360——簡單可信賴、為人民服務
Nancy基於JwtBearer認證的使用與實現
JVM垃圾回收演算法及回收器詳解
SLAM中的優化理論(一)——線性最小二乘

TAG:IT優就業 |

您可能感興趣

SEO基礎知識
Python基礎知識系列——字典
Python基礎知識系列——函數
Python基礎知識系列——字元串
Python基礎知識系列——列表和元組
外研版七年級下冊知識點整理 MODULE 7 My Past Life
TCP/IP知識
Alevel,AP,IB和BC知識貼
RNA-seq測序基本知識
四方框框|ANTONELLA ARISMENDI~網路時代意象中的古代知識融合
從單片機轉ARM,ARM架構基礎知識小結
Hreflang標籤知識與多國語言網站SEO優化
FFMPEG小白之視音頻基礎知識
HTTP Header小知識
OpenStack關鍵技術系列:Libvirt基礎知識
完美Python入門基礎知識點總結
固態硬碟SSD知識匯總
漲知識了!EXO D.O.&WANNA·ONE 朴佑鎮&EXID 率智等idol竟然都有印第安酒窩!
Android系統小知識
長知識:SWI、DWI、DTI技術聯合評價早產兒腦損傷和預後