MySQL數據類型以及基本使用詳解html
做者:尹正傑
mysql
版權聲明:原創做品,謝絕轉載!不然將追究法律責任。linux
一.MySQL服務器的主要組件正則表達式
咱們知道MySQL的主要組件主要是由服務端(mysqld)和客戶端(mysql)組成的。它們都共用一個配置文件(一般叫作my.cnf),這個配置文件很獨特,它須要使用中括號括起來標明是爲哪一種組件使用的,例如[mysql]下面的指令就表示爲客戶端配置的參數,若是[mysqld]下面的指令就表示爲服務端配置的參數。其實MySQL的客戶端組件有不少個,本篇博客是用的mysql命令只是MySQL客戶端之一,其餘常見的客戶端如:Navicat for Mysql,EMSSQL ManagerforMySQL等等。sql
在Linux操做系統中我仍是推薦使用mysql客戶端的,若是在windows的話我推薦使用Navicat for Mysql,mysql在Linux鏈接服務器是很簡單,咱們用mysql鏈接數據庫的時候一般會用到三個參數,分別是「-u(指定登陸數據庫的用戶名)」,「-h(指定登陸數據庫的主機名)」,「-p(指定登陸數據庫的密碼)」,「-e(指定SQL命令便可執行)」等等。shell
二.MySQL用戶的分類數據庫
其實在MySQL初始化時,它會默認建立兩類帳戶,一種是管理員用戶(root),另一種是匿名用戶。express
1 root: //管理員用戶 2 127.0.0.1 //IPV4本地迴環地址 3 localhost //本機的主機名 4 Hostname //主機名 5 ::1 //IPV6本地迴環地址 6 " ": //匿名用戶 7 localhost 8 hostname
這兩類用戶是系統默認的,固然咱們不推薦直接使用它們。由於它們很不安全(只要看了我這篇博客的人都能經過這種方式去鏈接你的MySQL,由於他們都知道mysql的用戶信息。),第一,匿名用戶訪問沒法記錄來訪者,誰均可以使用,就相似於FTP服務器。第二,管理員用戶默認是沒有密碼的,這就更不全啦,就好像你的辦公電腦沒有設置密碼你很沒有安全感似的。所以,咱們須要刪除沒必要要的用戶,好比MySQL服務默認的2個匿名用戶,給咱們須要留存的用戶設置密碼[「SET PASSWORD FOR 'username'@'hostname/IP' = PASSWORD('yinzhengjie');」]。windows
三.MySQL客戶端安全
1.客戶端命令
客戶端命令表示是在客戶端執行的命令,咱們只須要成功鏈接數據庫以後輸入「help」,就能夠看到mysql客戶端的命令啦。客戶端的命令有個特色就是不須要命令結束符,好比「;」。
1 mysql> help 2 3 For information about MySQL products and services, visit: 4 http://www.mysql.com/ 5 For developer information, including the MySQL Reference Manual, visit: 6 http://dev.mysql.com/ 7 To buy MySQL Enterprise support, training, or other products, visit: 8 https://shop.mysql.com/ 9 10 List of all MySQL commands: 11 Note that all text commands must be first on line and end with ';' 12 ? (\?) Synonym for `help'. 13 clear (\c) Clear the current input statement. 14 connect (\r) Reconnect to the server. Optional arguments are db and host. 15 delimiter (\d) Set statement delimiter. 16 edit (\e) Edit command with $EDITOR. 17 ego (\G) Send command to mysql server, display result vertically. 18 exit (\q) Exit mysql. Same as quit. 19 go (\g) Send command to mysql server. 20 help (\h) Display this help. 21 nopager (\n) Disable pager, print to stdout. 22 notee (\t) Don't write into outfile. 23 pager (\P) Set PAGER [to_pager]. Print the query results via PAGER. 24 print (\p) Print current command. 25 prompt (\R) Change your mysql prompt. 26 quit (\q) Quit mysql. 27 rehash (\#) Rebuild completion hash. 28 source (\.) Execute an SQL script file. Takes a file name as an argument. 29 status (\s) Get status information from the server. 30 system (\!) Execute a system shell command. 31 tee (\T) Set outfile [to_outfile]. Append everything into given outfile. 32 use (\u) Use another database. Takes database name as argument. 33 charset (\C) Switch to another charset. Might be needed for processing binlog with multi-byte charsets. 34 warnings (\W) Show warnings after every statement. 35 nowarning (\w) Don't show warnings after every statement. 36 37 For server side help, type 'help contents' 38 39 mysql>
1 mysql> status 2 -------------- 3 mysql Ver 14.14 Distrib 5.5.54, for linux2.6 (x86_64) using readline 5.1 4 5 Connection id: 4 6 Current database: 7 Current user: root@localhost 8 SSL: Not in use 9 Current pager: stdout 10 Using outfile: '' 11 Using delimiter: ; 12 Server version: 5.5.54-log MySQL Community Server (GPL) 13 Protocol version: 10 14 Connection: Localhost via UNIX socket 15 Server characterset: latin1 16 Db characterset: latin1 17 Client characterset: utf8 18 Conn. characterset: utf8 19 UNIX socket: /tmp/mysql.sock 20 Uptime: 49 min 43 sec 21 22 Threads: 1 Questions: 11 Slow queries: 0 Opens: 33 Flush tables: 1 Open tables: 26 Queries per second avg: 0.003 23 -------------- 24 25 mysql>
1 [root@yinzhengjie ~]# mysql -u root -p123 2 Welcome to the MySQL monitor. Commands end with ; or \g. 3 Your MySQL connection id is 6 4 Server version: 5.5.54-log MySQL Community Server (GPL) 5 6 Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. 7 8 Oracle is a registered trademark of Oracle Corporation and/or its 9 affiliates. Other names may be trademarks of their respective 10 owners. 11 12 Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. 13 14 mysql> \q 15 Bye 16 [root@yinzhengjie ~]#
1 [root@yinzhengjie ~]# mysql -u root -p123 2 Welcome to the MySQL monitor. Commands end with ; or \g. 3 Your MySQL connection id is 7 4 Server version: 5.5.54-log MySQL Community Server (GPL) 5 6 Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. 7 8 Oracle is a registered trademark of Oracle Corporation and/or its 9 affiliates. Other names may be trademarks of their respective 10 owners. 11 12 Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. 13 14 mysql> \? 15 16 For information about MySQL products and services, visit: 17 http://www.mysql.com/ 18 For developer information, including the MySQL Reference Manual, visit: 19 http://dev.mysql.com/ 20 To buy MySQL Enterprise support, training, or other products, visit: 21 https://shop.mysql.com/ 22 23 List of all MySQL commands: 24 Note that all text commands must be first on line and end with ';' 25 ? (\?) Synonym for `help'. 26 clear (\c) Clear the current input statement. 27 connect (\r) Reconnect to the server. Optional arguments are db and host. 28 delimiter (\d) Set statement delimiter. 29 edit (\e) Edit command with $EDITOR. 30 ego (\G) Send command to mysql server, display result vertically. 31 exit (\q) Exit mysql. Same as quit. 32 go (\g) Send command to mysql server. 33 help (\h) Display this help. 34 nopager (\n) Disable pager, print to stdout. 35 notee (\t) Don't write into outfile. 36 pager (\P) Set PAGER [to_pager]. Print the query results via PAGER. 37 print (\p) Print current command. 38 prompt (\R) Change your mysql prompt. 39 quit (\q) Quit mysql. 40 rehash (\#) Rebuild completion hash. 41 source (\.) Execute an SQL script file. Takes a file name as an argument. 42 status (\s) Get status information from the server. 43 system (\!) Execute a system shell command. 44 tee (\T) Set outfile [to_outfile]. Append everything into given outfile. 45 use (\u) Use another database. Takes database name as argument. 46 charset (\C) Switch to another charset. Might be needed for processing binlog with multi-byte charsets. 47 warnings (\W) Show warnings after every statement. 48 nowarning (\w) Don't show warnings after every statement. 49 50 For server side help, type 'help contents' 51 52 mysql>
1 [root@yinzhengjie ~]# mysql -u root -p123 2 Welcome to the MySQL monitor. Commands end with ; or \g. 3 Your MySQL connection id is 8 4 Server version: 5.5.54-log MySQL Community Server (GPL) 5 6 Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. 7 8 Oracle is a registered trademark of Oracle Corporation and/or its 9 affiliates. Other names may be trademarks of their respective 10 owners. 11 12 Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. 13 14 mysql> 15 mysql> select user()\g 16 +----------------+ 17 | user() | 18 +----------------+ 19 | root@localhost | 20 +----------------+ 21 1 row in set (0.00 sec) 22 23 mysql>
1 [root@yinzhengjie ~]# mysql -u root -p123 2 Welcome to the MySQL monitor. Commands end with ; or \g. 3 Your MySQL connection id is 10 4 Server version: 5.5.54-log MySQL Community Server (GPL) 5 6 Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. 7 8 Oracle is a registered trademark of Oracle Corporation and/or its 9 affiliates. Other names may be trademarks of their respective 10 owners. 11 12 Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. 13 14 mysql> use mysql 15 Database changed 16 mysql> select User,Host,Password from user; 17 +------+-------------+-------------------------------------------+ 18 | User | Host | Password | 19 +------+-------------+-------------------------------------------+ 20 | root | localhost | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 | 21 | root | yinzhengjie | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 | 22 | root | 127.0.0.1 | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 | 23 | root | ::1 | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 | 24 | | localhost | | 25 | | yinzhengjie | | 26 +------+-------------+-------------------------------------------+ 27 6 rows in set (0.00 sec) 28 29 mysql> 30 mysql> select User,Host,Password from user\G 31 *************************** 1. row *************************** 32 User: root 33 Host: localhost 34 Password: *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 35 *************************** 2. row *************************** 36 User: root 37 Host: yinzhengjie 38 Password: *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 39 *************************** 3. row *************************** 40 User: root 41 Host: 127.0.0.1 42 Password: *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 43 *************************** 4. row *************************** 44 User: root 45 Host: ::1 46 Password: *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 47 *************************** 5. row *************************** 48 User: 49 Host: localhost 50 Password: 51 *************************** 6. row *************************** 52 User: 53 Host: yinzhengjie 54 Password: 55 6 rows in set (0.00 sec) 56 57 mysql>
1 [root@yinzhengjie ~]# mysql -u root -p123 2 Welcome to the MySQL monitor. Commands end with ; or \g. 3 Your MySQL connection id is 11 4 Server version: 5.5.54-log MySQL Community Server (GPL) 5 6 Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. 7 8 Oracle is a registered trademark of Oracle Corporation and/or its 9 affiliates. Other names may be trademarks of their respective 10 owners. 11 12 Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. 13 14 mysql> select \c 15 mysql> 16 mysql> show databases; 17 +--------------------+ 18 | Database | 19 +--------------------+ 20 | information_schema | 21 | mysql | 22 | performance_schema | 23 | test | 24 +--------------------+ 25 4 rows in set (0.01 sec) 26 27 mysql> 28 mysql> sdas sad as \c 29 mysql> 30 mysql>
1 [root@yinzhengjie ~]# mysql -u root -p123 2 Welcome to the MySQL monitor. Commands end with ; or \g. 3 Your MySQL connection id is 16 4 Server version: 5.5.54-log MySQL Community Server (GPL) 5 6 Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. 7 8 Oracle is a registered trademark of Oracle Corporation and/or its 9 affiliates. Other names may be trademarks of their respective 10 owners. 11 12 Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. 13 14 mysql> show databases; 15 +--------------------+ 16 | Database | 17 +--------------------+ 18 | information_schema | 19 | mysql | 20 | performance_schema | 21 | test | 22 +--------------------+ 23 4 rows in set (0.00 sec) 24 25 mysql> \umysql 26 Database changed 27 mysql> 28 mysql> use mysql 29 Database changed 30 mysql>
2.服務器端命令
服務器端命令簡直就時多了去了,比客戶端的也複雜的多,所以我在這裏也不打算一一舉例,而是用一些經常使用的命令進行掃盲模式。執行服務端的命令須要語句終止符,一般默認爲分號(;),固然這個命令結束符(;)是能夠被修改的。
a>.SELECT命令的基本使用
MySQL服務器端有不少內建函數( 簡稱BIF)。使用select命令去執行一個內建函數,並將該內建函數的執行結果返回給當前用戶。
1 mysql> select user(); #查看數據庫的用戶信息。 2 +----------------+ 3 | user() | 4 +----------------+ 5 | root@localhost | 6 +----------------+ 7 1 row in set (0.02 sec) 8 9 mysql> 10 mysql> select current_time(); #查看當前操做系統的時間。 11 +----------------+ 12 | current_time() | 13 +----------------+ 14 | 00:25:33 | 15 +----------------+ 16 1 row in set (0.00 sec) 17 18 mysql>
1 mysql> select 100+200; #利用select作算術運算。 2 +---------+ 3 | 100+200 | 4 +---------+ 5 | 300 | 6 +---------+ 7 1 row in set (0.00 sec) 8 9 mysql> 10 mysql> select 5*6; 11 +-----+ 12 | 5*6 | 13 +-----+ 14 | 30 | 15 +-----+ 16 1 row in set (0.00 sec) 17 18 mysql>
b>.SHOW命令的基本使用
1 mysql> show databases; 2 +--------------------+ 3 | Database | 4 +--------------------+ 5 | information_schema | 6 | mysql | 7 | performance_schema | 8 | test | 9 +--------------------+ 10 4 rows in set (0.00 sec) 11 12 mysql>
1 mysql> use mysql 2 Database changed 3 mysql> show tables; 4 +---------------------------+ 5 | Tables_in_mysql | 6 +---------------------------+ 7 | columns_priv | 8 | db | 9 | event | 10 | func | 11 | general_log | 12 | help_category | 13 | help_keyword | 14 | help_relation | 15 | help_topic | 16 | host | 17 | ndb_binlog_index | 18 | plugin | 19 | proc | 20 | procs_priv | 21 | proxies_priv | 22 | servers | 23 | slow_log | 24 | tables_priv | 25 | time_zone | 26 | time_zone_leap_second | 27 | time_zone_name | 28 | time_zone_transition | 29 | time_zone_transition_type | 30 | user | 31 +---------------------------+ 32 24 rows in set (0.00 sec) 33 34 mysql>
1 [root@yinzhengjie ~]# mysql -u root -p123 2 Welcome to the MySQL monitor. Commands end with ; or \g. 3 Your MySQL connection id is 17 4 Server version: 5.5.54-log MySQL Community Server (GPL) 5 6 Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. 7 8 Oracle is a registered trademark of Oracle Corporation and/or its 9 affiliates. Other names may be trademarks of their respective 10 owners. 11 12 Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. 13 14 mysql> show databases; 15 +--------------------+ 16 | Database | 17 +--------------------+ 18 | information_schema | 19 | mysql | 20 | performance_schema | 21 | test | 22 +--------------------+ 23 4 rows in set (0.00 sec) 24 25 mysql> create database yinzhengjie; 26 Query OK, 1 row affected (0.01 sec) 27 28 mysql> show databases; 29 +--------------------+ 30 | Database | 31 +--------------------+ 32 | information_schema | 33 | mysql | 34 | performance_schema | 35 | test | 36 | yinzhengjie | 37 +--------------------+ 38 5 rows in set (0.00 sec) 39 40 mysql>
1 [root@yinzhengjie ~]# mysql -u root -p123 2 Welcome to the MySQL monitor. Commands end with ; or \g. 3 Your MySQL connection id is 18 4 Server version: 5.5.54-log MySQL Community Server (GPL) 5 6 Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. 7 8 Oracle is a registered trademark of Oracle Corporation and/or its 9 affiliates. Other names may be trademarks of their respective 10 owners. 11 12 Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. 13 14 mysql> show databases; 15 +--------------------+ 16 | Database | 17 +--------------------+ 18 | information_schema | 19 | mysql | 20 | performance_schema | 21 | test | 22 | yinzhengjie | 23 +--------------------+ 24 5 rows in set (0.00 sec) 25 26 mysql> drop database yinzhengjie; 27 Query OK, 0 rows affected (0.01 sec) 28 29 mysql> show databases; 30 +--------------------+ 31 | Database | 32 +--------------------+ 33 | information_schema | 34 | mysql | 35 | performance_schema | 36 | test | 37 +--------------------+ 38 4 rows in set (0.00 sec) 39 40 mysql>
3.命令幫助的獲取
無論是客戶端仍是服務端命令都是能夠經過關鍵字「help」來獲取幫助信息,固然這得須要MySQL展開其內部的幫助文檔才能獲取到相應的信息的。可能有的童鞋會問,若是展開它的幫助文檔呢?其實在咱們安裝完MySQL的時候就以及默認展開啦。命令自己不區分字符大小寫,但與文件系統相關的部分則根據os的不一樣,可能區分大小寫(好比數據庫名稱和表名等等。)
1 mysql> help select 2 Name: 'SELECT' 3 Description: 4 Syntax: 5 SELECT 6 [ALL | DISTINCT | DISTINCTROW ] 7 [HIGH_PRIORITY] 8 [STRAIGHT_JOIN] 9 [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT] 10 [SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS] 11 select_expr [, select_expr ...] 12 [FROM table_references 13 [WHERE where_condition] 14 [GROUP BY {col_name | expr | position} 15 [ASC | DESC], ... [WITH ROLLUP]] 16 [HAVING where_condition] 17 [ORDER BY {col_name | expr | position} 18 [ASC | DESC], ...] 19 [LIMIT {[offset,] row_count | row_count OFFSET offset}] 20 [PROCEDURE procedure_name(argument_list)] 21 [INTO OUTFILE 'file_name' 22 [CHARACTER SET charset_name] 23 export_options 24 | INTO DUMPFILE 'file_name' 25 | INTO var_name [, var_name]] 26 [FOR UPDATE | LOCK IN SHARE MODE]] 27 28 SELECT is used to retrieve rows selected from one or more tables, and 29 can include UNION statements and subqueries. See [HELP UNION], and 30 http://dev.mysql.com/doc/refman/5.5/en/subqueries.html. 31 32 The most commonly used clauses of SELECT statements are these: 33 34 o Each select_expr indicates a column that you want to retrieve. There 35 must be at least one select_expr. 36 37 o table_references indicates the table or tables from which to retrieve 38 rows. Its syntax is described in [HELP JOIN]. 39 40 o The WHERE clause, if given, indicates the condition or conditions 41 that rows must satisfy to be selected. where_condition is an 42 expression that evaluates to true for each row to be selected. The 43 statement selects all rows if there is no WHERE clause. 44 45 In the WHERE expression, you can use any of the functions and 46 operators that MySQL supports, except for aggregate (summary) 47 functions. See 48 http://dev.mysql.com/doc/refman/5.5/en/expressions.html, and 49 http://dev.mysql.com/doc/refman/5.5/en/functions.html. 50 51 SELECT can also be used to retrieve rows computed without reference to 52 any table. 53 54 URL: http://dev.mysql.com/doc/refman/5.5/en/select.html 55 56 57 mysql>
4.MySQL的執行模式
a>.交互式執行模式
交互式執行模式,顧名思義,你須要登陸數據庫界面,而後執行相應的操做。
1 [root@yinzhengjie ~]# mysql -u root -p123 2 Welcome to the MySQL monitor. Commands end with ; or \g. 3 Your MySQL connection id is 17 4 Server version: 5.5.54-log MySQL Community Server (GPL) 5 6 Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. 7 8 Oracle is a registered trademark of Oracle Corporation and/or its 9 affiliates. Other names may be trademarks of their respective 10 owners. 11 12 Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. 13 14 mysql> show databases; 15 +--------------------+ 16 | Database | 17 +--------------------+ 18 | information_schema | 19 | mysql | 20 | performance_schema | 21 | test | 22 +--------------------+ 23 4 rows in set (0.00 sec) 24 25 mysql> create database yinzhengjie; 26 Query OK, 1 row affected (0.01 sec) 27 28 mysql> show databases; 29 +--------------------+ 30 | Database | 31 +--------------------+ 32 | information_schema | 33 | mysql | 34 | performance_schema | 35 | test | 36 | yinzhengjie | 37 +--------------------+ 38 5 rows in set (0.00 sec) 39 40 mysql>
b>.命令行執行模式
1 [root@yinzhengjie ~]# mysql -pyinzhengjie -e "show databases;" 2 +--------------------+ 3 | Database | 4 +--------------------+ 5 | information_schema | 6 | mysql | 7 | test | 8 +--------------------+ 9 [root@yinzhengjie ~]# mysql -pyinzhengjie -e "create database yinzhengjie;" 10 [root@yinzhengjie ~]# mysql -pyinzhengjie -e "show databases;" 11 +--------------------+ 12 | Database | 13 +--------------------+ 14 | information_schema | 15 | mysql | 16 | test | 17 | yinzhengjie | 18 +--------------------+ 19 [root@yinzhengjie ~]#
c>.批處理執行模式
1 [root@yinzhengjie ~]# more yinzhengjie.sql 2 select user(); 3 create database yinzhengjie; 4 show databases; 5 [root@yinzhengjie ~]# 6 [root@yinzhengjie ~]# mysql -uroot -p123 < yinzhengjie.sql 7 user() 8 root@localhost 9 Database 10 information_schema 11 mysql 12 performance_schema 13 test 14 yinzhengjie 15 [root@yinzhengjie ~]#
四.MySQL的數據類型
1.約束(constraint)
約束就是若是你填寫了違反了某種法則的數據時(好比人的年齡不能超過200歲等等。)就會拒絕寫入,而這種限定就叫作約束。對於關係型數據庫來說,約束一般有如下幾種:
a>.主鍵約束
主鍵約束就是當你把某個字段或者某些字段合併起來當作主鍵來用了,這就意味着你往裏面填寫數據的時候就不能出現重複了。主鍵還有一個要求,即主鍵不能爲空值(NULL)。對於一張表來說,主鍵只能有一個。
b>.外鍵約束
假如在第一張表中有一個Name字段,而在第二張表中的第一個字段也有Name字段。那麼很顯然全部填入第一張表中的Name字段的數據都應該是參照了第二張表中的屬性(換句話說,第一張表中的Name字段的填入規則必須和第二張表中的Name字段保持一致!)。這種參照(引用)方式叫作參照完整性約束,也叫作外鍵約束。
c>.唯一鍵約束
唯一鍵約束和主鍵相似,只不過它的主鍵是能夠爲空的(NULL),而且對於一張表來說,主鍵能夠有多個。
d>.檢查式約束
不管是主鍵仍是唯一鍵都沒有辦法實現把某一個字段的取值限制在合理的範圍內。好比,要求用戶輸入年齡,某個用戶手一哆嗦,原本想寫40,結果寫成了400,那麼它真的有400歲嗎?很顯然並非。所以就有了檢查式約束,即用戶自定義有效取值範圍的,它一般是一個布爾(bool)表達式,比較能符合條件就容許你往數據庫填寫數據,若是不能符合條件就禁止填入。
2.鍵
鍵就是選取出來某個具備特殊意義的字段。對於關係型數據庫(簡稱RDBMS)來說,鍵指的是字段,由於它是用來當作查找標準或者處理標準所使用的。
a>.主鍵
主鍵就是可以唯一標識每個記錄的字段或字段的組合。主鍵是從候選鍵中挑選出來的一種方案。是須要被真正使用的。
打個比方,要求你在數據庫存放中國排名前十的大學從創建到如今的學生信息,咱們能用名字來作主鍵嗎?顯然是不能的,同理,咱們也不能拿年齡當惟一鍵,更不能拿性別當惟一鍵啦。甚至學號也可能出現重複的狀況(好比清華大學的學生和北大的學生的學號是同樣的)。所以,咱們能夠將學校,姓名,年齡,性別以及學號組合起來當主鍵使用,這樣出現重複的概念就極小啦。所以鍵未必是一個字段。
b>.候選鍵
作DBA的童鞋應該知道在數據庫的一張表當中,可以惟一標識每個記錄的字段的組合可能不止一個,咱們還以上面的例子來講,統計全國排名前十的大學的學員信息,咱們能夠用學校,姓名,年齡,性別學號來作惟一主鍵,固然也能夠只用學校,姓名和學號來作惟一主鍵。也就是說選擇主鍵的方式有不少種。所以,全部這些可以用於惟一標識每個記錄的鍵就叫作候選鍵。也就是說這些候選鍵都是能夠拿來當主鍵用的,候選鍵只是一種概念,並無被真正使用。
c>.外鍵
若是公共關鍵字在一個關係中是主關鍵字,那麼這個公共關鍵字被稱爲另外一個關係的外鍵。因而可知,外鍵表示了兩個關係之間的相關聯繫。以另外一個關係的外鍵做主關鍵字的表被稱爲主表,具備此外鍵的表被稱爲主表的從表。外鍵又稱做外關鍵字。
打個比方,假如在第一張表中有一個Name字段,而在第二張表中的第一個字段也有Name字段。這個時候咱們就能夠說第一張表中的Name字段就是一個外鍵。也能夠說第二張表中的Name字段是第一張表的一個外鍵。
3.數據類型
數據類型是用來比較方式(排序方式),存儲空間(取值範圍),可以參與的運算等等,這些功能都是由數據類型來肯定的。
a>.字符型
1>.固定長度的字符類型,換句話說就是定義了一個字符長度,若是你存儲的字節長度不足時,系統會自動給你用「0」進行佔位操做,當字符類型的長度超過咱們預約義的長度時,就會報錯。用char(#number[最多存儲255個字符])關鍵字來定義。(也就是說,char(10),就表示你每一個字符串存儲的長度應該是10,好比你的單個字符串長度是7,那麼還有3個空位系統自動會用「0」進行佔位。也就沒有字符存儲的大小是一致的。)
2>.自動變化長度的字符類型,即varchar(#bumber[最多存儲65535個字符,即2個字節])。和上面的char(#number)用法類似,只不過惟一不一樣的是存儲的字符的長度是可變化的。也就是說,varchar(10),就表示你每一個字符串的長度應該是10,若是你的單個字符串長度是6,那麼它就會以6個長度來存取的你的數據,而不會去能夠給你填滿其餘的佔位符,它是以你實際長度爲準的。注意,char(#number)和varchar(#num)存儲數據的時候都不區分大小寫。若是你強烈要求要區分大消息的話也是能夠的,和char(#number)相似的一種方法叫作binary(#number),他們惟一不一樣就是char(#number)不區分大小寫,而binary(#number)是區分大小寫的。同理,和varchar(#number)對應的就是varbinary(#number)。
3>.其實char(#number),var(#number),binary(#number),varbinary(#number)它們的存儲數據的大小是有上限的。若是你寫博客,裏面的正文數據長度必定是很大的。這個時候這四種定義類型就再也不合適了,這個時候就有了面向對象存儲的概念,就是不講數據放在一個表中了,而是將數據放在一個指定的文件,而在表中存儲的只是一個指針。當用戶用到該數據時,就會去調用這個指針所對應的文件。而這種存儲方式也是區分大小寫了,相比以前學習的四種定義類型,test和blob數據類型存儲的容量更大,test的類型擁有char(#number),binary(#number)的特色,而blob數據類型擁有varchar(#number),varbinary(#number)。而test和blob又被細分了4類,例如blob分爲TinyBlob(最多存儲255個字符,即一個字節),Blob(最多存儲64kb,須要減去2個字節的空間),MediumBlob(最多存儲16MB的空間,須要減去3個字節),LongBlob(最多存儲4G的空間,須要減去4個字節)。test分爲TinyText(最多存儲255個字符,即一個字節與char索引方式是不一樣的,TinyText不能使用全字段索引而char確實能夠的),Text(最多存儲65535個字符,須要減去2個字節),MediumText(最多存儲16777215個字符,須要減去3個字節),LongText(最多存儲4294967295個字符,表示能夠存儲4個G,不過通常沒人那麼幹,再問誰會將一個表中的一行字段佔用4G的空間呢)等等。
4>.字符型(char、varchar和text)經常使用的屬性修飾符:
A>.NOT NULL(非空約束)
B>.NULL(容許爲空)
C>.default ‘string’(默認值,不適用於text類型)
D>.CHARACTER SET 字符集
mysql>show variables like '%char%'; #查看默認的字符集
mysql>show character set; #查看數據庫支持的字符集
E>.collation '規則':排序規則
msyql>show collation; #查看數據庫支持的排序規則
5>.binary,varbinaray和blob字符經常使用的屬性修飾符
A>.NOT NULL
B>.NULL
C>.default 不適用與blob
b>.數值型
1>.精確數值型
精確數值型有兩類,即整形(integer)和十進制(decimal)。在金融領域中,通常都用十進制存儲數值型。而integer類型來說,它有好幾種變化形式分別用來表示所可以存儲的範圍大小的,好比:
A>.只佔用一個字節的tinyint(微整型,取值範圍是-128~127或者0~255);
B>.佔用兩個字節的samllint(小整型,取值範圍是-32768~32767或者0~65535);
C>.佔用三個字節的mediuint(中等整型,取值範圍-8388608~8388607或者0~16777215);
D>.佔用四個字節的int(整型,取值範圍-2147483648~2147483647或者0~4294967295);
E>.佔用八個字節的bingint(大整形,取值範圍是-9223372036854775808~9223372036854775807或者0~18446744073709551615)等等。
整形的經常使用屬性修飾符:
A>.AUTO_INCREMENT:自動增加(前提:非空,且惟一,支持索引,非負值[UNSIGNED],注意:TRUNCATE 用來清空表中數據)
B>.LEST_INSERT_ID():能夠查看上次增加的數值,當插入多行時,只記錄第一行
C>.UNSIGNED:無符號
D>.NULL
E>.NOT NULL
F>.DEFAULT
2>.近似數值型
近似數值型又分爲單精度浮點型(float)和雙精度浮點型(double)。
浮點型經常使用修飾符:(使用g,f來定義總共有多少數字和小數點後有多少數字)
A>.NULL
B>.NOT NULL
C>.UNSIGNSD
D>.DEFAULT
3>.位
按位(bit)實現數據存儲的。這種方式不建議使用。
c>.日期時間型
1>咱們在數據庫中可能須要存儲日期或時間,日期時間型其實本質上被咱們存儲爲數值或字符。
A>.其中咱們能夠用佔用三個字節的date(日期型)來存儲時間;
B>.用佔用三個字節的time(時間型)來存儲時間;
C>.用佔用八個字節的datetime(日期時間型)來存儲日期和時間;
D>.固然,你也能夠存儲在四個字節的timestamp(時間戳,存儲自1970年1月1號0點0分0秒至你所指定的時間爲止所通過的秒數。);
E>.對了還有一個字節來記錄年的year類型。即Year(2)和year(4),前者表示方法是:「00~99」,默認值是:「00」;後者表示方法是:「1901~2155」,默認爲「0000」。
2>.日期時間型經常使用的修飾符
A>.NULL
B>.NOT NULL
C>.DEFAULT
d>.布爾型
MySQL其實沒有真正意義上的布爾型,而是使用的tinyint(微整型),並且只顯示一位來表示的,要麼是0,要麼是1.
e>NULL
表示什麼也沒有存,注意空白字符不等於空喲,數字0也不表明空。
f>.內置類型(事實上ENUM和SET也是屬於字符型喲)
1>.MySQL也有兩種常見的內置類型,即ENUM(枚舉)和SET(集合)。
2>.枚舉類型是指將全部的狀況的列舉出來,咱們從中挑選處一種便可。好比今天是星期幾,咱們經過枚舉方法列出全部的可能性,將星期一至星期日的其中狀況都枚舉出來,這樣用戶輸入的星期八則是不合法的。集合類型是指在一個範圍內有不少元素,你能夠把這些元素任意拼湊,怎麼拼都行,可是每一個元素必須是在給定範圍內的,不能超出限定範圍。就比如你是某學校的大一新生的班主任,如今你要對你的學生進行分組處理。其中每一個組的每個成員必須都是你的班級的學生,而不能講其餘班級的學生拉倒你的班級進行分組。
3>.ENUM和SET的修飾符
A>.NULL
B>.NOT NULL
C>.DEFAULT ‘’
4.表(table)
由行和列組成的二維關係,這也是他被稱爲關係型數據庫類型的緣由。
a>.表的建立(CREATE)
用法格式:「create table TabelName(VariableName VariableType,......);」
1 [root@yinzhengjie ~]# mysql -uroot -pyinzhengjie 2 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 3 [root@yinzhengjie ~]# 4 [root@yinzhengjie ~]# mysql -uroot -p123 5 Welcome to the MySQL monitor. Commands end with ; or \g. 6 Your MySQL connection id is 39 7 Server version: 5.5.54-log MySQL Community Server (GPL) 8 9 Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. 10 11 Oracle is a registered trademark of Oracle Corporation and/or its 12 affiliates. Other names may be trademarks of their respective 13 owners. 14 15 Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. 16 17 mysql> show databases; 18 +--------------------+ 19 | Database | 20 +--------------------+ 21 | information_schema | 22 | mysql | 23 | performance_schema | 24 | test | 25 | yinzhengjie | 26 +--------------------+ 27 5 rows in set (0.01 sec) 28 29 mysql> use yinzhengjie 30 Database changed 31 mysql> create table Student (Name varchar(30),Age tinyint,Gender ENUM('boy','girl')); ----->這裏是建立一個表,該表有3個字段,分別是姓名(Name),年齡(Age)和性別(Gender),定義變量名稱和Golang很類似。 32 Query OK, 0 rows affected (0.01 sec) 33 34 mysql>
1 [root@yinzhengjie ~]# mysql -uroot -p123 2 Welcome to the MySQL monitor. Commands end with ; or \g. 3 Your MySQL connection id is 42 4 Server version: 5.5.54-log MySQL Community Server (GPL) 5 6 Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. 7 8 Oracle is a registered trademark of Oracle Corporation and/or its 9 affiliates. Other names may be trademarks of their respective 10 owners. 11 12 Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. 13 14 mysql> show databases; 15 +--------------------+ 16 | Database | 17 +--------------------+ 18 | information_schema | 19 | mysql | 20 | performance_schema | 21 | test | 22 | yinzhengjie | 23 +--------------------+ 24 5 rows in set (0.00 sec) 25 26 mysql> use yinzhengjie 27 Database changed 28 mysql> show tables; 29 +-----------------------+ 30 | Tables_in_yinzhengjie | 31 +-----------------------+ 32 | Student | 33 +-----------------------+ 34 1 row in set (0.00 sec) 35 36 mysql> desc Student; 37 +--------+--------------------+------+-----+---------+-------+ 38 | Field | Type | Null | Key | Default | Extra | 39 +--------+--------------------+------+-----+---------+-------+ 40 | Name | varchar(30) | YES | | NULL | | 41 | Age | tinyint(4) | YES | | NULL | | 42 | Gender | enum('boy','girl') | YES | | NULL | | 43 +--------+--------------------+------+-----+---------+-------+ 44 3 rows in set (0.00 sec) 45 46 mysql>
1 [root@yinzhengjie ~]# mysql -uroot -p123 2 Welcome to the MySQL monitor. Commands end with ; or \g. 3 Your MySQL connection id is 44 4 Server version: 5.5.54-log MySQL Community Server (GPL) 5 6 Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. 7 8 Oracle is a registered trademark of Oracle Corporation and/or its 9 affiliates. Other names may be trademarks of their respective 10 owners. 11 12 Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. 13 14 mysql> show databases; 15 +--------------------+ 16 | Database | 17 +--------------------+ 18 | information_schema | 19 | mysql | 20 | performance_schema | 21 | test | 22 | yinzhengjie | 23 +--------------------+ 24 5 rows in set (0.00 sec) 25 26 mysql> use yinzhengjie 27 Database changed 28 mysql> show tables; 29 +-----------------------+ 30 | Tables_in_yinzhengjie | 31 +-----------------------+ 32 | Student | 33 +-----------------------+ 34 1 row in set (0.00 sec) 35 36 mysql> drop table Student; 37 Query OK, 0 rows affected (0.00 sec) 38 39 mysql> show tables; 40 Empty set (0.00 sec) 41 42 mysql>
1 注意,字段或字段類型還能夠有修飾符 2
3 1>.NOT NULL #表示插入數據時不容許爲空 4 2>.NULL #表示插入的數據能夠爲空 5 3>.DEDAULT #字符要加引號,數字不能加引號 6 4>.UNSIGNED #無符號(只能用在整型上) 7 5>.AUTO_INCREMENT #自動增加類型的字段必須爲主鍵或惟一鍵,即便你清空了一個表格的數據,它默認狀況下是不會重置的喲。 8 6>.PRIMARY KEY #定義主鍵 9 7>.UNIQUE KEY #惟一鍵
1 [root@yinzhengjie ~]# mysql -uroot -p123 2 Welcome to the MySQL monitor. Commands end with ; or \g. 3 Your MySQL connection id is 45 4 Server version: 5.5.54-log MySQL Community Server (GPL) 5 6 Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. 7 8 Oracle is a registered trademark of Oracle Corporation and/or its 9 affiliates. Other names may be trademarks of their respective 10 owners. 11 12 Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. 13 14 mysql> use yinzhengjie 15 Database changed 16 mysql> create table Student (StuID int UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,Name varchar(30) NOT NULL,Age tinyint UNSIGNED NOT NULL,Gender ENUM('boy','girl') NOT NULL DEFAULT 'boy'); ----->和以前建立的表名稱同樣,只不過在每一個變量類型後面加了修飾符,來限定變量是否可用爲空,而且新添加了一個INT類型的StuID字段,而且讓該INT類型自動增加。 17 Query OK, 0 rows affected (0.01 sec) 18 19 mysql> 20 mysql> desc Student; 21 +--------+---------------------+------+-----+---------+----------------+ 22 | Field | Type | Null | Key | Default | Extra | 23 +--------+---------------------+------+-----+---------+----------------+ 24 | StuID | int(10) unsigned | NO | PRI | NULL | auto_increment | 25 | Name | varchar(30) | NO | | NULL | | 26 | Age | tinyint(3) unsigned | NO | | NULL | | 27 | Gender | enum('boy','girl') | NO | | boy | | 28 +--------+---------------------+------+-----+---------+----------------+ 29 4 rows in set (0.00 sec) 30 31 mysql>
b>.表的插入(INSERT)
用法格式:「INSERT INTO TableName(VariableName1,VariableName2,...) VALUE|VALUES (VariableValue1,VariableValue2.....);」
1 mysql> desc Student; 2 +--------+---------------------+------+-----+---------+----------------+ 3 | Field | Type | Null | Key | Default | Extra | 4 +--------+---------------------+------+-----+---------+----------------+ 5 | StuID | int(10) unsigned | NO | PRI | NULL | auto_increment | 6 | Name | varchar(30) | NO | | NULL | | 7 | Age | tinyint(3) unsigned | NO | | NULL | | 8 | Gender | enum('boy','girl') | NO | | boy | | 9 +--------+---------------------+------+-----+---------+----------------+ 10 4 rows in set (0.00 sec) 11 12 mysql> insert into Student(Name,Age,Gender) values ( "yinzihengjie",17,'boy'); 13 Query OK, 1 row affected (0.01 sec) 14 mysql> select * from Student; 15 +-------+--------------+-----+--------+ 16 | StuID | Name | Age | Gender | 17 +-------+--------------+-----+--------+ 18 | 1 | yinzihengjie | 17 | boy | 19 +-------+--------------+-----+--------+ 20 1 row in set (0.00 sec) 21 22 mysql>
1 mysql> select * from Student; 2 +-------+--------------+-----+--------+ 3 | StuID | Name | Age | Gender | 4 +-------+--------------+-----+--------+ 5 | 1 | yinzihengjie | 17 | boy | 6 +-------+--------------+-----+--------+ 7 1 row in set (0.00 sec) 8 9 mysql> insert into Student(Name,Age,Gender) values ( "linus",48,'boy'),("dengziqi",26,'girl'); 10 Query OK, 2 rows affected (0.02 sec) 11 Records: 2 Duplicates: 0 Warnings: 0 12 13 mysql> select * from Student; 14 +-------+--------------+-----+--------+ 15 | StuID | Name | Age | Gender | 16 +-------+--------------+-----+--------+ 17 | 1 | yinzihengjie | 17 | boy | 18 | 2 | linus | 48 | boy | 19 | 3 | dengziqi | 26 | girl | 20 +-------+--------------+-----+--------+ 21 3 rows in set (0.00 sec) 22 23 mysql>
1 mysql> select * from Student; 2 +-------+--------------+-----+--------+ 3 | StuID | Name | Age | Gender | 4 +-------+--------------+-----+--------+ 5 | 1 | yinzihengjie | 17 | boy | 6 | 2 | linus | 48 | boy | 7 | 3 | dengziqi | 26 | girl | 8 +-------+--------------+-----+--------+ 9 3 rows in set (0.00 sec) 10 11 mysql> insert into Student(Name,Age) values ( "jay Chou",38),("joker Xue",34),("zhangweijian",52); 12 Query OK, 3 rows affected (0.00 sec) 13 Records: 3 Duplicates: 0 Warnings: 0 14 15 mysql> select * from Student; 16 +-------+--------------+-----+--------+ 17 | StuID | Name | Age | Gender | 18 +-------+--------------+-----+--------+ 19 | 1 | yinzihengjie | 17 | boy | 20 | 2 | linus | 48 | boy | 21 | 3 | dengziqi | 26 | girl | 22 | 4 | jay Chou | 38 | boy | 23 | 5 | joker Xue | 34 | boy | 24 | 6 | zhangweijian | 52 | boy | 25 +-------+--------------+-----+--------+ 26 6 rows in set (0.00 sec) 27 28 mysql>
c>.表的查詢
1 用法格式:「select VariableName1,VariableName2 from TableName where ConditionalExpression;」 2
3 固然查詢是能夠用,刪除,修改都是能夠用like,rlike以及組合條件進行過濾,從而獲得咱們想要的字段。 4
5
6 like通配符: 7 %:任意長度的任意字符 8 _:匹配任意單個字符 9 rlink 10 正則表達式 11
12
13 組合條件 14 and 15 or 16 not
1 mysql> select * from Student; 2 +-------+--------------+-----+--------+ 3 | StuID | Name | Age | Gender | 4 +-------+--------------+-----+--------+ 5 | 1 | yinzihengjie | 17 | boy | 6 | 2 | linus | 48 | boy | 7 | 3 | dengziqi | 26 | girl | 8 | 4 | jay Chou | 38 | boy | 9 | 5 | joker Xue | 34 | boy | 10 | 6 | zhangweijian | 52 | boy | 11 +-------+--------------+-----+--------+ 12 6 rows in set (0.00 sec) 13 mysql> select Name,Age,Gender from Student where Name = 'yinzihengjie'; 14 +--------------+-----+--------+ 15 | Name | Age | Gender | 16 +--------------+-----+--------+ 17 | yinzihengjie | 17 | boy | 18 +--------------+-----+--------+ 19 1 row in set (0.00 sec) 20 21 mysql>
1 mysql> select * from Student; 2 +-------+--------------+-----+--------+ 3 | StuID | Name | Age | Gender | 4 +-------+--------------+-----+--------+ 5 | 1 | yinzihengjie | 17 | boy | 6 | 2 | linus | 48 | boy | 7 | 3 | dengziqi | 26 | girl | 8 | 4 | jay Chou | 38 | boy | 9 | 5 | joker Xue | 34 | boy | 10 | 6 | zhangweijian | 52 | boy | 11 +-------+--------------+-----+--------+ 12 6 rows in set (0.00 sec) 13 14 mysql> select Name,Age,Gender from Student where Gender = 'boy' and Age > 35; 15 +--------------+-----+--------+ 16 | Name | Age | Gender | 17 +--------------+-----+--------+ 18 | linus | 48 | boy | 19 | jay Chou | 38 | boy | 20 | zhangweijian | 52 | boy | 21 +--------------+-----+--------+ 22 3 rows in set (0.00 sec) 23 24 mysql>
1 mysql> show create table Student; 2 +---------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 3 | Table | Create Table | 4 +---------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 5 | Student | CREATE TABLE `Student` ( 6 `StuID` int(10) unsigned NOT NULL AUTO_INCREMENT, 7 `Name` varchar(30) NOT NULL, 8 `Age` tinyint(3) unsigned NOT NULL, 9 `Gender` enum('boy','girl') NOT NULL DEFAULT 'boy', 10 PRIMARY KEY (`StuID`) 11 ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=latin1 | 12 +---------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 13 1 row in set (0.00 sec) 14 15 mysql>
1 mysql> show engines; 2 +--------------------+---------+----------------------------------------------------------------+--------------+------+------------+ 3 | Engine | Support | Comment | Transactions | XA | Savepoints | 4 +--------------------+---------+----------------------------------------------------------------+--------------+------+------------+ 5 | PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO | 6 | MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO | 7 | CSV | YES | CSV storage engine | NO | NO | NO | 8 | BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO | 9 | MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO | 10 | InnoDB | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES | YES | YES | 11 | ARCHIVE | YES | Archive storage engine | NO | NO | NO | 12 | MyISAM | YES | MyISAM storage engine | NO | NO | NO | 13 | FEDERATED | NO | Federated MySQL storage engine | NULL | NULL | NULL | 14 +--------------------+---------+----------------------------------------------------------------+--------------+------+------------+ 15 9 rows in set (0.00 sec) 16 17 mysql>
1 mysql> show table status\G 2 *************************** 1. row *************************** 3 Name: Student 4 Engine: InnoDB 5 Version: 10 6 Row_format: Compact 7 Rows: 4 8 Avg_row_length: 4096 9 Data_length: 16384 10 Max_data_length: 0 11 Index_length: 0 12 Data_free: 10485760 13 Auto_increment: 7 14 Create_time: 2017-11-11 08:14:12 15 Update_time: NULL 16 Check_time: NULL 17 Collation: latin1_swedish_ci 18 Checksum: NULL 19 Create_options: 20 Comment: 21 1 row in set (0.00 sec) 22 23 mysql>
1 mysql> show character set; 2 +----------+-----------------------------+---------------------+--------+ 3 | Charset | Description | Default collation | Maxlen | 4 +----------+-----------------------------+---------------------+--------+ 5 | big5 | Big5 Traditional Chinese | big5_chinese_ci | 2 | 6 | dec8 | DEC West European | dec8_swedish_ci | 1 | 7 | cp850 | DOS West European | cp850_general_ci | 1 | 8 | hp8 | HP West European | hp8_english_ci | 1 | 9 | koi8r | KOI8-R Relcom Russian | koi8r_general_ci | 1 | 10 | latin1 | cp1252 West European | latin1_swedish_ci | 1 | 11 | latin2 | ISO 8859-2 Central European | latin2_general_ci | 1 | 12 | swe7 | 7bit Swedish | swe7_swedish_ci | 1 | 13 | ascii | US ASCII | ascii_general_ci | 1 | 14 | ujis | EUC-JP Japanese | ujis_japanese_ci | 3 | 15 | sjis | Shift-JIS Japanese | sjis_japanese_ci | 2 | 16 | hebrew | ISO 8859-8 Hebrew | hebrew_general_ci | 1 | 17 | tis620 | TIS620 Thai | tis620_thai_ci | 1 | 18 | euckr | EUC-KR Korean | euckr_korean_ci | 2 | 19 | koi8u | KOI8-U Ukrainian | koi8u_general_ci | 1 | 20 | gb2312 | GB2312 Simplified Chinese | gb2312_chinese_ci | 2 | 21 | greek | ISO 8859-7 Greek | greek_general_ci | 1 | 22 | cp1250 | Windows Central European | cp1250_general_ci | 1 | 23 | gbk | GBK Simplified Chinese | gbk_chinese_ci | 2 | 24 | latin5 | ISO 8859-9 Turkish | latin5_turkish_ci | 1 | 25 | armscii8 | ARMSCII-8 Armenian | armscii8_general_ci | 1 | 26 | utf8 | UTF-8 Unicode | utf8_general_ci | 3 | 27 | ucs2 | UCS-2 Unicode | ucs2_general_ci | 2 | 28 | cp866 | DOS Russian | cp866_general_ci | 1 | 29 | keybcs2 | DOS Kamenicky Czech-Slovak | keybcs2_general_ci | 1 | 30 | macce | Mac Central European | macce_general_ci | 1 | 31 | macroman | Mac West European | macroman_general_ci | 1 | 32 | cp852 | DOS Central European | cp852_general_ci | 1 | 33 | latin7 | ISO 8859-13 Baltic | latin7_general_ci | 1 | 34 | utf8mb4 | UTF-8 Unicode | utf8mb4_general_ci | 4 | 35 | cp1251 | Windows Cyrillic | cp1251_general_ci | 1 | 36 | utf16 | UTF-16 Unicode | utf16_general_ci | 4 | 37 | cp1256 | Windows Arabic | cp1256_general_ci | 1 | 38 | cp1257 | Windows Baltic | cp1257_general_ci | 1 | 39 | utf32 | UTF-32 Unicode | utf32_general_ci | 4 | 40 | binary | Binary pseudo charset | binary | 1 | 41 | geostd8 | GEOSTD8 Georgian | geostd8_general_ci | 1 | 42 | cp932 | SJIS for Windows Japanese | cp932_japanese_ci | 2 | 43 | eucjpms | UJIS for Windows Japanese | eucjpms_japanese_ci | 3 | 44 +----------+-----------------------------+---------------------+--------+ 45 39 rows in set (0.03 sec) 46 47 mysql>
1 mysql> show collation; 2 +--------------------------+----------+-----+---------+----------+---------+ 3 | Collation | Charset | Id | Default | Compiled | Sortlen | 4 +--------------------------+----------+-----+---------+----------+---------+ 5 | big5_chinese_ci | big5 | 1 | Yes | Yes | 1 | 6 | big5_bin | big5 | 84 | | Yes | 1 | 7 | dec8_swedish_ci | dec8 | 3 | Yes | Yes | 1 | 8 | dec8_bin | dec8 | 69 | | Yes | 1 | 9 | cp850_general_ci | cp850 | 4 | Yes | Yes | 1 | 10 | cp850_bin | cp850 | 80 | | Yes | 1 | 11 | hp8_english_ci | hp8 | 6 | Yes | Yes | 1 | 12 | hp8_bin | hp8 | 72 | | Yes | 1 | 13 | koi8r_general_ci | koi8r | 7 | Yes | Yes | 1 | 14 | koi8r_bin | koi8r | 74 | | Yes | 1 | 15 | latin1_german1_ci | latin1 | 5 | | Yes | 1 | 16 | latin1_swedish_ci | latin1 | 8 | Yes | Yes | 1 | 17 | latin1_danish_ci | latin1 | 15 | | Yes | 1 | 18 | latin1_german2_ci | latin1 | 31 | | Yes | 2 | 19 | latin1_bin | latin1 | 47 | | Yes | 1 | 20 | latin1_general_ci | latin1 | 48 | | Yes | 1 | 21 | latin1_general_cs | latin1 | 49 | | Yes | 1 | 22 | latin1_spanish_ci | latin1 | 94 | | Yes | 1 | 23 | latin2_czech_cs | latin2 | 2 | | Yes | 4 | 24 | latin2_general_ci | latin2 | 9 | Yes | Yes | 1 | 25 | latin2_hungarian_ci | latin2 | 21 | | Yes | 1 | 26 | latin2_croatian_ci | latin2 | 27 | | Yes | 1 | 27 | latin2_bin | latin2 | 77 | | Yes | 1 | 28 | swe7_swedish_ci | swe7 | 10 | Yes | Yes | 1 | 29 | swe7_bin | swe7 | 82 | | Yes | 1 | 30 | ascii_general_ci | ascii | 11 | Yes | Yes | 1 | 31 | ascii_bin | ascii | 65 | | Yes | 1 | 32 | ujis_japanese_ci | ujis | 12 | Yes | Yes | 1 | 33 | ujis_bin | ujis | 91 | | Yes | 1 | 34 | sjis_japanese_ci | sjis | 13 | Yes | Yes | 1 | 35 | sjis_bin | sjis | 88 | | Yes | 1 | 36 | hebrew_general_ci | hebrew | 16 | Yes | Yes | 1 | 37 | hebrew_bin | hebrew | 71 | | Yes | 1 | 38 | tis620_thai_ci | tis620 | 18 | Yes | Yes | 4 | 39 | tis620_bin | tis620 | 89 | | Yes | 1 | 40 | euckr_korean_ci | euckr | 19 | Yes | Yes | 1 | 41 | euckr_bin | euckr | 85 | | Yes | 1 | 42 | koi8u_general_ci | koi8u | 22 | Yes | Yes | 1 | 43 | koi8u_bin | koi8u | 75 | | Yes | 1 | 44 | gb2312_chinese_ci | gb2312 | 24 | Yes | Yes | 1 | 45 | gb2312_bin | gb2312 | 86 | | Yes | 1 | 46 | greek_general_ci | greek | 25 | Yes | Yes | 1 | 47 | greek_bin | greek | 70 | | Yes | 1 | 48 | cp1250_general_ci | cp1250 | 26 | Yes | Yes | 1 | 49 | cp1250_czech_cs | cp1250 | 34 | | Yes | 2 | 50 | cp1250_croatian_ci | cp1250 | 44 | | Yes | 1 | 51 | cp1250_bin | cp1250 | 66 | | Yes | 1 | 52 | cp1250_polish_ci | cp1250 | 99 | | Yes | 1 | 53 | gbk_chinese_ci | gbk | 28 | Yes | Yes | 1 | 54 | gbk_bin | gbk | 87 | | Yes | 1 | 55 | latin5_turkish_ci | latin5 | 30 | Yes | Yes | 1 | 56 | latin5_bin | latin5 | 78 | | Yes | 1 | 57 | armscii8_general_ci | armscii8 | 32 | Yes | Yes | 1 | 58 | armscii8_bin | armscii8 | 64 | | Yes | 1 | 59 | utf8_general_ci | utf8 | 33 | Yes | Yes | 1 | 60 | utf8_bin | utf8 | 83 | | Yes | 1 | 61 | utf8_unicode_ci | utf8 | 192 | | Yes | 8 | 62 | utf8_icelandic_ci | utf8 | 193 | | Yes | 8 | 63 | utf8_latvian_ci | utf8 | 194 | | Yes | 8 | 64 | utf8_romanian_ci | utf8 | 195 | | Yes | 8 | 65 | utf8_slovenian_ci | utf8 | 196 | | Yes | 8 | 66 | utf8_polish_ci | utf8 | 197 | | Yes | 8 | 67 | utf8_estonian_ci | utf8 | 198 | | Yes | 8 | 68 | utf8_spanish_ci | utf8 | 199 | | Yes | 8 | 69 | utf8_swedish_ci | utf8 | 200 | | Yes | 8 | 70 | utf8_turkish_ci | utf8 | 201 | | Yes | 8 | 71 | utf8_czech_ci | utf8 | 202 | | Yes | 8 | 72 | utf8_danish_ci | utf8 | 203 | | Yes | 8 | 73 | utf8_lithuanian_ci | utf8 | 204 | | Yes | 8 | 74 | utf8_slovak_ci | utf8 | 205 | | Yes | 8 | 75 | utf8_spanish2_ci | utf8 | 206 | | Yes | 8 | 76 | utf8_roman_ci | utf8 | 207 | | Yes | 8 | 77 | utf8_persian_ci | utf8 | 208 | | Yes | 8 | 78 | utf8_esperanto_ci | utf8 | 209 | | Yes | 8 | 79 | utf8_hungarian_ci | utf8 | 210 | | Yes | 8 | 80 | utf8_sinhala_ci | utf8 | 211 | | Yes | 8 | 81 | utf8_general_mysql500_ci | utf8 | 223 | | Yes | 1 | 82 | ucs2_general_ci | ucs2 | 35 | Yes | Yes | 1 | 83 | ucs2_bin | ucs2 | 90 | | Yes | 1 | 84 | ucs2_unicode_ci | ucs2 | 128 | | Yes | 8 | 85 | ucs2_icelandic_ci | ucs2 | 129 | | Yes | 8 | 86 | ucs2_latvian_ci | ucs2 | 130 | | Yes | 8 | 87 | ucs2_romanian_ci | ucs2 | 131 | | Yes | 8 | 88 | ucs2_slovenian_ci | ucs2 | 132 | | Yes | 8 | 89 | ucs2_polish_ci | ucs2 | 133 | | Yes | 8 | 90 | ucs2_estonian_ci | ucs2 | 134 | | Yes | 8 | 91 | ucs2_spanish_ci | ucs2 | 135 | | Yes | 8 | 92 | ucs2_swedish_ci | ucs2 | 136 | | Yes | 8 | 93 | ucs2_turkish_ci | ucs2 | 137 | | Yes | 8 | 94 | ucs2_czech_ci | ucs2 | 138 | | Yes | 8 | 95 | ucs2_danish_ci | ucs2 | 139 | | Yes | 8 | 96 | ucs2_lithuanian_ci | ucs2 | 140 | | Yes | 8 | 97 | ucs2_slovak_ci | ucs2 | 141 | | Yes | 8 | 98 | ucs2_spanish2_ci | ucs2 | 142 | | Yes | 8 | 99 | ucs2_roman_ci | ucs2 | 143 | | Yes | 8 | 100 | ucs2_persian_ci | ucs2 | 144 | | Yes | 8 | 101 | ucs2_esperanto_ci | ucs2 | 145 | | Yes | 8 | 102 | ucs2_hungarian_ci | ucs2 | 146 | | Yes | 8 | 103 | ucs2_sinhala_ci | ucs2 | 147 | | Yes | 8 | 104 | ucs2_general_mysql500_ci | ucs2 | 159 | | Yes | 1 | 105 | cp866_general_ci | cp866 | 36 | Yes | Yes | 1 | 106 | cp866_bin | cp866 | 68 | | Yes | 1 | 107 | keybcs2_general_ci | keybcs2 | 37 | Yes | Yes | 1 | 108 | keybcs2_bin | keybcs2 | 73 | | Yes | 1 | 109 | macce_general_ci | macce | 38 | Yes | Yes | 1 | 110 | macce_bin | macce | 43 | | Yes | 1 | 111 | macroman_general_ci | macroman | 39 | Yes | Yes | 1 | 112 | macroman_bin | macroman | 53 | | Yes | 1 | 113 | cp852_general_ci | cp852 | 40 | Yes | Yes | 1 | 114 | cp852_bin | cp852 | 81 | | Yes | 1 | 115 | latin7_estonian_cs | latin7 | 20 | | Yes | 1 | 116 | latin7_general_ci | latin7 | 41 | Yes | Yes | 1 | 117 | latin7_general_cs | latin7 | 42 | | Yes | 1 | 118 | latin7_bin | latin7 | 79 | | Yes | 1 | 119 | utf8mb4_general_ci | utf8mb4 | 45 | Yes | Yes | 1 | 120 | utf8mb4_bin | utf8mb4 | 46 | | Yes | 1 | 121 | utf8mb4_unicode_ci | utf8mb4 | 224 | | Yes | 8 | 122 | utf8mb4_icelandic_ci | utf8mb4 | 225 | | Yes | 8 | 123 | utf8mb4_latvian_ci | utf8mb4 | 226 | | Yes | 8 | 124 | utf8mb4_romanian_ci | utf8mb4 | 227 | | Yes | 8 | 125 | utf8mb4_slovenian_ci | utf8mb4 | 228 | | Yes | 8 | 126 | utf8mb4_polish_ci | utf8mb4 | 229 | | Yes | 8 | 127 | utf8mb4_estonian_ci | utf8mb4 | 230 | | Yes | 8 | 128 | utf8mb4_spanish_ci | utf8mb4 | 231 | | Yes | 8 | 129 | utf8mb4_swedish_ci | utf8mb4 | 232 | | Yes | 8 | 130 | utf8mb4_turkish_ci | utf8mb4 | 233 | | Yes | 8 | 131 | utf8mb4_czech_ci | utf8mb4 | 234 | | Yes | 8 | 132 | utf8mb4_danish_ci | utf8mb4 | 235 | | Yes | 8 | 133 | utf8mb4_lithuanian_ci | utf8mb4 | 236 | | Yes | 8 | 134 | utf8mb4_slovak_ci | utf8mb4 | 237 | | Yes | 8 | 135 | utf8mb4_spanish2_ci | utf8mb4 | 238 | | Yes | 8 | 136 | utf8mb4_roman_ci | utf8mb4 | 239 | | Yes | 8 | 137 | utf8mb4_persian_ci | utf8mb4 | 240 | | Yes | 8 | 138 | utf8mb4_esperanto_ci | utf8mb4 | 241 | | Yes | 8 | 139 | utf8mb4_hungarian_ci | utf8mb4 | 242 | | Yes | 8 | 140 | utf8mb4_sinhala_ci | utf8mb4 | 243 | | Yes | 8 | 141 | cp1251_bulgarian_ci | cp1251 | 14 | | Yes | 1 | 142 | cp1251_ukrainian_ci | cp1251 | 23 | | Yes | 1 | 143 | cp1251_bin | cp1251 | 50 | | Yes | 1 | 144 | cp1251_general_ci | cp1251 | 51 | Yes | Yes | 1 | 145 | cp1251_general_cs | cp1251 | 52 | | Yes | 1 | 146 | utf16_general_ci | utf16 | 54 | Yes | Yes | 1 | 147 | utf16_bin | utf16 | 55 | | Yes | 1 | 148 | utf16_unicode_ci | utf16 | 101 | | Yes | 8 | 149 | utf16_icelandic_ci | utf16 | 102 | | Yes | 8 | 150 | utf16_latvian_ci | utf16 | 103 | | Yes | 8 | 151 | utf16_romanian_ci | utf16 | 104 | | Yes | 8 | 152 | utf16_slovenian_ci | utf16 | 105 | | Yes | 8 | 153 | utf16_polish_ci | utf16 | 106 | | Yes | 8 | 154 | utf16_estonian_ci | utf16 | 107 | | Yes | 8 | 155 | utf16_spanish_ci | utf16 | 108 | | Yes | 8 | 156 | utf16_swedish_ci | utf16 | 109 | | Yes | 8 | 157 | utf16_turkish_ci | utf16 | 110 | | Yes | 8 | 158 | utf16_czech_ci | utf16 | 111 | | Yes | 8 | 159 | utf16_danish_ci | utf16 | 112 | | Yes | 8 | 160 | utf16_lithuanian_ci | utf16 | 113 | | Yes | 8 | 161 | utf16_slovak_ci | utf16 | 114 | | Yes | 8 | 162 | utf16_spanish2_ci | utf16 | 115 | | Yes | 8 | 163 | utf16_roman_ci | utf16 | 116 | | Yes | 8 | 164 | utf16_persian_ci | utf16 | 117 | | Yes | 8 | 165 | utf16_esperanto_ci | utf16 | 118 | | Yes | 8 | 166 | utf16_hungarian_ci | utf16 | 119 | | Yes | 8 | 167 | utf16_sinhala_ci | utf16 | 120 | | Yes | 8 | 168 | cp1256_general_ci | cp1256 | 57 | Yes | Yes | 1 | 169 | cp1256_bin | cp1256 | 67 | | Yes | 1 | 170 | cp1257_lithuanian_ci | cp1257 | 29 | | Yes | 1 | 171 | cp1257_bin | cp1257 | 58 | | Yes | 1 | 172 | cp1257_general_ci | cp1257 | 59 | Yes | Yes | 1 | 173 | utf32_general_ci | utf32 | 60 | Yes | Yes | 1 | 174 | utf32_bin | utf32 | 61 | | Yes | 1 | 175 | utf32_unicode_ci | utf32 | 160 | | Yes | 8 | 176 | utf32_icelandic_ci | utf32 | 161 | | Yes | 8 | 177 | utf32_latvian_ci | utf32 | 162 | | Yes | 8 | 178 | utf32_romanian_ci | utf32 | 163 | | Yes | 8 | 179 | utf32_slovenian_ci | utf32 | 164 | | Yes | 8 | 180 | utf32_polish_ci | utf32 | 165 | | Yes | 8 | 181 | utf32_estonian_ci | utf32 | 166 | | Yes | 8 | 182 | utf32_spanish_ci | utf32 | 167 | | Yes | 8 | 183 | utf32_swedish_ci | utf32 | 168 | | Yes | 8 | 184 | utf32_turkish_ci | utf32 | 169 | | Yes | 8 | 185 | utf32_czech_ci | utf32 | 170 | | Yes | 8 | 186 | utf32_danish_ci | utf32 | 171 | | Yes | 8 | 187 | utf32_lithuanian_ci | utf32 | 172 | | Yes | 8 | 188 | utf32_slovak_ci | utf32 | 173 | | Yes | 8 | 189 | utf32_spanish2_ci | utf32 | 174 | | Yes | 8 | 190 | utf32_roman_ci | utf32 | 175 | | Yes | 8 | 191 | utf32_persian_ci | utf32 | 176 | | Yes | 8 | 192 | utf32_esperanto_ci | utf32 | 177 | | Yes | 8 | 193 | utf32_hungarian_ci | utf32 | 178 | | Yes | 8 | 194 | utf32_sinhala_ci | utf32 | 179 | | Yes | 8 | 195 | binary | binary | 63 | Yes | Yes | 1 | 196 | geostd8_general_ci | geostd8 | 92 | Yes | Yes | 1 | 197 | geostd8_bin | geostd8 | 93 | | Yes | 1 | 198 | cp932_japanese_ci | cp932 | 95 | Yes | Yes | 1 | 199 | cp932_bin | cp932 | 96 | | Yes | 1 | 200 | eucjpms_japanese_ci | eucjpms | 97 | Yes | Yes | 1 | 201 | eucjpms_bin | eucjpms | 98 | | Yes | 1 | 202 +--------------------------+----------+-----+---------+----------+---------+ 203 197 rows in set (0.00 sec) 204 205 mysql>
1 mysql> show variables like 'data%'; 2 +---------------+---------------+ 3 | Variable_name | Value | 4 +---------------+---------------+ 5 | datadir | /data/mydata/ | 6 +---------------+---------------+ 7 1 row in set (0.00 sec) 8 9 mysql>
1 mysql> show global variables like 'version'; 2 +---------------+------------+ 3 | Variable_name | Value | 4 +---------------+------------+ 5 | version | 5.5.54-log | 6 +---------------+------------+ 7 1 row in set (0.00 sec) 8 9 mysql>
1 mysql> show session variables like 'tmp_table_size'; 2 +----------------+----------+ 3 | Variable_name | Value | 4 +----------------+----------+ 5 | tmp_table_size | 16777216 | 6 +----------------+----------+ 7 1 row in set (0.00 sec) 8 9 mysql>
1 mysql> show status like 'Com_select'; 2 +---------------+-------+ 3 | Variable_name | Value | 4 +---------------+-------+ 5 | Com_select | 4 | 6 +---------------+-------+ 7 1 row in set (0.00 sec) 8 9 mysql>
d>.刪除數據(delete)
用法格式:「 delete from TableName where ConditionalExpression;」
1 mysql> select * from Student; 2 +-------+--------------+-----+--------+ 3 | StuID | Name | Age | Gender | 4 +-------+--------------+-----+--------+ 5 | 1 | yinzihengjie | 17 | boy | 6 | 2 | linus | 48 | boy | 7 | 3 | dengziqi | 26 | girl | 8 | 4 | jay Chou | 38 | boy | 9 | 5 | joker Xue | 34 | boy | 10 | 6 | zhangweijian | 52 | boy | 11 +-------+--------------+-----+--------+ 12 6 rows in set (0.00 sec) 13 14 mysql> delete from Student where name like 'z%'; 15 Query OK, 1 row affected (0.00 sec) 16 17 mysql> select * from Student; 18 +-------+--------------+-----+--------+ 19 | StuID | Name | Age | Gender | 20 +-------+--------------+-----+--------+ 21 | 1 | yinzihengjie | 17 | boy | 22 | 2 | linus | 48 | boy | 23 | 3 | dengziqi | 26 | girl | 24 | 4 | jay Chou | 38 | boy | 25 | 5 | joker Xue | 34 | boy | 26 +-------+--------------+-----+--------+ 27 5 rows in set (0.00 sec) 28 29 mysql>
1 mysql> select * from Student; 2 +-------+--------------+-----+--------+ 3 | StuID | Name | Age | Gender | 4 +-------+--------------+-----+--------+ 5 | 1 | yinzihengjie | 17 | boy | 6 | 2 | linus | 48 | boy | 7 | 3 | dengziqi | 26 | girl | 8 | 4 | jay Chou | 38 | boy | 9 | 5 | joker Xue | 34 | boy | 10 +-------+--------------+-----+--------+ 11 5 rows in set (0.00 sec) 12 13 mysql> delete from Student where Name rlike '^l.*'; 14 Query OK, 1 row affected (0.00 sec) 15 16 mysql> select * from Student; 17 +-------+--------------+-----+--------+ 18 | StuID | Name | Age | Gender | 19 +-------+--------------+-----+--------+ 20 | 1 | yinzihengjie | 17 | boy | 21 | 3 | dengziqi | 26 | girl | 22 | 4 | jay Chou | 38 | boy | 23 | 5 | joker Xue | 34 | boy | 24 +-------+--------------+-----+--------+ 25 4 rows in set (0.00 sec) 26 27 mysql>
e>.更新數據(update)
用法格式:「update TableName set VariableType = VariableValue where ConditionalExpression;」
1 mysql> select * from Student; 2 +-------+--------------+-----+--------+ 3 | StuID | Name | Age | Gender | 4 +-------+--------------+-----+--------+ 5 | 1 | yinzihengjie | 17 | boy | 6 | 3 | dengziqi | 26 | girl | 7 | 4 | jay Chou | 38 | boy | 8 | 5 | joker Xue | 34 | boy | 9 +-------+--------------+-----+--------+ 10 4 rows in set (0.00 sec) 11 12 mysql> update Student set Age=20 where Name = 'yinzihengjie'; 13 Query OK, 1 row affected (0.04 sec) 14 Rows matched: 1 Changed: 1 Warnings: 0 15 16 mysql> select * from Student; 17 +-------+--------------+-----+--------+ 18 | StuID | Name | Age | Gender | 19 +-------+--------------+-----+--------+ 20 | 1 | yinzihengjie | 20 | boy | 21 | 3 | dengziqi | 26 | girl | 22 | 4 | jay Chou | 38 | boy | 23 | 5 | joker Xue | 34 | boy | 24 +-------+--------------+-----+--------+ 25 4 rows in set (0.00 sec) 26 27 mysql>
五.MySQL內置的SQL模型(SQL_MODE)
1.MySQL內置的SQL模型經常使用的模式
MySQL有內置的SQL模型SQL_MODE:用來定義字符超出的操做和模仿別的數據庫的類型,經過修改全局變量。 經常使用的模式有:
A>.TRADITIONAL 使用傳統模式
B>.STRICT_TRANS_TABLES 僅對支持事務的表的嚴格模式
C>.STRICT_ALL_TABLES 對全部表使用嚴格模式
2.設定服務器變量的值:一般僅用於支持動態的變量
A>.支持修改的服務器變量
動態變量:能夠在MySQL運行時修改
靜態變量:與配置文件中修改其值,並重啓後方能生效
B>.服務器變量從其生效範圍來說,分兩類
全局變量:服務器級別,修改以後僅對新創建的會話生效
回話變量:會話級別,僅對當前會話有效
會話創建時,從全局繼承各變量
C>.查看服務器變量
mysql> show [{global|session}] variables [like ''];
mysql> select @@{globa|session}.variable_name
mysql> mysql> select * from information_schema.GLOBAL_VARIABLES where VARIABLE_NAME='SOME_VARIABLE_NAME'; 查看全局變量
mysql> mysql> select * from information_schema.SESSION_VARIABLES where VARIABLE_NAME='SOME_VARIABLE_NAME'; 查看會話變量
D>.修改變量
前提:默認僅管理員有權限修改全局變量
mysql> set {global|session} variable_name='value';
注意:不管是全局仍是會話級別的動態變量修改,在重啓mysql後都會失效,想永久有效,能夠定義在配置文件中的響應段中[mysqld]