深度學習之主流資料庫 | MySQL基礎,主流mysql

來源:互聯網
上載者:User

深度學習之主流資料庫 | MySQL基礎,主流mysql
北京 | 深度學習與人工智慧研修

12月23-24日

再設經典課程  重溫深度學習閱讀全文 >


本文共4732個字,21張圖,預計閱讀時間:12分鐘。


這篇文章主要是講一下常見的MySQL的安裝,和基本操作。適合完全沒有MySQL知識但是又急需一些MySQL知識的童靴作為快速入門使用。


背景與安裝


背景不用多說了,大家都懂得。直接說在Ubuntu下面的安裝吧。其實也是很簡單。這裡不搞複雜的源碼安裝,就依次輸入下面非常簡單的命令安裝就夠了。


sudo apt-get install mysql-server 
sudo apt isntall mysql-client 
sudo apt install libmysqlclient-dev


中間會有彈出設定密碼的介面,設定密碼就是了。然後驗證一下是不是安裝上了MySQL,這裡可以輸入下面的命令(這個命令下面會解釋)來登入mysql.


mysql -u root -p


然後輸入你的密碼,發現登入上去的介面,說明已經安裝成功了。 


安裝可視化介面


sudo apt-get install mysql-workbench


安裝成功之後的第一件事情,就是調整字元集為utf8,畢竟身處中文地區,不希望有一些不想見到的亂碼問題。 


剛剛裝好的mysql的設定檔地址在/etc/mysql/my.cnf,用任意一個文字檔開啟他,複製下面這幾句到檔案中去(如)。


[mysqld] 
init_connect=’SET collation_connection = utf8_unicode_ci’ 
init_connect=’SET NAMES utf8’ 
character-set-server=utf8 
collation-server=utf8_unicode_ci 
skip-character-set-client-handshake



儲存好之後,重新啟動mysql服務,


sudo service mysql restart


登入mysql(前面剛剛講),輸入


show variables like ‘%character%’;


 

如,說明修改字元集成功了。


常用命令

1、串連和退出MYSQL


串連既可以本地串連,也可以遠端連線。比如上面驗證MySQL是不是已經裝上去的時候,就登入過MySQL,其實這個也算是一種本地串連。那麼串連MySQL的一般格式如下。


mysql -h(主機地址) -u(使用者名稱) -p(密碼)


例1:串連本地MySQL


mysql -u root -p


其實這裡你就應該可以知道,-u後面是名為root的使用者名稱,其實mysql為超級管理員預設了root的使用者名稱,密碼就是一開始安裝mysql的時候設定的密碼。所以這個命令還是挺好理解的。


2、建立和刪除資料庫


要是一開始沒有任何的資料庫的話,建立資料庫肯定是最基本的一步啦,或者你想建立一個新的資料庫的話。建立資料庫也很簡單。下面的命令就行。 


建立:


create database databasename;(資料庫名字)


刪除:


drop database databasename;(資料庫名字)


比如我想建立一個名字叫做cat的資料庫,就照搬上面的建立模式就行了。(;標點不要掉了)


create database cat;


同樣的,刪除這個cat資料庫也是類似的寫法。


3、查看資料庫資訊和使用資料庫


經過上面的建立的過程,你應該建立了一個資料庫了,那麼怎麼查看目前使用者擁有許可權的資料庫呢?就是show系列的命令啦。


show databases;


 

可以看到上面圖中就有剛剛建立的cat這個名稱的資料庫啦。接下來就是使用某個資料庫,命令也很簡單。


use name;


很好理解,中文翻譯過來就是使用名叫xx資料庫,有一點要注意,就是用了這個命令之後,接下來的所有的操作都是在這個資料庫下面了。直到關閉MySQL串連或者切換到另外一個資料庫之前。比如下面以cat這個資料庫為例子。


use cat;


 

從現在開始,接下來你做的操作都是在cat這個資料庫下面,所以要清楚。


4、MYSOL常用類型


