MySQL的學習記錄

windows下啟動MySQL服務:
用管理員打開CMD,
輸入net start mysql啟動服務
輸入net stop mysql停止服務
備注:以上命令同樣適應于管理其它服務。

mysql的登陸與退出
登陸:
C:\WINDOWS\system32>mysql -uroot -p -P3306 -h127.0.0.1

C:\WINDOWS\system32>mysql -uroot -p
退出:
mysql > exit;
mysql > quit;
mysql > \q;

常用命令
SELECT VERSION();//顯示當前服務器版本
SELECT NOW();//顯示當前日期時間
SELECT USER();//顯示當前用戶

SELECT DATABASE();

USE db_name; //打開數據庫


Paste_Image.png
Paste_Image.png

創建數據庫:
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [DEFAULT] CHARACTER SET [=] charset_name

查看創建的數據庫的信息:
CREATE DATABASE db_name;

Paste_Image.png

修改數據庫
ALTER {DATABASE | SCHEMA} [db_name]
[DEFAULT] CHARACTER SET [=] charset_name;

Paste_Image.png

刪除數據庫
DROP {DATABASE | SCEMA} [IF EXISTS] db_name;

Paste_Image.png
Paste_Image.png

查看當前服務器下的數據表列表
SHOW {DATABASES | SCHEMAS}
[LIKE 'pattern' | WHERE expr]

查看警告信息:SHOW WARNINGS;

Paste_Image.png

創建數據表
CREATE TABLE [IF NOT EXISTS] table_name(
column_name data_type,
......
);

Paste_Image.png

語句規范
1、關鍵字與函數名稱全部要大寫;
2、數據庫名稱、表名稱、字段名稱全部要小寫;
3、SQL語句必須以分號結尾。

Paste_Image.png
Paste_Image.png

