摘要:比如用戶表,第一行表示張三第二行表示李四,每一行都包含所有的列也就是字段。也是一種數據庫管理系統。但是,活躍的社區都給出了解決辦法,也在逐步成長。
本文主要介紹Mysql最基礎知識:Mysql基本概念。
1.1 數據庫基礎 1.1.1 簡介數據庫,從字面意思來理解就是一個用來裝數據的容器。每天我們都在和數據庫打交道,比如你每天打開APP瀏覽新聞,瀏覽微博,這些都是間接的使用數據庫。
用專業術語來描述一下數據庫概念:一個以某種有組織的方式存儲的數據集合。你可以把他理解為一個電腦上的文件夾,里面有序的存著你的東西。
再說一個容易混淆的概念。Mysql、oracle這些并不叫數據庫,他們應該叫數據庫管理系統DBMS(你大學課堂上經常要背的概念)。他們是幫助你去管理數據庫,這點不能混淆了。
現在企業中常用的數據庫有下面這些
關系型數據庫:Mysql、Oracle
非關系型數據庫NoSql:Mongodb
內存型數據庫,鍵值對數據庫:Redis
其他還有一些,開發常用數據庫集合
1.1.2 表數據庫相當于一個文件夾,表就是文件夾內的一個文件,這個文件有點兒像excel表格文件。當你需要管理一些數據的時候,你要先創建一個excel文件,然后在里面錄入一些數據。數據庫的表也是這個意思。
一般來說,在數據庫中,一個表內存儲的內容大體相似。比如,所有的用戶信息存儲在一張表。當你再需要存儲用戶的購買商品信息時候,就需要重新創建一張表,而不是將他們全部堆在一個表中。
每個表都會有自己的名字,和電腦上的文件一樣。同一個文件夾內不能有相同的兩個文件,同一個數據庫內也不能有兩個同名的數據表。
在實際開發中你可能會看到如下的表名。
他們具有相同的前綴wp_,這是為了同一個庫中存放不同用途的表而設定的。比如我做個博客,表明都用wp_開頭;我在做個商城,我用shop_開頭,這樣互不沖突。
1.1.3 列先看一個數據表內的結構
表是一個一個的表格組成的,豎直方向一列就是被稱為列,也叫字段。一個列存儲的內容大體相同,比如你做excel表格時候,第一列都是姓名,第二列都是年齡一樣。
為了便于管理分析數據,在創建字段的時候盡量的需要細化。比如用戶有個地址叫:XX省XX市XX區,這個時候不能只創建一個地址字段,而是應該把省市區拆分開創建3個字段。之后數據分析,來自XX省的用戶就方便多了。
1.1.4 行列表示豎著的,行就表示為橫著的。比如用戶表,第一行表示張三、第二行表示李四,每一行都包含所有的列(也就是字段)。
通常我們把第一行的張三和第二行的李四成為記錄。每次多一個用戶信息,就會說增加了一條記錄。所以,行也被成為記錄。
1.1.5 數據類型數據庫為了加快檢索速度增加了很多規則,其中給數據定義類型就是其中一條。數據表中的每個字段在創建的時候都需要給定一個類型,比如用來存儲數字的就定義為數字類型。儲存昵稱的就可以使用字符串類型。
這樣做既可以優化性能,也可以限定一些輸入。比如在用戶年齡里面你就不能輸入漢字,這樣后期處理也特別方便。
1.1.6 主鍵數據表中可以存儲幾條數據,也可以存儲幾千萬條數據。如果我們需要尋找一條數據,少量數據還有辦法。但是數據量特別大的時候,我們想要找到一條數據可不是一件容易的事情。所以,在創建字段時候,我們還需要給每一行加一個可以唯一標識該行數據的標識符,也叫主鍵。比如第一行數據叫1,第二行數據叫2,以此類推。如果我需要找到第123456行記錄,只需要找主鍵為123456就可以了,極大地提高了搜索效率。
關于主鍵有幾個好的建議:
每個行都必須有一個主鍵,哪怕不需要。方便以后業務拓展管理。
任意兩行不能有重復的主鍵
不能更新主鍵的值
一條記錄被刪除之后,不能重復使用它的主鍵。
1.2 什么是SQL 簡介下面來簡介一下操作數據庫的語言SQL。SQL被稱為結構化查詢語言,是一種專門為和數據庫通信的語言。
和其他語言,比如PHP,Java一樣,都是程序語言。
SELECT user_name FROM br_user;
我們寫了一條很簡單的SQL語句。即使你沒有學過也可以大體上理解他的意思,因為他的語句非常的直白。
除了這些,他還有下面的這些優點:
SQL不是特別為哪一個數據庫開發的語言,是一種通用語言,幾乎所有的數據庫都支持。
SQL特別簡單,他的語句基本上和英語結構一致。所以,懂點兒英語就可以直接看懂。故也被成為最應該是高級語言的語言。
SQL雖然語法很簡單,但是功能卻非常強大。可以檢索出非常復雜的數據。
1.3 了解Mysql 1.3.1 簡介數據庫在使用中的查詢、查找和刪除等等操作都是由數據庫管理軟件來執行。也俗稱DBMS(數據庫管理系統)。Mysql也是一種數據庫管理系統。
Mysql優點:
免費開源,節約成本
性能優異,Mysql執行速度十分快
操作簡單,學習成本十分低。網絡上面有大量的社區和文檔。
應用廣泛,有很多大公司都在使用Mysql數據庫,比如facebook、百度、淘寶等等。
當然,Mysql也有一些缺點,他沒有完全支持其他DBMS提供的功能。但是,活躍的社區都給出了解決辦法,Mysql也在逐步成長。
1.3.2 安裝 windows安裝去Mysql官網下載Mysql安裝包,下一步下一步安裝即可
Linux下安裝我們只舉一個例子,ubuntu。直接使用自帶包管理工具。
sudo apt-get install mysql-server
在安裝過程中,mysql 等均會提示設置root密碼。(別隨便添,要記住喲!)
1.3.3 常用管理工具簡介phpmyadmin:著名的web版本Mysql管理工具,最適合本地管理Mysql
navicat:商業版本的Mysql管理工具,功能十分簡單,使用十分方便
workbench:Mysql官方提供的管理工具,功能強大,但是相比于navicat和phpmyadmin有點兒復雜。有免費版本。
上面3個是常用的,查看更多
1.4 Mysql使用 1.4.1 連接數據庫Mysql與其他數據庫一樣,在使用之前都需要登錄DBMS。所以之前你需要提供一些信息來確保登錄:
主機名。遠程主機可以是IP或者域名;如果Mysql安裝在本地,可以使用localhost
端口號。一般默認使用3306
用戶名。
密碼。這里的密碼就是之前安裝時候需要你填寫的,可能為空
有了這些信息就可以實施登陸操作。如果你使用上面提到的客戶端軟件登錄就十分簡單,直接輸入即可登錄。
如果你使用Mysql自帶的命令行工具登錄,則使用如下命令
mysql -u root -p
-u 表示選擇登陸的用戶名, -p 表示登陸的用戶密碼,上面命令輸入之后回車,會提示輸入密碼,此時輸入密碼就可以登錄到mysql。
注意:linux下面的大部分輸入密碼操作界面沒有任何提示信息,也不會出現***。所以不要認為鍵盤壞了啥也輸入不了。
1.4.2 選擇數據庫當你連接到Mysql之后,第一步就需要選擇數據庫,之后才可以進行相應操作。比如建表。
use bidianer;
使用上面的語句選擇bidianer數據庫
如果在命令行中,你會看到database changed提示。
提示:其實mysql在執行use my_database;時候并不會返回任何結果。此處的database changed提示是Mysql命令行工具操作成功之后給出的提示,而不是數據庫給出的提示。
在客戶端工具中選擇數據庫就簡單多了,直接雙擊。
1.4.3 Mysql數據庫和表剛剛安裝完,會發現數據庫中已經存在了幾張表。這些表是Mysql內部表,用來存儲自身的數據庫、表、用戶還有權限等等信息。
這些表一般不能直接訪問,但是可以使用Mysql提供的一些命令來獲取信息。
比如我們要獲取所有數據庫信息:
SHOW DATABASES;
我們得到如下結果(我自己的數據庫,你們可能不一樣)
可以看到我上面命令用大寫,但是圖中我用小寫。所以Mysql對大小寫不敏感。
看最后一行,有具體的行數量和執行的時間。
如果你選擇了一個數據庫,可以使用下面的命令查看數據庫所包含的所有表
USE bidianer; SHOW TABLES;
在Mysql命令行輸入命令需要在結尾處打上分號。否則Mysql會跳轉到下一行等待繼續輸入。
SHOW命令還可以顯示一個表的字段信息
show columns from br_attachment;
上圖中我們看到第一行att_id最后有個auto_increment。這個叫自增長ID
上面我們提到主鍵不能重復。所以最好的辦法就是用數字往上面累加,第一行為id為1,第二行為2,依次類推。
auto_increment就是Mysql提供的一個功能,他會自動為每條記錄分配一個ID,并且依次累加。
上面是個插曲,現在我們再說下SHOW命令還能干啥
SHOW STATUS,用于顯示Mysql服務器運行狀態信息
SHOW CREATE DATABASE用來顯示創建特定數據庫
SHOW CREATE TABLE用來顯示創建特定表
SHOW GRANTS顯示用戶的權限信息
SHOW ERRORS和SHOW WARNINGS顯示服務器錯誤或者警告消息
星空幻穎,嚴穎
個人主頁:segmentfault
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/22243.html
摘要:本文參考必知必會工作實踐融合組合查詢定義在大多數開發中,使用一條查詢就會返回一個結果集。在查詢結果集中幫我們自動去除了重復的行重復的行是李四,把兩條李四合并了。注意由于在多表組合查詢時候,可能表字段并不相同。 本篇文章主要介紹使用Union操作符將多個SELECT查詢組合成一個結果集。本文參考《Mysql必知必會》+工作實踐融合 組合查詢 定義 在大多數開發中,使用一條SELECT查詢...
摘要:編程語言中經常使用函數來處理一些字符串,數字或者其他內容。所以如果需要移植要慎重使用函數。該函數有兩個參數,第一個參數為字符串,第二個參數為字符串長度。還有另外兩個相似函數去除字符串左側空格去除字符串右側空格字符串截取函數。 編程語言中經常使用函數來處理一些字符串,數字或者其他內容。MySQL也是一樣,可以使用函數來快速達到一系列的目的。 在上一篇文章《計算字段的使用》中,我們提前使用...
閱讀 3166·2021-11-04 16:09
閱讀 3143·2021-09-23 11:49
閱讀 3657·2021-09-09 09:33
閱讀 3646·2021-08-18 10:22
閱讀 2052·2019-08-30 15:55
閱讀 3641·2019-08-30 15:53
閱讀 2666·2019-08-28 18:08
閱讀 905·2019-08-26 18:18