程式設計語言一樣,MySQL也是有常用的資料類型的,熟悉其常用資料類型,是之後建立表和其他動作的基礎。 


MySQL的資料類型總體上可分為三類:數字,日期,時間和字串類型。


數字資料類型


MySQL使用所有標準的ANSI SQL數字資料類型 


INT : 正常大小的整數,可以帶符號。如果是有符號的,它允許的範圍是從-2147483648到2147483647。如果是無符號,允許的範圍是從0到4294967295。 可以指定多達11位的寬度。


TINYINT: 一個非常小的整數,可以帶符號。如果是有符號,它允許的範圍是從-128到127。如果是無符號,允許的範圍是從0到255,可以指定多達4位元的寬度。


SMALLINT - 一個小的整數,可以帶符號。如果有符號,允許範圍為-32768至32767。如果無符號,允許的範圍是從0到65535,可以指定最多5位的寬度。


MEDIUMINT - 一個中等大小的整數,可以帶符號。如果有符號,允許範圍為-8388608至8388607。 如果無符號,允許的範圍是從0到16777215,可以指定最多9位的寬度。


BIGINT - 一個大的整數,可以帶符號。如果有符號,允許範圍為-9223372036854775808到9223372036854775807。如果無符號,允許的範圍是從0到18446744073709551615. 可以指定最多20位的寬度。


FLOAT(M,D) - 不能使用無符號的浮點數字。可以定義顯示長度(M)和小數位元(D)。這不是必需的,並且預設為10,2。其中2是小數的位元,10是數字(包括小數)的總數。小數精度可以到24個浮點。


DOUBLE(M,D) - 不能使用無符號的雙精確度浮點數。可以定義顯示長度(M)和小數位元(D)。 這不是必需的,預設為16,4,其中4是小數的位元。小數精度可以達到53位的DOUBLE。 REAL是DOUBLE同義字。


DECIMAL(M,D) - 非壓縮浮點數不能是無符號的。在解包小數,每個小數對應於一個位元組。定義顯示長度(M)和小數(D)的數量是必需的。 NUMERIC是DECIMAL的同義字。


日期和時間類型


DATE - 以YYYY-MM-DD格式的日期,在1000-01-01和9999-12-31之間。 例如,1973年12月30日將被儲存為1973-12-30。


DATETIME - 日期和時間組合以YYYY-MM-DD HH:MM:SS格式,在1000-01-01 00:00:00 到9999-12-31 23:59:59之間。例如,1973年12月30日下午3:30,會被儲存為1973-12-30 15:30:00。


TIMESTAMP - 1970年1月1日午夜之間的時間戳記,到2037的某個時候。這看起來像前面的DATETIME格式,無需只是數字之間的連字號; 1973年12月30日下午3點30分將被儲存為19731230153000(YYYYMMDDHHMMSS)。


TIME - 儲存時間在HH:MM:SS格式。


YEAR(M) - 以2位或4位元字格式來儲存年份。如果長度指定為2(例如YEAR(2)),年份就可以為1970至2069(70〜69)。如果長度指定為4,年份範圍是1901-2155,預設長度為4。


字串類型


CHAR(M) - 固定長度的字串是以長度為1到255之間個字元長度(例如:CHAR(5)),儲存右空格填充到指定的長度。 限定長度不是必需的,它會預設為1。


VARCHAR(M) - 可變長度的字串是以長度為1到255之間字元數(高版本的MySQL超過255); 例如: VARCHAR(25). 建立VARCHAR類型欄位時,必須定義長度。


BLOB 或 TEXT - 欄位的最大長度是65535個字元。 BLOB是“二進位大對象”,並用來儲存大的位元據,像或其他類型的檔案。定義為TEXT文字欄位還持有大量的資料; 兩者之間的區別是,排序和比較上儲存的資料,BLOB大小寫敏感,而TEXT欄位不區分大小寫。不用指定BLOB或TEXT的長度。


TINYBLOB 或 TINYTEXT - BLOB或TEXT列用255個字元的最大長度。不指定TINYBLOB或TINYTEXT的長度。


