【編測編學】MySQL資料庫基礎知識
一:資料庫的相關概念
1、 資料庫的好處
① 可以持久化資料到本地
② 結構化查詢
2、 資料庫的常見概念
① DB :資料庫、儲存資料的容器
② DBMS :資料庫管理系統,又稱之為資料庫軟體或資料庫產品,用於建立和管理DB
③ SQL :結構化查詢語言,用於和資料庫通訊的語言,不是某個資料庫軟體特有的,而是幾乎所有主流的資料庫軟體通用的語言
3、 資料庫儲存資料的特點
① 資料存放到表中,表在放到庫中
② 一個庫可以由多張表,每張表具有唯一的表名來標識自己
③ 表中有一個或多個列,列又稱之為欄位,相當於java中得屬性
④ 表中每一行資料,相當於Java中物件
4、 常見的資料庫管理系統
Mysql oracle db2 sqlserver
二:MySQL
1、 優點
① 開源、免費、成本低
② 效能高、移植性好
③ 體積小、便於安裝
2、 MySQL 的安裝
屬於C\S架構的軟體,一般來講安裝服務端
3、 MySQL 服務的啟動和停止
① 透過命令
net start 服務名
net stop 服務名
② 計算機管理--------服務
4、 MySQL 服務的登入和退出
登入:mysql – h 主機名 – P 埠號 – u 使用者名稱 – p 密碼(預設埠3306,使用者root)
退出:exit或者Ctrl+c
5、 mysql 的語法規範
① 不區分大小寫,但是建議關鍵字大寫,表名、列名小寫
② 每條命令最好用分號結尾
③ 每條命令根據需要,可以驚醒縮排,或者換行(建議關鍵字放一行,要查詢的放一行)
④ 註釋
單行註釋:#註釋文字、--註釋文字
多行註釋:/*註釋文字*/
show database();// 檢視當前所有的資料庫
use+ 庫名;//開啟指定的庫
(只要用了use你就在那個庫中了)
show tables;// 檢視當前庫所有的表
show tables from 庫名;//檢視其他庫所有的表
create table 表名(
列名 列型別,
列名 列型別,
...
)// 建立表
desc 表名;//檢視錶的結構
檢視伺服器的版本:
方式一:登入到mysql服務端
select version();
方式二:沒有登入到mysql服務端
mysql --version 或mysql --V
三、 MySQL 一些基礎的查詢
1 、基本要掌握的
select 查詢列表 from 表名
USE manba;
#1. 查詢表中的單個欄位
SELECT last_name FROM manba;
#2. 查詢表中的多個欄位
SELECT last_name,salary,email FROM manba;
#3. 查詢表中所有欄位(雙擊左側)
# 方式一
SELECT
`department_id`,
`department_name`,
`manager_id`,
`location_id`
FROM
manba;
# 方式二
SELECT * FROM manba ;
#4. 查詢常量值
SELECT 100;
SELECT 'john';
# (不區分字元和字串)
#5. 查詢表示式
SELECT 100%98;
#6. 查詢函式
SELECT VERSION();
#7. 起別名
/*
①便於理解
②如果要查詢的欄位有重名的情況,使用別名可以區分開來
*/
# 方式一 : 用 as
SELECT 100%98 AS 結果 ;
SELECT last_name AS 姓 ,first_name AS 名 FROM manba;
# 方式二 : 空格
SELECT last_name 姓, first_name 名 FROM manba;
# 案例:查詢 salary ,顯示結果為 output
SELECT salary AS "out put" FROM manba;
#8. 去重
# 案例:查詢員工表涉及到的所有部門編號
SELECT DISTINCT department_id FROM manba;
#9. + 號的作用
/*
java 中的 + 號:
①運算子:兩個運算元都為數值型
②連線符:只要有一個運算元為字串
mysql 中的 + 號:
僅僅只有一個功能:運算子
select 100+90 ;
select '123'+90; 其中一方為字元型,會試圖將字元型數值轉換成數值型
如果轉換成功則繼續加法運算
select 'john'+90; 如果轉換失敗,則字元型陣列值轉換成 0 ;
select null+10; 只要其中一方為 null ,則結果為 null
*/
# 案例:查詢員工名和姓連線成一個欄位,並顯示為 姓名
SELECT CONCAT(last_name,first_name) AS 姓名 FROM manba;
#10. 判斷是否為空
#commission_pct 是否為空?為空返回 0
SELECT
IFNULL(commission_pct,0) AS 獎金率 ,
commission_pct
FROM
manba;
2 、條件查詢
2.1 按條件表示式查詢
# 案例 1 :查詢工資 >12000 的員工資訊
SELECT * FROM manba WHERE salary>12000;
# 案例 2 :查詢部門編號不等於 90 號的員工名和部門編號
SELECT last_name,department_id FROM manba WHERE department_id!=90;
2.2 按邏輯表示式查詢
案例 1 :查詢工資在 10000 到 20000 之間的員工名,工資和獎金
SELECT last_name, salary,commission_pct FROM manba WHERE salary>=10000 and salary<=20000 ;
案例 2 :查詢部門編號不在 90-110 之間,或者工資高於 15000 的員工資訊
SELECT * FROM manba WHERE department_id<90 OR department_id>110 OR salary>15000;
2.3 模糊查詢
2.3.1 一般和萬用字元搭配使用
萬用字元: % 任意多個字元,包含 0 個
_ 任意單個字元
案例 1 :查詢員工名中包含字元 a 的員工資訊
SELECT * from manba where last_name like '%a%';
% 代表萬用字元,代表任意個字元
案例 2 :查詢員工名中第 3 個字元為 n ,第五個字元為 l 的員工名和工資
SELECT last_name , salary from manba where last_name like '__n_l%';
# 案例 3 :查詢員工名中第二個字元為 _ 的員工名(跳脫字元)
SELECT last_name FROM manba WHERE last_name LIKE '_\_%';
2.3.2between and
①使用 between and 可以提高語句的簡潔度
②包含臨界值
③兩個臨界值順序不能調換
# 案例 1 :查詢員工編號在 100 到 120 之間的員工資訊
SELECT * from manba where manba_id between 100 and 200;
2.3.3.in
含義:用於判斷某欄位的值是否屬於 in 列表中的某一項
特點:
①使用 in 提高語句簡潔度
② in 列表的值型別必須統一或者相容
③不支援萬用字元
# 案例:查詢員工的工種編號是 IT_PROT, AD_VP, AD_PRES 中的一個的員工名和工種編號
SELECT last_name,job_id FROMmanba WHERE
job_id='IT_PROT' OR job_id='AD_VP' OR job_id='AD_VP';
SELECT last_name,job_id FROMmanba WHERE job_id IN ('IT_PROT' ,'AD_VP' , 'AD_VP');
2.3.4. is null(is not null)
= 或者 <> 不能用於判斷 null 值
# 案例 1 :查詢沒有獎金的員工名和獎金率
SELECT last_name,commission_pct FROM manba WHERE commission_pct IS NULL;
# 安全等於 <=> is null 可以換成 <=> null
# 案例 1 :查詢沒有獎金的員工名和獎金率
SELECT last_name,commission_pct FROM manba WHERE commission_pct <=> NULL;
# 案例 12 :查詢工資為 12000 的員工資訊
SELECT last_name,salary FROM manba WHERE salary <=> 12000;
3 、排序查詢
引入:
select * from manba;
語法:
SELECT 查詢列表
from 表
[where 篩選條件 ]
order by 排序列表 [asc|desc]
特點:
asc 代表升序, desc 代表降序,預設不寫是升序
order by 子句中可以支援單個欄位、多個欄位、表示式、函式、別名
order by 子句一般是放在查詢語句的最後面, limit 子句除外
# 案例 1 :查詢員工資訊,要求工資從高到低排序
SELECT * FROM manba ORDER BY salary DESC;
SELECT * FROM manba ORDER BY salary ASC;
# 案例 2 :查詢部門編號 >=90 的員工資訊,按入職時間的先後進行排序
SELECT *
FROM manba
WHERE department_id>=90
ORDER BY hiredate ASC;
# 案例 3 :按年薪高低顯示員工的資訊和年薪 [ 按表示式排序 ]
SELECT *, salary*12*(1+IFNULL(commission_pct,0)) AS 年薪
FROM manba
ORDER BY salary*12*(1+IFNULL(commission_pct,0)) DESC;
# 案例 4 :按年薪高低顯示員工的資訊和年薪 [ 按別名排序 ]
SELECT *, salary*12*(1+IFNULL(commission_pct,0)) AS 年薪
FROM employees
ORDER BY 年薪 DESC;
# 案例 5 :按姓名的長度顯示員工的姓名和工資 [ 按函式排序 ]
SELECT LENGTH(last_name) AS 位元組長度 , last_name,salary
FROM manba
ORDER BY LENGTH(last_name) DESC;
# 案例 6 :查詢員工資訊,要求先按工資升序,再按員工編號降序 [ 按多個欄位排序 ]
SELECT * FROM manba
ORDER BY salary ASC,employee_id DESC;
# 整體按工資排序,工資相同時,按員工編號降序
4. 常見函式的運用
概念:類似 java 的方法,將一組邏輯語句封裝在方法體中,對外暴露方法名
好處:隱藏了實現細節、提高程式碼的重用性
呼叫: select 函式名 ( 實參列表 ) [from 表 ( 根據需要 )];
特點:
①叫什麼(函式名)
②幹什麼(功能)
分類:
字元函式 :length concat substr instr trim upper lower lpad rpad replace
數學函式: round ceil floor truncate mod
日期函式: now curdate curtime year month monthname
day hour minute second str_to_date date_format
其他函式: version database user
控制函式 : if case
下期我們就函式的應用,還有其他的查詢做一個彙總
【編測編學】 教學內容為:
測試基礎知識、專案實戰、測試管理、敏捷測試、探索式測試、APP測試、Linux、資料庫、測試環境搭建、Python程式設計、WEB端UI自動化測試、APP端UI自動化、介面功能測試、效能測試、介面自動化測試、Jenkins持續整合 等內容。
透過學習,學員能
掌握軟體測試企業最新技術,對標一線網際網路企業專案要求,使學員達到中高階測試工程師的水平,畢業後可快速融入企業實際工作中。
不管你是 文科生、專科生、0基礎、女同學 都可以輕鬆學會!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69985967/viewspace-2745957/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【編測編學】MySQL資料庫基礎知識2MySql資料庫
- mysql資料庫學習基礎知識整理MySql資料庫
- 資料庫學習筆記 - MySQL基礎知識資料庫筆記MySql
- MySQL 基礎知識梳理學習(一)—-系統資料庫MySql資料庫
- MySQL 資料庫基礎知識點複習MySql資料庫
- MySQL?資料庫的基礎知識撩磅MySql資料庫
- MySQL資料庫基礎知識及優化MySql資料庫優化
- mysql資料庫sql語句基礎知識MySql資料庫
- 資料庫基礎知識資料庫
- 軟體測試--資料庫基礎知識資料庫
- 基礎知識梳理~資料庫資料庫
- GEO資料庫基礎知識資料庫
- 資料庫基礎重要知識資料庫
- 【python系統學習16】編碼基礎知識Python
- 資料庫基礎知識介紹!資料庫
- 學習資料庫的基礎知識的書籍資料庫
- 【編測編學】零基礎學python_06_列表(認識和使用列表)Python
- 大資料學習之路——MySQL基礎(一)——MySQL的基礎知識與常見操作大資料MySql
- MySQL資料庫知識MySql資料庫
- 小白系列:資料庫基礎知識解析資料庫
- 資料庫安裝以及基礎知識資料庫
- 學習電腦編碼utf-8,ansi編碼的基礎知識等
- mysql資料庫基礎知識--一分鐘讓你資料庫入門(sql基礎語法篇)MySql資料庫
- 資料庫MySQL需要學習基本知識資料庫MySql
- MySQL資料庫基本知識MySql資料庫
- 滲透測試基礎知識----MySQL 配置MySql
- MySQL基礎知識(5)MySql
- MySQL基礎知識(6)MySql
- MySQL基礎知識(7)MySql
- MySQL基礎知識(8)MySql
- MySql基礎知識(2)MySql
- Jack整理的Win32彙編基礎知識Win32
- 【編測編學】如何做好大資料測試大資料
- MySQL 基礎知識梳理學習(四)—-GTIDMySql
- 【學習】MySQL基礎知識要點-001MySql
- 達夢資料庫基礎知識(二)資料庫邏輯結構資料庫
- 【編測編學】零基礎學python_04_字串(刪除空白)Python字串
- MySQL資料庫注入基礎MySql資料庫