標籤:mysql
mysql用戶端內可以執行的命令有2類:
1、用戶端命令:
不需要加語句結束符,顯示的只是mysql這個用戶端命令改如何使用,沒有涉及伺服器的操作,直接使用help,便可以操作。
mysql> helpdelimiter (\d) Set statement delimiter. 用來設定結束符,定界符,然後替代預設的分號。ego (\G) Send command to mysql server, display result vertically. 用來將表結構縱向顯示exit (\q) Exit mysql. Same as quit. 與quit一樣,表示退出mysql用戶端go (\g) Send command to mysql server. 如果使用delimiter替換了分號,但是忘記了,可以使用這個命令替代結束符help (\h) Display this help.source (\.) Execute an SQL script file. Takes a file name as an argument. 載入一個包含sql語句指令碼。比如在將bin_log匯入一個文字檔進行恢複 但需要注意在進入用戶端後,你的使用者身份就是系統的mysql使用者,而不是root 所以mysql使用者必須有許可權去訪問那個檔案status (\s) Get status information from the server. 顯示mysql伺服器的一些狀態資訊,可以用來做簡單的監控指標system (\!) Execute a system shell command. 在不退出mysql用戶端的情況下執行shell命令,比如"\! ls /tmp"use (\u) Use another database. Takes database name as argument. 選擇設定預設的資料庫charset (\C) Switch to another charset. Might be needed for processing binlog with multi-byte charsets. 設定字元集
2、伺服器命令:
用來串連到伺服器端需要執行額操作,此時,必須加上";"結束符
mysql> help COMMAND;
mysql用戶端執行命令時有2中方式:
1、互動方式;
mysql [-hHOSTNAME -uUSERNAME -pPASSWORD [-D DB_NAME]] [-e ‘OPTIONATION‘]
-p後面的密碼一般使用互動式方式輸入
-D指定進入資料庫後預設使用的資料庫,也可以不跟,但是需要使用-e指定了。
# mysql -uroot -proot -D mysql -e ‘select * from user\G‘# mysql -uroot -proot -e ‘select * from mysql.user\G‘
2、批處理模式:
也就是使用sql指令碼的方式,下面命令是等價的:
# mysql OPTIONS < /path/to/scripts.sql
mysql> source /path/to/scripts.sql
# cat /tmp/hveen.sql CREATE DATABASE wpdb;GRANT ALL ON wpdb.* TO [email protected] IDENTIFIED BY ‘yy‘;FLUSH PRIVILEGES;# mysql -uroot -proot < /tmp/hveen.sql或者是mysql> source /tmp/hveen.sql
MySQL讀取設定檔時按照下面的順序:
/etc/my.cnf => /etc/mysql/my.cnf => $MYSQL_BASE/my.cnf安裝路徑 => ~/.my.cnf使用者家目錄
如果有不同的重複選項設定,以最後讀取的為準。這時可以在使用者家目錄下設定使用者名稱和密碼方式每次登陸都使用密碼:
[client]user=roothost=localhostpassword=root
字元集概念:
在電腦中,所有的資料在儲存和運算時都要使用位元表示(因為電腦用高電平和低電平分別表示1和0),例如,像a、b、c、d這樣的52個字母(包括大寫)、以及0、1等數字還有一些常用的符號(例如*、#、@等)在電腦中儲存時也要使用位元來表示,而具體用哪些位元字表示哪個符號,當然每個人都可以約定自己的一套(這就叫編碼),而大家如果要想互相通訊而不造成混亂,那麼大家就必須使用相同的編碼規則,於是美國有關的標準化組織就出台了ASCII編碼,統一規定了上述常用符號用哪些位元來表示.
美國標準資訊交換代碼是由美國國家標準局(American National Standard Institute , ANSI )制定的,標準的單位元組字元編碼方案,用於基於文本的資料。起始於50年代後期,在1967年定案。它最初是美國國家標準,供不同電腦在相互連信時用作共同遵守的西文字元編碼標準,它已被國際標準組織(International Organization for Standardization, ISO)定為國際標準,稱為ISO 646標準。適用於所有拉丁文字字母。
電腦中最小的儲存單位是位元組,而1byte=8bit,而一個bit位有2中變化(0和1)。所以一個位元組有2^8=256(0到255)種變化,這樣不足以表示所有的漢字。
但是如果使用2個位元組表示一個漢字呢?2^16=65536(0-65535),百度一下中國漢字總數及常用字數就會發現常用也就7000左右,最最常用也就4000左右,所以2個位元組足以表示我們常用的漢字。
比如我們定義好01000000 01000000表示“上”,那麼電腦遇到這樣的二進位編碼就會給我們顯示為“上”。這種定義了人類可以識別的“字元”如何 和 電腦可以識別的“二進位bit”對應關係的對照表就叫做字元集。
字元集隨著時間有很多標準,比如GB2312(國標,簡體中文),GB18030,GBK,BIG5(繁體)
隨著時間的推進,各個國家、各個程式都可能有自己不同的字元集標準,然後就造成了國家、程式之間很難進行溝通,所以ISO國際標準組織就將很多國家的“字元”統一放到一起進行編碼,這就是Unicode,也叫做統一碼,萬國碼。也可以是UTF。後來出現了UTF-8/UTF-16/UTF-32。
定序:同一種字元集有這不同的定序,比如漢字可以按照首字元排序,也可以按照筆畫順序排序。
mysql> SHOW CHARACTER SET; 顯示資料庫支援的所有字元集。mysql> SHOW COLLATION; 顯示所有字元的定序。mysql> SHOW SESSION VARIABLES LIKE ‘%char%‘; 顯示當前會話的預設字元集。
還有一種常見情況是,我們的MySQL伺服器在美國的亞馬遜虛擬機器上,而他們的資料庫預設字元集是latiin1(拉丁字元集),我們本地的用戶端預設使用的是GB2312,那麼他們通訊時會相互協商後使用同一的編碼進行。
資料類型概念:
mysql> HELP CREATE TABLE; 找到data_type關鍵字: 這裡顯示了MySQL資料庫支援的字元
字元型:CHAR(N): 最多儲存N個字元。但是如果只儲存了1個字元,那麼也會佔用N個字元的儲存空間。 雖然浪費空間,但是在一定程度上,效能會比VARCHAR(N)好很多。 CHAR(N)與VARCHAR(N)都不區分大小寫。VARCHAR(N): 可變長度的CHAR(N),最多儲存N個字元。如果只儲存1個字元,那麼就只佔用2字元空間 因為有1個字元的空間用來儲存結束符。BINARY(N): 區分大小寫字元類型,但最多儲存255個字元。VARBINARY(N): 可變長度區分大小寫字元類型,最多儲存65535個字元。TEXT: 比上面幾種字元類型範圍更大,不區分大小寫。BLOB: 與TEXT相對的類型,區分大小寫。字元型的修飾符: NULL,NOT NULL,DEFAULT ‘zi‘.
數值型: 又分為精確數值型和近似數值型 精確的整數型:TINYINT: 佔用空間1B,所以是2^8=128,也就是0-256。所以也叫微整型,一般用來表示年齡等 在無符號情況下, 表示從 0 到 255 在有符號的情況下,表示從 -128 到 127(預設)SMALLINT: 佔用空間2B,所以是2^16=65536。也叫做小整型。 在無符號的情況下,表示從 0 到 65535 在有符號的情況下,表示從 -32768 到 32767(預設)MEDIUMINT: 佔用空間3B,所以是2^24INT: 佔用空間4B,所以是2^32BIGINT: 佔用空間8B,所以是2^64精確整數型修飾符: NULL,NOT NULL,DEFAULT ‘shu‘ UNSIGNED (表示無符號,預設有符號的) AUTO_INCREMENT(自動增加)近似浮點型:FLOAT: 單精確度,4BDOUBLE: 雙精確度,8BREAL:近似浮點型修飾符: NULL,NOT NULL,DEFAULT ‘fu‘
日期時間型:DATE: 存放日期TIME: 存放時間DATETIME: 存放日期+時間YEAR(2),YEAR(4): 2位或4位的年TIMESTAMP: 時間戳記,從1970年1月1日0點0分到現在時間。有利於時間本地化。 因為從那時間開始,無論在哪個時區內的2015年1月2日0點0分,經過的時間都一樣。日期時間型的修飾符: NULL,NOT NULL,DEFAULT ‘‘
布爾型: 0:假 1:真
本文出自 “Go right on” 部落格,請務必保留此出處http://caduke.blog.51cto.com/3365689/1598431
MySQL(二)-常用用戶端命令、資料類型、日誌