MEDIUMBLOB 或 MEDIUMTEXT - BLOB或TEXT列具有16777215字元的最大長度。不指定MEDIUMBLOB或MEDIUMTEXT的長度。


LONGBLOB 或 LONGTEXT - BLOB或TEXT列具有4294967295字元的最大長度。不指定LONGBLOB或LONGTEXT的長度。


ENUM - 枚舉,這是一個奇特的術語列表。當定義一個ENUM,要建立它的值的列表,這些是必須用於選擇的項(也可以是NULL)。例如,如果想要欄位包含“A”或“B”或“C”,那麼可以定義為ENUM為 ENUM(“A”,“B”,“C”)也只有這些值(或NULL)才能用來填充這個欄位。


5、建立和刪除表


有了上面對於MySQL基礎資料型別 (Elementary Data Type)的知識之後,就可以開始建立表了。首先大概的說一下建立表的基本格式。


CREATE TABLE table_name (column_name column_type);


刪除表就用drop命令就行了。


DROP TABLE table_name ;


舉例子時間: 


需要建立一個表,表上記錄的是班上學生的一些資訊,學號,姓名,年齡,出生日期,身高,期末成績這幾項。就用之前建立的cat資料庫來存放. 

解釋:


首先是學號,這裡用id來表示學號,INT類型,NOT NULL 表示非空, 
名字,使用可變字元儲存,VARCHAR 
最後很重要的一點就是指定主鍵,這裡指定id作為主鍵


這裡可以用DESCRIBE命令來查看錶的結構


DESCRIBE 表名稱;

6、插入資料到表中


現在我們已經建立了一個表student_info,但是這個表是一個空表,所以,需要插入資料到這個表裡面去。 


一般的插入格式:


INSERT INTO table_name ( field1, field2,…fieldN ) VALUES ( value1, value2,…valueN );


例: 


在這裡,插入了一個id為123,name為“leo”,年齡為24,生日為“1993-04-06”(注意是字串形式)。。。的記錄。


7、查詢和刪除記錄語句


現在表裡面已經有記錄了,接下來的任務就是怎麼查看錶中的東西呢?那就是SELECT命令了,他的一般用法是:


SELECT field1, field2,…fieldN table_name1, table_name2… 
[WHERE condition1 [AND [OR]] condition2…..


刪除記錄:


DELETE FROM table_name [WHERE Clause]


這裡要注意,如果WHERE子句沒有指定,則MySQL表中的所有記錄將被刪除。


 

上面這個例子是選擇表中id=123的所有欄位,因為表中資料不夠,暫時無法進行更加複雜的選擇操作,以後會盡量選擇更加複雜的操作。這裡熟悉基本的使用方式就行了。


8、更新操作


在資料庫中進行資料的更新是非常常見的,因為資料總不能一輩子不變吧,更新的操作的一般形式為:


UPDATE table_name SET field1=new-value1, field2=new-value2 [WHERE Clause]


上面的命令,從字面的意思上就很好理解了。非常簡單。 


在這裡,就把student_info中的age和birthday兩個欄位的資訊改了。結果如下: 

9、Alter命令


http://www.yiibai.com/mysql/mysql_alter_command.html


http://www.python-requests.org/en/master/



原文連結:http://blog.csdn.net/xierhacker/article/details/60868455


查閱更為簡潔方便的分類文章以及最新的課程、產品資訊,請移步至全新呈現的“LeadAI學院官網”:

www.leadai.org


請關注人工智慧LeadAI公眾號,查看更多專業文章

大家都在看

LSTM模型在問答系統中的應用

基於TensorFlow的神經網路解決使用者流失概覽問題

最全常見演算法工程師面試題目整理(一)

最全常見演算法工程師面試題目整理(二)

TensorFlow從1到2 | 第三章 深度學習革命的開端:卷積神經網路

裝飾器 | Python進階編程

今天不如來複習下Python基礎



點擊“閱讀原文”直接開啟報名連結

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.