MySQL - 速查&筆記 - [未完待續]

什麼是數據庫?

數據庫(Database)是按照數據結構來組織、存儲和管理數據的倉庫

關係型數據庫

建立在關係模型基礎上的數據庫,藉助於集合代數等數學概念和方法來處理數據庫中的數據

關係數據庫管理系統(Relational Database Management System)的特點:

  • 1.數據以表格的形式出現
  • 2.每行爲各種記錄名稱
  • 3.每列爲記錄名稱所對應的數據域
  • 4.許多的行和列組成一張表單
  • 5.若干的表單組成 Database

連接數據庫

# 啓動數據庫
➜ brew services start mysql
# 關閉數據庫
➜ brew services stop mysql
# 登錄數據庫
➜ mysql -u root -p  
Enter password: ******
# 退出數據庫
mysql> exit
Bye

MySQL基礎

數據庫操作(DDL)

1、創建數據庫

CREATE DATABASE [IF NOT EXISTS] `db_name` [[DEFAULT] CHARACTER [=] `charset_name`]

2、查看當前服務器下的數據庫列表

SHOW DATABASES

3、查看指定數據庫的定義

SHOW CREATE DATABASE `db_name`

4、修改指定數據庫的編碼方式

ALTER DATABASE `db_name` [DEFAULT] CHARACTER SET [=] `charset_name`

5、打開指定數據庫

USE `db_name`

6、刪除指定數據庫

DROP DATABASE [IF EXISTS] `db_name`

7、顯示當前打開的數據庫名稱

SELECT DATABASE()

8、查看上一步操作產生的警告信息

SHOW WARNINGS;

數據表的的操作

1、什麼是表?

  • 數據表示數據庫最重要的組成部分之一,是其他對象的基礎
  • 數據表是存儲數據的數據結構
  • 數據表由行(row)和 列(column)構成的二維網絡
  • 數據表一定先有表結構,再有數據
  • 數據表至少有一列,可以沒有行或者多行
  • 數據表名稱要求唯一,而且不要包含特殊字符

2、如何創建數據表

CREATE TABLE [IF NOT EXISTS] table_name(字段名稱 字段類型 [完整性約束條件] ...) ENGINE=引擎名稱 CHARSET='編碼方式';

完整性約束條件

  • PRIMARY KEY 主鍵
  • AUTO_INCREMENT自增長
  • FOREIGN KEY 外鍵
  • NOT NULL 非空
  • DEFAULT 默認值
  • UNIQUE 唯一

3、查看數據庫中的數據表以及表結構

# 查看數據庫下的表
SHOW TABLES

# 查看指定表的表結構
DESC table_name

DESCRIBE table_name

SHOW COLUMNS FROM table_name

4、修改表結構

修改表名

ALTER TABLE table_name RENAME [TO | AS] new_name

添加字段

ALTER TABLE table_name ADD 字段名稱  字段類型 [完整性約束條件] [FIRST | AFTER] 字段名稱

刪除字段

ALTER TABLE table_name DROP 字段名稱

修改字段

ALTER TABLE table_name MODIFY 字段名稱 字段類型 [完整性約束條件] [FIRST | AFTER] 字段名稱

修改字段名稱

ALTER TABLE table_name CHANGE 舊字段名稱 新字段名稱 字段類型 [完整性約束條件] [FIRST | AFTER] 字段名稱

添加默認值

ALTER TABLE table_name ALTER 字段名稱 SET DEFAULT 默認值

刪除默認值

ALTER TABLE table_name ALTER 字段名稱 DROP DEFAULT

修改表的存儲引擎

ALTER TABLE table_name ENGINE=存儲引擎名稱

設置自增長的值

ALTER TABLE table_name AUTO_INCREMENT=

5、如何刪除數據表

DROP TABLE [IF EXISTS] table_name [, table_name...]

數據的操作(DML)

1、插入數據

# 不指定具體的字段名
INSERT [INTO] table_name VALUES | VALUE(...)

# 列出指定字段
INSERT [INTO] table_name(字段名稱1...) VALUES | VALUE(1...)

# 同時出入多條記錄
INSERT [INTO] table_name[(字段名稱...)] VALUES(...), (...)...

# 通過SET 形式插入記錄
INSERT [INTO] table_name SET 字段名稱=值,...

# 將查詢結果插入到表中
INSERT [INTO] table_name[(字段名稱, ...)] SELECT 字段名稱 FROM table_name [WHERE 條件]

2、更新數據

UPDATE table_name SET 字段名稱=, ... [WHERE 條件][ORDER BY 字段名稱][LIMIT 限制條數]

3、刪除數據

DELETE FROM table_name [WHERE 條件] [ORDER BY 字段名稱] [LIMIT 限制條件]

# 徹底清空數據表
TRUNCATE [TABLE] table_name

查詢數據操作(DQL)

1、查詢記錄

每一個表達式表示想要的一列,必須至少有一列,多個列之間用逗號分隔
* 表示所有列, table_name. * 可以表示命名錶的所有列
查詢表達式可以使用 [AS] alias_name 爲其賦予別名

查詢表達式

SELECT select_expr [, select_expr ...] [FROM table_references [WHERE 條件] [GROUP BY { col_name | position } [ASC | DESC], ... 分組] [HAVING 條件 對分組結果進行二次篩選] [ORDER BY {col_name | position} [ASC | DESC], ...排序] [LIMIT 限制顯示條數]]

2、WHERE 條件

XXXX

3、詢結果分組

  • 配合 GROUP_CONCAT() 得到分組詳情
  • 配合聚合函數
    • COUNT()
    • MAX()
    • MIN()
    • AVG()
    • SUM()
  • 配合WITH ROLLUP 記錄上面所有記錄的總和

4、HAVING 子句

通過 HAVING 子句對分組結果進行二次篩選

5、ORDER BY排序

通過 ORDER BY 對查詢結果排序

6、LIMIT限制查詢結果顯示條數

LIMIT 顯示條數
LIMIT 偏移量,顯示條數
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章