目錄
第1章 資料庫概述
資料庫優點
持久化資料
友善檢索
存儲大量資料
共享、安全
通過組合分析,擷取新的資料
資料庫的常見概念
DB:資料庫,存儲資料的倉庫
DBMS:資料庫管理系統,又稱為資料庫軟體或者資料庫産品,用于建立和管理資料庫,常見的有MySQL、Oracle、SQL Server
DBS:資料庫系統,資料庫系統是一個通稱,包括資料庫、資料庫管理系統、資料庫管理人員等,是最大的範疇
SQL:結構化查詢語言,用于和資料庫通信的語言,不是某個資料庫軟體特有的,而是幾乎所有的主流資料庫軟體通用的語言
資料庫的存儲特點
資料存放到表中,然後表再放到庫中
一個庫中可以有多張表,每張表具有唯一的表名用來辨別自己
表中有一個或多個列,列又稱為“字段”,相當于Java中“屬性”
表中的每一行資料,相當于Java中“對象”
資料庫的常見分類
關系型資料庫:MySQL、Oracle、DB2、SQL Server
非關系型資料庫:
* 鍵值存儲資料庫:Redis、Memcached、MemcacheDB
* 列存儲資料庫:HBase、Cassandra
* 面向文檔的資料庫:MongDB、CouchDB
* 圖形資料庫:Neo4J
第2章 MySQL
MySQL的啟動與退出
圖形化界面:【此電腦】-右鍵-【管理】–【服務和應用程式】–【服務】–【MySQL】-右鍵-【啟動】/【停止】

DOS指令行:以管理者身份運作
輸入
net start MySQL
net stop MySQL
MySQL的登入與退出
DOS指令行:
mysql -h主機名 -P端口号 -u使用者名 -p密碼
本機可省略 -h
端口為3306可省略 -P
mysql -uroot -p****
exit
SQLyog可視化資料庫管理
第3章 SQL語句
SQL概述
SQL(Structured Query Language),結構化查詢語言,對關系型資料庫的操作語言,可以應用到所有關系型資料庫中
MySQL中的LIMIT語句是它獨有的方言
文法要求
SQL語句可以單行或多行書寫,以分号結尾
可以使用空格和縮進
關鍵字不區分大小寫,建議使用大寫
分類
DDL(Data Definition Language):資料定義語言,用來以定義資料庫對象:庫、表、列等;
create/drop/alter
DML(Data Manipulation Language):資料操作語言,用來定義資料庫記錄(資料)
Insert/updata/delete
DCL(Data Control Language):資料控制語言,用來定義通路權限和安全級别
**DQL(Date Query Language):**資料查詢語言,用來查詢記錄(資料)
select
DQL
基礎查詢
文法
SELECT 查詢清單 FROM 表名;
特點
查詢清單可以是字段、常量、函數、表達式,多個部分以逗号隔開
查詢結果是一個虛拟表
先執行from,再執行select
示例
1、查詢單個字段
SELECT `字段名` FROM `表名`;
最好加入着重号`,防止與某些關鍵字重複
2、查詢多個字段
SELECT `字段名`,`字段名` FROM `表名`;
選中所有字段名,按F12即可對齊格式
3、查詢所有字段
SELECT * FROM 表名;
4、查詢常量
SELECT 常量值;
注意:字元型和日期型的常量值必須用單引号引起來,數值型不需要
5、查詢函數
SELECT 函數名(實參清單);
contect();将兩個表組合
6、查詢表達式
SELECT 100%25;
7、起别名
SELECT 字段名 AS "别名" FROM 表名;
注意:别名可以使用單引号、雙引号引起來,當隻有一個單詞時,可以省略引号,當有多個單詞且有空格或特殊符号時,不能省略,AS可以使用空格代替
8、去重複
SELECT DISTINCT 字段名 FROM 表名;
9、做加法(mySQL + 隻作為加法運算)
1、 SELECT 數值+數值; 直接運算
2、 SELECT 字元+數值; 首先先将字元轉換為整數,如果轉換成功,則繼續運算,如果轉換失敗,則預設為0,然後繼續運算
3、 SELECT NULL+數值; NULL和任何數值參與運算結果都是NULL
10、檢視表的結構
DESC 表名;
11、ifnull函數
功能:判斷某字段或表達式是否為null,如果為null,傳回指定的值,否則傳回原本的值
SELECT IFNULL(字段名, 指定值) FROM 表名;
12、isnull函數
功能:判斷某字段或表達式是否為null,如果是null,則傳回1,否則傳回0
SELECT ISNULL(字段名) FROM 表名;
條件查詢
一、文法
SELECT 查詢清單 FROM 表名 WHERE 篩選條件;
先執行FROM
再WHRER
再SELECT
二、分類
條件運算符:>、>=、安全等于,還可以判斷null、不等于:<>、不建議使用!=
#1、查詢工資>=12000的員工資訊
SELECT
*
FROM
employees
WHERE salary >= 12000 ;
邏輯運算符:and、or、not , 不建議使用&& || !
#查詢工資<=12000||工資>=18000的員工資訊
SELECT
*
FROM
employees
WHERE salary <= 12000 OR salary >= 18000 ;
模糊運算符:
like:和通配符搭配使用(類似正規表達式):%任意多個字元、_任意單個字元,如果有特殊字元,需要使用轉義字元\
between XX and YY/ not between XX and YY :判斷某個字段的值是否介于XX和YY之間
XX要小于等于YY
in(字段1,字段2…),查詢某字段的值是否屬于指定的清單内
not in()
注意:in清單的值類型必須一緻或相容,in清單中不支援通配符%和_
字段 is null/is not null:查詢某字段的值是否為空
#1.查詢姓名中包含第二個字元為_的員工資訊
SELECT *
FROM employees
WHERE last_name LIKE '_$_%' ESCAPE '$';
#代表$成為一個轉義字元
#查詢員工的工種編号是 IT_PROG、AD_VP、AD_PRES中的一個員工名和工種編号
SELECT
last_name,
job_id
FROM
employees
WHERE job_id IN ('IT_PROT', 'AD_VP', 'AD_PRES') ;
注意:=、!=不能用來判斷NULL、而<=>、is null 、 is not null可以用來判斷NULL,但注意<=>也可以判斷普通類型的數值
排序查詢
一、文法
SELECT
查詢清單
FROM
表
WHERE 篩選條件
ORDER BY 排序清單 asc | desc;
查出資料後再排序
排序清單可以是單個字段、多個字段、别名、函數、表達式
asc代表升序,desc代表降序,如果不寫,預設是asc
order by的位置一般放在查詢語句的最後(除limit語句之外)
#按多個字段查詢:查詢員工資訊,要求先按工資降序,再按員工編号升序
SELECT
*
FROM
employees
ORDER BY salary DESC, employee_id ASC ;
标簽:精通,入門,SQL,資料庫,表名,查詢,MySQL,SELECT
來源: https://blog.csdn.net/weixin_45907832/article/details/113193043