Mysql筆記之基礎(chǔ)查詢(xún)

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;
    
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容