命令介紹:
List of all MySQL commands:
Note that all text commands must be first on line and end with ';'
? (?) Synonym for `help'.
clear (\c) Clear the current input statement.
connect (\r) Reconnect to the server. Optional arguments are db and host.
delimiter (\d) Set statement delimiter.
ego (\G) Send command to mysql server, display result vertically.
exit (\q) Exit mysql. Same as quit.
go (\g) Send command to mysql server.
help (\h) Display this help.
notee (\t) Don't write into outfile.
print (\p) Print current command.
prompt (\R) Change your mysql prompt.
quit (\q) Quit mysql.
rehash (#) Rebuild completion hash.
source (.) Execute an SQL script file. Takes a file name as an argument.
status (\s) Get status information from the server.
tee (\T) Set outfile [to_outfile]. Append everything into given outfile.
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.
warnings (\W) Show warnings after every statement.
nowarning (\w) Don't show warnings after every statement.

primary key不一定與autoincrement一起使用,但autoincrement必須與primary key一起使用。
創建數據表舉例:
CREATE TABLE tabelname (
id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,username VARCHAR(20) NOT NULL UNIQUE KEY,sex ENUM('1','2','3') DEFAULT '3'
);

Paste_Image.png

查看數據表
SHOW TABLES [FROM db_name]
[LIKE 'pattern' | WHERE expr]
備注:不加[FROM db_name],則查看當前數據庫的數據表
查看數據表結構
SHOW COLUMNS FROM table_name;

Paste_Image.png

插入記錄
INSERT [INTO] table_name [(col_name,...)] VALUES(val,...);
如:INSERT tablename(username,sex) VALUES('tom','2');

Paste_Image.png

查找記錄
SELECT expr,... FROM table_name;
如:SELECT * FROM tb1;

Paste_Image.png

Paste_Image.png

備注: PRIMARY KEY 指定為主鍵,AUTO_INCREMENT自增長。
NOT NULL 不能為空,
UNIQUE KEY唯一約束,
DEFAULT 指定默認值。

Paste_Image.png
Paste_Image.png

數據類型

Paste_Image.png

Paste_Image.png
Paste_Image.png

**空值 與 非空
NULL 字段可以為空
NOT NULL 字段不可以為空
主鍵 與 自動編號
主鍵:PRIMARY KEY,主鍵約束,每張數據表只能有一個主鍵,保證記錄的唯一性,自動為NOT NULL。
自動編號:AUTO_INCREMENT, 必須與主鍵組合使用,默認情況下,起始值為1,增量為1。

唯一約束 UNIQE KEY

Paste_Image.png

默認約束 DEFAULT
當插入記錄時,如果沒有明確為字段賦值,則自動賦予默認值。

Paste_Image.png

約束

Paste_Image.png
Paste_Image.png

外鍵約束 FOREIGN KEYp
作用:保持數據的一致性,完整性;實現一對一或一對多的關系。
數據表從存儲引擎,修改my.ini文件中default-storage-engine=INNODB
外鍵約束的要求:

Paste_Image.png
Paste_Image.png
Paste_Image.png

查看參照列或外鍵列是否存在索引:
SHOW INDEXES FROM table_name;


Paste_Image.png

以網格的形式呈現(加上\G):
SHOW INDEXES FROM table_name\G;


Paste_Image.png

3.3 外鍵約束的參照操作

Paste_Image.png

刪除記錄:DELETE FROM table_name WHERE 條件

數據表的修改

  • 添加單列
    ALTER TABLE table_name [COLUMN] column_name column_definition [FIRST | AFTER column_name]
    如:ALTER TABLE users ADD age TINYINT UNSIGNED NOT NULL AFTER username;//添加age列到username列后面


    Paste_Image.png
  • 添加多列
    ALTER TABLE table_name [COLUMN] (col_name column_definition,...)//添加多列時,只能添加的末尾


    Paste_Image.png
  • 刪除列
    ALTER TABLE table_name DROP [COLUMN] col_name;// 刪除單列
    ALTER TABLE table_name DROP [COLUMN] col_name,DROP [COLUMN] col_name...// 刪除多列
    備注:添加和刪除列可以同時操作,操作間用“,”分隔,如:
    ALTER TABLE users DROP username,ADD _id SMALLINT UNSIGNED NOT NULL;
  • 添加主鍵約束
Paste_Image.png
  • 添加唯一約束
Paste_Image.png
  • 添加/刪除默認約束
Paste_Image.png
  • 刪除主鍵約束
Paste_Image.png
  • 刪除外鍵約束

  • 修改列定義

Paste_Image.png
  • 修改列名稱
Paste_Image.png
  • 數據表更名
Paste_Image.png
  • 小結


    Paste_Image.png

操作數據表中的記錄

可以插入表達式、函數、值


Paste_Image.png

備注:為自動編號賦值可以為NULL,也可以為DEFAULT;省略了列,所有的列必須依次賦值。

Paste_Image.png
Paste_Image.png

(這種方法,只能一次插入一條語句)

Paste_Image.png

更新記錄UPDATE

Paste_Image.png

注意:省略條件WHERE將更新所有的記錄

Paste_Image.png

如:UPDATE users SET age = age - id, sex = 0;//將更新所有記錄,可以更新一個字段,也可以更新多個字段,用“,”分隔。

刪除記錄

Paste_Image.png

如:DELETE FROM users WHERE id = 6;

查找記錄

Paste_Image.png
Paste_Image.png
Paste_Image.png
Paste_Image.png

WHERE 條件表達式

Paste_Image.png

GROUP BY查詢記過分組

Paste_Image.png
Paste_Image.png

ORDER BY對查詢結果進行排序

Paste_Image.png
Paste_Image.png

LIMIT 限制查詢結果返回的數量

Paste_Image.png

拓展資料:21分鐘 MySQL 入門教程 http://www.cnblogs.com/mr-wid/archive/2013/05/09/3068229.html

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • SQL SELECT 語句 一、查詢SQL SELECT 語法 (1)SELECT 列名稱 FROM 表名稱 (2...
    有錢且幸福閱讀 5,686評論 0 33
  • 1、MySQL啟動和關閉(安裝及配置請參照百度經驗,這里不再記錄。MySQL默認端口號:3306;默認數據類型格式...
    強壯de西蘭花閱讀 677評論 0 1
  • 20170623睡前打卡儀式:我今天想明白了一個道理 對干貨知識的學習一定要遵循少而精的原則。少即是多,慢才是快。...
    跟娟姐學蛻變閱讀 330評論 0 0
  • 我今年二十歲,如果你要問我至今我最后悔沒早買的東西是什么,我會舉起手中的kindle,毫不猶豫的回答說:就是它。 ...
    尾生斯基閱讀 2,771評論 24 29