1、保存數(shù)據(jù)的容器
- 數(shù)組、集合等,把數(shù)據(jù)保存到內(nèi)存,缺點(diǎn)一斷電就沒(méi)了。
- 文件,保存到硬盤(pán),缺點(diǎn)不太適合查詢(xún)。
2、數(shù)據(jù)庫(kù)的好處
- 實(shí)現(xiàn)數(shù)據(jù)持久化
- 使用完整的管理系統(tǒng)統(tǒng)一管理,易于查詢(xún)。
3、概念
- DB:數(shù)據(jù)庫(kù),存儲(chǔ)了大量有組織的數(shù)據(jù)
- DBMS:數(shù)據(jù)庫(kù)管理系統(tǒng),數(shù)據(jù)庫(kù)是通過(guò)數(shù)據(jù)庫(kù)管理系統(tǒng)創(chuàng)建和操作的容器
常見(jiàn)的DBMS:Mysql,DB2,Oracle,sqlServer。 - sql 結(jié)構(gòu)化查詢(xún)語(yǔ)言,專(zhuān)門(mén)用來(lái)與數(shù)據(jù)庫(kù)通信的語(yǔ)言。特點(diǎn):幾乎所有dbms都支持sql
4、Mysql的卸載
1、控制面板卸載Mysql
2、找到安裝Mysql的安裝路徑,整個(gè)刪除
3、找到c盤(pán)的ProgramData的隱藏文件夾里找到Mysql,整個(gè)刪除
4、最后還是裝不上就清空注冊(cè)表

image.png
5、Mysql安裝
typical,自帶服務(wù)端和自帶的客戶(hù)端
custom,自定義。一般選自定義
按照之后,mysql配置一直下一步就行了。
選擇字符集

image.png
運(yùn)行dos命令行方式去操作mysql,把bin加入path

image.png
設(shè)置密碼,并且允許遠(yuǎn)程機(jī)訪問(wèn)

