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