mysql知識

#記錄學習馬哥MYSQL的相關SQL命令的用法。#

1、mysql> SHOW ENGINES; #展示當前數據庫可以支持的數據庫引擎,Default 爲默認使用的數據庫引擎。

2、mysql> use mysql;
mysql> help SHOW TABLE STATUS; # show table status 爲獲取表的信息,help 是查看其使用方法。

3、mysql> SHOW TABLE STATUS LIKE 'user'; #查看mysql庫中user表的信息
mysql> SHOW TABLE STATUS LIKE 'user';
+------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+-----------+----------+----------------+-----------------------------+
| Name | Engine | Version | Row_format | Rows | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment | Create_time | Update_time | Check_time | Collation | Checksum | Create_options | Comment |
+------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+-----------+----------+----------------+-----------------------------+
| user | MyISAM | 10 | Dynamic | 2 | 132 | 264 | 281474976710655 | 4096 | 0 | NULL | 2018-06-20 09:58:29 | 2018-06-20 11:46:40 | NULL | utf8_bin | NULL | | Users and global privileges |
+------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+-----------+----------+----------------+-----------------------------+
1 row in set (0.01 sec)

4、shell# mysql --help --version #查看mysql中my.cnf中支持的各種指令

5、mysql> SHOW CHARACTER SET; #查看mysql支持的字符集

6、mysql> SHOW COLLATION; #顯示字符集的排序規則

7、mysql> SELECT LAST_INSERT_ID(); #查詢上一次SQL執行結果

8、AUTO_INCREMENT
例子 mysql> CREATE TABLE test(ID UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,name CHAR(20)) #創建一個表,兩個字段ID,name;ID字段是無符號自動增長非空主鍵。name字段是定長20

MYSQL服務器變量:
作用域:分爲兩類
全局變量
SHOW GLOBAL VARIABLES
會話變量
SHOW [SESSION] VARIABLES
9、mysql> SHOW GLOBAL VARIABLES LIKE 'sql_mode'; #查看當前支持的sql模型,global表示全局變量
mysql> SELECT @@global.sql_mode; #不一樣的表達式相同的結果

10、服務器變量:@@變量名
顯示:SELECT
設定:SET GLOBAL | SEEEION 變量名='value'
########################################################################################@我是分界線@#####################################

第二講:
mysql> HELP CRATE TABLE | DATABASE #查看幫助信息

1、創建數據庫:
mysql> CREATE DATABASE | SCHEMA [IF NOT EXISTS] db_name [CHARACTER SET=] [COLLATE=]
e.g:mysql> CREATE SCHEMA IF NOT EXISTS students CHARACTER SET 'gbk' COLLATE 'gdk-chinese-ci';
2、刪除數據庫
mysql> DROP {DATABASE | SCHEMA} [IF EXISTS] db_name
3、 表的創建:
1、直接定義一張空表
mysql> CREATE TABLE [IF NOT EXISTS] tb_name(col_name col_defination,...)
2、從其他表中查詢出數據,並以之創建新表
mysql> CREATE TABLE testcourses SELECT * FROM courses WHERE CID <=2;
3、以其他表爲模板創建一個空表
mysql> CREATE TABLE test LIKE courses;
4、修改表定義:
ALTER TABLE
添加、刪除、修改字段
添加、刪除、修改索引
改表名
修改表屬性
5、刪除表
mysql> DROP TABLE td_name;

DML:
SELECT
SELECT select-list FRPM tb WHERE qualification
查詢語句類型:
簡單查詢
多表查詢
子查詢
SELECT FROM tb_name
SELECT field1,field2 FROM tb_name;投影
SELECT [DISTINCT]
FROM tb_name WHERE qualification; 選擇

 FROM子句:要查詢的關係        表、多個表、其他SELECT語句
 WHERE子句:布爾關係表達式;=、>、>=、<=、<

SQL測試語句:
1、通過 SQL,您如何從 "Persons" 表中選取 "FirstName" 列的值等於"Peter" 的所有記錄?
mysql> SELECT FROM Persons WHERE FirstName='Peter'
2、通過 SQL,您如何從 "Persons" 表中選取 "FirstName" 列的值以 "a" 開頭的所有記錄?
mysql> SELECT
FROM Persons WHERE FirstName LIKE 'a%'
3、通過 SQL,您如何在表 Persons 中選擇 FirstName 等於 Thomas 而 LastName 等於 Carter 的所有記錄?
mysql> SELECT FROM Persons WHERE FirstName='Thomas' AND LastName='Carter'
4、通過 SQL,您如何按字母順序選取 Persons 表中 LastName 介於 Adams 和 Carter 的所有記錄?
mysql> SELECT
FROM Persons WHERE LastName BETWEEN 'Adams' AND 'Carter'
5、通過 SQL,您如何根據 "FirstName" 列降序地從 "Persons" 表返回所有記錄?
mysql> SELECT FROM Persons ORDER BY FirstName DESC
6、通過 SQL,您如何向 "Persons" 表插入新的記錄?
mysql> INSERT INTO Persons VALUES ('Jimmy', 'Jackson')
7、通過 SQL,您如何向 "Persons" 表中的 "LastName" 列插入 "Wilson" ?
mysql> INSERT INTO Persons (LastName) VALUES ('Wilson')
8、您如何把 "Persons" 表中 "LastName" 列的 "Gates" 改爲 "Wilson" ?
mysql> UPDATE Persons SET LastName='Wilson' WHERE LastName='Gates'
9、通過 SQL,您如何在 "Persons" 表中刪除 "FirstName" 等於 "Fred" 的紀錄?
mysql> DELETE FROM Persons WHERE FirstName = 'Fred'
10、通過 SQL,您如何返回 "Persons" 表中記錄的數目?
myql> SELECT COUNT(
) FROM Persons

1、創建一個用戶
mysql> create user username@host [identified by 'password'];
2、查看一個用戶的授權信息
mysql> show grants for 'username@host';
3、授權命令
mysql> grant all privileges on db.* to username@'%';
4、刪除一個用戶
mysql> drop user username@'host';
5、重命名一個用戶名
mysql> rename user old_name to new_name;
6、取消用戶授權信息
mysql> revoke
7、數據庫忘記root密碼
請自行百度,簡單的很的很~

mysql日誌分類:
錯誤日誌
一般查詢日誌
geneAral_log
general_log_file
log
log_output
慢查詢日誌
long_query_time
long_slow_queries={YES|NO}
slow_query_log
slow_query_log_file
二進制日誌:任何引起或可能引起數據庫變化的操作;用於實現mysql複製,即時點還原。
mysqlbinlog
二進制日誌的格式
基於語句:statement
基於行:row
混合方式:mixed
二進制日誌事件:
產生的時間
相對位置
二進制日誌事件
產生的時間
相對位置
二進制日誌文件
索引文件
二進制日誌文件
查看當前正在使用的二進制日誌文件
mysql> SHOW MASTER STATUS;
mysql> SHOW BINARY LOGS;
mysql> SHOW BINLOG EVENTS IN '二級制日誌文件名' [from pos];
mysql> PURGE BINARY LOGS TO '某二進制日誌文件'

  mysqlbinlog
      --start-datetime
      --stop-datetime

      --start-position
      --stop-position

 中繼日誌
 事務日誌:ACID,將隨機IO轉換爲順序IO
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章