image.png
6、Mysql啟動(dòng)與停止
- 計(jì)算機(jī),管理服務(wù)
- 命令行方式,管理員方式啟動(dòng)cmd,
輸入net stop Mysql名稱(chēng)或者net start Mysql名稱(chēng)。
7、連接mysql,端口要大寫(xiě),與密碼區(qū)分,退出mysql。
mysql -h localhost -P 3306 -u root -p 123456
exit或者ctrl c
8、mysql常用命令
查看當(dāng)前所有的數(shù)據(jù)庫(kù)
show databases;
打開(kāi)指定的庫(kù)
use 庫(kù)名;
查看當(dāng)前數(shù)據(jù)庫(kù)的所有表
show tables;
查看其他庫(kù)的所有表
show tables from 庫(kù)名;
查看當(dāng)前的數(shù)據(jù)庫(kù)
select database();
查看表結(jié)構(gòu)
desc 表名;
查看mysql服務(wù)器版本
select version();
9、Mysql的語(yǔ)法規(guī)范
- 不區(qū)分大小寫(xiě) 建議關(guān)鍵字大寫(xiě),表名列名小寫(xiě)
- 每條命令分號(hào)結(jié)尾或者/g
- 如果要換行,關(guān)鍵字在一行
- 注釋
單行
#注釋文字
-- 注釋文字(注意要有空格)
多行
/** 注釋文字 **/
10、圖形化的常用操作
查詢(xún)?nèi)缓髮?xiě)sql語(yǔ)句之后可以保存到.sql文件里。
調(diào)整sql語(yǔ)句字體,按住ctrl+鼠標(biāo)的滾動(dòng)
11、sql的分類(lèi)
- DQL Data Query Language
基礎(chǔ)查詢(xún)
條件查詢(xún)
排序查詢(xún)
常見(jiàn)函數(shù)
分組函數(shù)
分組查詢(xún)
連接查詢(xún)
子查詢(xún)
分頁(yè)查詢(xún)
union聯(lián)合查詢(xún) - DML Data Manipulation Language
插入語(yǔ)句
刪除語(yǔ)句
修改語(yǔ)句 - DDL Data Definition Language
庫(kù)和表的管理
常見(jiàn)數(shù)據(jù)類(lèi)型介紹
常見(jiàn)約束 - TCL Transaction Control Language
事務(wù)和事務(wù)處理 - DQL也可以包含在DML里。
- 視圖,存儲(chǔ)過(guò)程,函數(shù),流程控制結(jié)構(gòu)這些屬于psql部分。
12、
-
員工表employees
員工編號(hào),名,姓,郵箱,電話號(hào)碼,工種編號(hào),月薪,獎(jiǎng)金率,上級(jí)領(lǐng)導(dǎo)的員工編號(hào),部門(mén)編號(hào),入職時(shí)間。
其中,job_id和manager_id和department_id使用id,而不用部門(mén)名字,減少了數(shù)據(jù)冗余,節(jié)省空間
image.png -
部門(mén)表department
部門(mén)編號(hào),部門(mén)名字,部門(mén)領(lǐng)導(dǎo)的員工編號(hào),位置編號(hào)。
-
位置表location
位置編號(hào),街道,郵編,城市,州/省,國(guó)家編號(hào)
image.png -
工種表job
工種編號(hào),工種名稱(chēng),最低工資,最高工資
image.png
13、基礎(chǔ)查詢(xún)
# 進(jìn)階1:基礎(chǔ)查詢(xún)
/*
語(yǔ)法:
select 查詢(xún)列表(可以多個(gè)) from 表名
特點(diǎn):
1、查詢(xún)列表可以是:表中的字段,常量值,表達(dá)式,函數(shù)
2、查詢(xún)的結(jié)果是一個(gè)虛擬的表格
*/
USE employees;
#1、查詢(xún)單個(gè)字段
SELECT last_name FROM employees;
#2、查詢(xún)表中的多個(gè)字段
SELECT last_name,salary,email FROM employees;
#3、查詢(xún)表中的所有字段
#sqlyog這個(gè)可以靠點(diǎn)左邊某個(gè)字段就會(huì)自動(dòng)加上,navicat找不到在哪點(diǎn)
#按住f12可以自動(dòng)對(duì)齊,f9運(yùn)行,*號(hào)缺點(diǎn)只能按照它的順序查出來(lái)
SELECT
`first_name`,
`last_name`,
`email`,
`job_id`,
`phone_number`,
`salary`,
`commission_pct`
FROM
employees ;
SELECT * FROM employees;
# 4、查詢(xún)的字段可以加著重號(hào)或者不加,記住不是單引號(hào),加了只為了區(qū)別關(guān)鍵字
# 例如有個(gè)name字段,而關(guān)鍵字也有name,加了就可以區(qū)分了。
# 5、想要執(zhí)行哪條命令鼠標(biāo)選中就行
# 6、查詢(xún)常量值,就不用選擇表
SELECT 100;
SELECT 'John';
# 7、查詢(xún)表達(dá)式
SELECT 100/10;
# 8、查詢(xún)函數(shù)
SELECT VERSION();
# 9、為我們字段起別名,注意別起關(guān)鍵字,如果使用關(guān)鍵字使用雙引號(hào)括起來(lái)
/*
1、便于理解
2、如果要查詢(xún)的字段有重名例如連表查詢(xún),可以使用別名區(qū)分開(kāi)來(lái)
方式一:AS
方式二:空格
*/
SELECT 100/10 AS 結(jié)果;
SELECT last_name 姓, first_name 名 FROM employees;
SELECT last_name AS 姓, first_name AS 名 FROM employees;
# 10、去重
# 案例:查詢(xún)員工表中涉及的所有員工部門(mén)編號(hào)
SELECT department_id FROM employees;
SELECT DISTINCT department_id FROM employees;
# 11、+號(hào)的作用
# 案例:查詢(xún)員工名和姓連接成一個(gè)字段,并顯示姓名
/*
mysql的加號(hào)只有一個(gè)功能,運(yùn)算符,所以下面雖然不報(bào)錯(cuò)但是查詢(xún)出來(lái)為0。
SELECT 100+90; 兩個(gè)操作數(shù)做+法運(yùn)算
SELECT '123' + 90; 如果有字符型就將字符型轉(zhuǎn)換為數(shù)字,如果轉(zhuǎn)換成功就做加法運(yùn)算
如果轉(zhuǎn)換失敗,字符串轉(zhuǎn)換為0然后再做加法運(yùn)算
select null+10; 只要一方為null,結(jié)果為null
*/
SELECT last_name+first_name AS 姓名 FROM employees;
# 12、真正的拼接,concat函數(shù)
SELECT CONCAT(last_name, first_name) AS 姓名 FROM employees;
# 13、基礎(chǔ)查詢(xún)的案例
#下面的語(yǔ)句是否可以執(zhí)行成功
SELECT last_name , job_id , salary AS sal
FROM employees;
#下面的語(yǔ)句是否可以執(zhí)行成功
SELECT * FROM employees;
# 找出下面語(yǔ)句中的錯(cuò)誤
# 逗號(hào)和雙引號(hào)都要英文下的
SELECT employee_id , last_name,
salary * 12 AS “ANNUAL SALARY”
FROM employees;
# 顯示表departments的結(jié)構(gòu),并查詢(xún)其中的全部數(shù)據(jù)
DESC departments;
SELECT * FROM `departments`;
# 顯示出表employees中的全部job_id(不能重復(fù))
SELECT DISTINCT job_id FROM employees;
# 顯示出表employees的全部列,各個(gè)列之間用逗號(hào)連接,列頭顯示成OUT_PUT
# concat拼接如果有null最后會(huì)顯示null,需要使用ifnull函數(shù)判斷
SELECT
IFNULL(commission_pct,0) AS 獎(jiǎng)金率,
commission_pct
FROM
employees;
#-------------------------------------------
SELECT
CONCAT(`first_name`,',',`last_name`,',',`job_id`,',',IFNULL(commission_pct,0)) AS out_put
FROM
employees;



