文章目錄
什麼是數據庫?
數據庫(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 偏移量,顯示條數