深度學習之主流資料庫 | 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基礎
點擊“閱讀原文”直接開啟報名連結