天天看點

mysql 入門&精通_MySQL從入門到精通

目錄

第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】-右鍵-【啟動】/【停止】

mysql 入門&精通_MySQL從入門到精通

DOS指令行:以管理者身份運作

輸入

net start MySQL

net stop MySQL

MySQL的登入與退出

DOS指令行:

mysql -h主機名 -P端口号 -u使用者名 -p密碼

本機可省略 -h

端口為3306可省略 -P

mysql -uroot -p****

exit

mysql 入門&精通_MySQL從入門到精通

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