《MySQL數據庫》day1

文章目錄

    • 1.名詞解釋
    • 2.如何啟動mysql數據庫
    • 3.mysql常用命令
    • 4.數據庫當中最基本的單元是表:table
    • 5.關于SQL語句的分類
    • 6.簡單查詢
    • 7.條件查詢
    • 8.排序
    • 9.數據處理函數
      • 單行處理函數常見的有哪些?
    • 10.分組函數(多行處理函數)

1.名詞解釋

  1. 數據庫:英文單詞DataBase,簡稱DB。按照一定格式存儲數據的一些文件的組合。顧名思義:存儲數據的倉庫,實際上就是一堆文件。這些文件中存儲了具有特定格式的數據。
  2. 數據庫管理系統:DataBaseManagementSystem,簡稱DBMS。數據庫管理系統是專門用來管理數據庫中數據的,數據庫管理系統可以對數據庫當中的數據進行增刪改查。常見的數據庫管理系統:MySQL、Oracle、MS SqlServer、DB2、sybase等…
  3. SQL:結構化查詢語言程序員需要學習SQL語句,程序員通過編寫SQL語句,然后DBMS負責執行SQL語句,最終來完成數據庫中數據的增刪改查操作。SQL是一套標準,程序員主要學習的就是SQL語句,這個SQL在mysql中可以使用,同時在Oracle中也可以使用,在DB2中也可以使用。
  4. 三者之間的關系?
    DBMS–執行–> SQL --操作–> DB
    先安裝數據庫管理系統MySQL,然后學習SQL語句怎么寫,編寫SQL語句之后,DBMS
    對SQL語句進行執行,最終來完成數據庫的數據管理。

2.如何啟動mysql數據庫

win+r鍵輸入cmd代開windows命令窗口,然后輸入:mysql -uroot -p,然后輸入密碼即可登錄上mysql數據庫。

3.mysql常用命令

  1. 退出mysql :exit

  2. 查看mysql中有哪些數據庫?-》show databases; 注意:以分號結尾,分號是英文的分號。

  3. 怎么選擇使用某個數據庫呢?-》mysql> use test;
    Database changed
    表示正在使用一個名字叫做test的數據庫。

  4. 怎么創建數據庫呢?-》mysql> create database bjpowernode;
    Query OK, 1 row affected (0.00 sec)

  5. 查看某個數據庫下有哪些表?-》mysql> show tables;

  6. 查看mysql數據庫的版本號:-》mysql> select version();

  7. 查看當前使用的是哪個數據庫?-》mysql> select database();

  8. 如何倒入數據表呢?-》使用source+路徑即可,路徑不可以包含中文

  9. 怎么查看表中的數據呢?-》select * from 表名; //統一執行這個SQL語句。

  10. 不看表中的數據,只看表的結構,有一個命令:-》desc 表名; (describe的縮寫)

注意1mysql是不見“;”不執行,“;”表示結束!
注意2以上的命令不區分大小寫,都行。

4.數據庫當中最基本的單元是表:table

什么是表table?為什么用表來存儲數據呢?-》數據庫當中是以表格的形式表示數據的。因為表比較直觀。

任何一張表都有行和列:
行(row):被稱為數據/記錄。
列(column):被稱為字段。

了解一下:每一個字段都有:字段名、數據類型、約束等屬性。字段名可以理解,是一個普通的名字,見名知意就行。數據類型:字符串,數字,日期等,后面會說到。約束:約束也有很多,其中一個叫做唯一性約束,這種約束添加之后,該字段中的數據不能重復。

5.關于SQL語句的分類

SQL語句有很多,最好進行分門別類,這樣更容易記憶。

  1. DQL:
    數據查詢語言(凡是帶有select關鍵字的都是查詢語句)
    select…
  2. DML:
    數據操作語言(凡是對表當中的數據進行增刪改的都是DML)
    insert delete update
    insert 增
    delete 刪
    update 改
    這個主要是操作表中的數據data。
  3. DDL:
    數據定義語言
    凡是帶有create、drop、alter的都是DDL。
    DDL主要操作的是表的結構。不是表中的數據。
    create:新建,等同于增
    drop:刪除
    alter:修改
    這個增刪改和DML不同,這個主要是對表結構進行操作。
  4. DCL:
    是數據控制語言。
    例如:授權grant、撤銷權限revoke…
  5. TCL:
    是事務控制語言
    包括:
    事務提交:commit;
    事務回滾:rollback;

6.簡單查詢

  1. 查詢一個字段?
    select 字段名 from 表名;
    其中要注意:
    select和from都是關鍵字。
    字段名和表名都是標識符。
    強調:
    對于SQL語句來說,是通用的,
    所有的SQL語句以“;”結尾。
    另外SQL語句不區分大小寫,都行。
  2. 查詢兩個字段,或者多個字段怎么辦?-》使用逗號隔開“,”
  3. 查詢所有字段怎么辦?
    第一種方式:可以把每個字段都寫上
    select a,b,c,d,e,f… from tablename;
    第二種方式:可以使用*
    select * from tablename;
  4. 給查詢的列起別名?-》 select deptno,dname as deptname from dept;
    使用as關鍵字起別名。
    注意:只是將顯示的查詢結果列名顯示為deptname,原表列名還是叫:dname
    記住:select語句是永遠都不會進行修改操作的。(因為只負責查詢)
    as關鍵字可以省略嗎?可以的(使用空格即可)
    select deptno,dname deptname from dept;
    假設起別名的時候,別名里面有空格,怎么辦?(有空格、中文都可以用這個方法)
    select deptno,dname ‘dept name’ from dept; //加單引號
    注意:在所有的數據庫當中,字符串統一使用單引號括起來,單引號是標準
  5. 字段可以使用數學表達式!-》select ename,sal*12 from emp;

7.條件查詢

  1. 什么是條件查詢?-》不是將表中所有數據都查出來。是查詢出來符合條件的。
    語法格式:
    select
    字段1,字段2,字段3…
    from
    表名
    where
    條件;
  2. 都有哪些條件?
    ①= 等于
    查詢薪資等于800的員工姓名和編號?
    select empno,ename from emp where sal = 800;
    查詢SMITH的編號和薪資?
    select empno,sal from emp where ename = ‘SMITH’; //字符串使用單引號
    ②<>或!= 不等于
    查詢薪資不等于800的員工姓名和編號?
    select empno,ename from emp where sal != 800;
    select empno,ename from emp where sal <> 800; // 小于號和大于號組成的不等號
    ③< 小于
    查詢薪資小于2000的員工姓名和編號?
    select empno,ename,sal from emp where sal < 2000;
    ④<= 小于等于
    查詢薪資小于等于3000的員工姓名和編號?
    select empno,ename,sal from emp where sal <= 3000;
    ⑤> 大于
    查詢薪資大于3000的員工姓名和編號?
    select empno,ename,sal from emp where sal > 3000;
    ⑥>= 大于等于
    查詢薪資大于等于3000的員工姓名和編號?
    select empno,ename,sal from emp where sal >= 3000;
    ⑦between … and …. 兩個值之間, 等同于 >= and <=
    查詢薪資在2450和3000之間的員工信息?包括2450和3000
    第一種方式:>= and <= (and是并且的意思。)
    select empno,ename,sal from emp where sal >= 2450 and sal <= 3000;
    第二種方式:between … and …
    select
    empno,ename,sal
    from
    emp
    where
    sal between 2450 and 3000;
    注意:
    使用between and的時候,必須遵循左小右大。
    between and是閉區間,包括兩端的值。
    ⑧is null 為 null(is not null 不為空)
    查詢哪些員工的津貼/補助為null?
    select empno,ename,sal,comm from emp where comm is null;
    注意:在數據庫當中null不能使用等號進行衡量。需要使用is null
    因為數據庫中的null代表什么也沒有,它不是一個值,所以不能使用
    等號衡量。

    ⑨and 并且
    查詢工作崗位是MANAGER并且工資大于2500的員工信息?
    select
    empno,ename,job,sal
    from
    emp
    where
    job = ‘MANAGER’ and sal > 2500;
    ⑩or 或者
    查詢工作崗位是MANAGER和SALESMAN的員工?
    第一種:
    select empno,ename,job from emp where job = ‘MANAGER’;
    select empno,ename,job from emp where job = ‘SALESMAN’;
    第二種
    select
    empno,ename,job
    from
    emp
    where
    job = ‘MANAGER’ or job = ‘SALESMAN’;
    注意:and優先級比or高。 and和or同時出現,and優先級較高。如果想讓or先執行,需要加“小括號”
    以后在開發中,如果不確定優先級,就加小括號就行了。
    11.in(…) 包含,相當于多個 or (not in(…) 不在這個范圍中)
    12.not 可以取非,主要用在 is 或 in 中
    is null
    is not null
    in
    not in
    13. like 稱為模糊查詢,支持%或下劃線匹配,%匹配任意多個字符,下劃線:任意一個字符。(%是一個特殊的符號,_ 也是一個特殊符號)
    例如:找出名字中含有O的?-》select ename from emp where ename like ‘%O%’;
    找出名字以T結尾的?-》select ename from emp where ename like ‘%T’;
    找出名字以K開始的?->select ename from emp where ename like ‘K%’;
    找出第二個字每是A的?->select ename from emp where ename like ‘_A%’;

8.排序

1.查詢所有員工薪資,排序?
select
ename,sal
from
emp
order by
sal; // 默認是升序!!!

2.怎么降序?
指定降序:
select
ename,sal
from
emp
order by
sal desc;

3.指定升序?(默認就是升序)
select
ename,sal
from
emp
order by
sal asc;

4.可以兩個字段排序嗎?或者說按照多個字段排序?
查詢員工名字和薪資,要求按照薪資升序,如果薪資一樣的話,
再按照名字升序排列。
select
ename,sal
from
emp
order by
sal asc, ename asc; // sal在前,起主導,只有sal相等的時候,才會考慮啟用ename排序。

5.根據字段的位置也可以排序
select ename,sal from emp order by 2; // 2表示第二列。第二列是sal
按照查詢結果的第2列sal排序。

6.關鍵字順序不能變:
select

from

where

order by

以上語句的執行順序必須掌握:(***很重要)
第一步:from
第二步:where
第三步:select
第四步:order by(排序總是在最后執行!)

9.數據處理函數

數據處理函數又被稱為單行處理函數。單行處理函數的特點:一個輸入對應一個輸出。和單行處理函數相對的是:多行處理函數。(多行處理函數特點:多個輸入,對應1個輸出!)

單行處理函數常見的有哪些?

  1. lower 轉換小寫-》select lower(ename) as ename from emp;
  2. upper 轉換大寫-》select upper(name) as name from t_student;
  3. substr 取子串(substr( 被截取的字符串, 起始下標,截取的長度))-》select substr(ename, 1, 1) as ename from emp;
    注意:起始下標從1開始,沒有0
    例如:找出員工名字第一個字母是A的員工信息?
    第一種方式:模糊查詢
    select ename from emp where ename like ‘A%’;
    第二種方式:substr函數
    select
    ename
    from
    emp
    where
    substr(ename,1,1) = ‘A’;
  4. concat函數進行字符串的拼接-》select concat(empno,ename) from emp;
  5. length 取長度-》select length(ename) enamelength from emp;
  6. trim 去空格-》select * from emp where ename = trim(’ KING’);會自動把字符串里的空格給去掉
  7. case…when…then…when…then…else…end
    當員工的工作崗位是MANAGER的時候,工資上調10%,當工作崗位是SALESMAN的時候,工資上調50%,其它正常。(注意:不修改數據庫,只是將查詢結果顯示為工資上調)
    select
    ename,
    job,
    sal as oldsal,
    (case job when ‘MANAGER’ then sal * 1.1 when ‘SALESMAN’ then sal * 1.5 else sal end) as newsal
    from
    emp;
  8. round 四舍五入
    select round(1236.567, 2 ) as result from emp; //保留兩位小數并進行四舍五入。
    select round(1236.567, 0) as result from emp; //保留整數位。
    select round(1236.567, -1) as result from emp; // 保留到個位。(即個位應該都為0)
    select round(1236.567, -2) as result from emp;// 保留到十位。(即個位/十位都應該為0)
  9. rand() 生成隨機數(生成0-1之間的小數) -》select round(rand()*100,0) from emp; // 100以內的隨機數
    10.ifnull 可以將 null 轉換成一個具體值-》ifnull是空處理函數。專門處理空的。
    在所有數據庫當中,只要有NULL參與的數學運算,最終結果就是NULL。
    select ename, sal + comm as salcomm from emp; 當有null時,結果均為null
    select ename, (sal + ifnull(comm, 0)) * 12 as yearsal from emp; 補助為NULL的時候,將補助當做0

小練習:首字母大寫? -》select concat(upper(substr(name,1,1)),substr(name,2,length(name) - 1)) as result from t_student;

10.分組函數(多行處理函數)

多行處理函數的特點:輸入多行,最終輸出一行
5個:
count 計數
sum 求和
avg 平均值
max 最大值
min 最小值

注意:
分組函數在使用的時候必須先進行分組,然后才能用。(很重要)
如果你沒有對數據進行分組,整張表默認為一組。

  1. 找出最高工資?-》select max(sal) from emp;
  2. 找出最低工資?-》select min(sal) from emp;
  3. 計算工資和:=》select sum(sal) from emp;
  4. 計算平均工資:-》select avg(sal) from emp;
  5. 計算員工數量?-》select count(ename) from emp;

分組函數在使用的時候需要注意哪些?

  1. 分組函數自動忽略NULL,你不需要提前對NULL進行處理。
  2. 分組函數中count()和count(具體字段)有什么區別?
    count(具體字段):表示統計該字段下所有不為NULL的元素的總數。
    count(
    ):統計表當中的總行數。(只要有一行數據count則++)。因為每一行記錄不可能都為NULL,一行數據中有一列不為NULL,則這行數據就是有效的。
  3. 分組函數不能夠直接使用在where子句中。(很重要) 學完分組查詢(group by)之后就明白了了。
  4. 所有的分組函數可以組合起來一起用。
    例如:select sum(sal),min(sal),max(sal),avg(sal),count(*) from emp;

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/718573.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/718573.shtml
英文地址,請注明出處:http://en.pswp.cn/news/718573.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

VUE2與VUE3之間的主要區別

當談到 Vue.js 的版本時&#xff0c;Vue 2 和 Vue 3 是最常被提及的兩個版本。下面是 Vue 2 和 Vue 3 之間的一些主要區別&#xff1a; 1. 性能提升&#xff1a; Vue 3 在底層核心重寫了響應式系統&#xff0c;采用了 Proxy 對象&#xff0c;大幅提高了性能。Vue 3 還引入了靜…

徹底解決華為手機安裝谷歌框架后出現未認證的彈窗問題

引言 本人使用華為手機通過B站等平臺學習如何安裝谷歌框架與商店后&#xff0c;發現安裝谷歌框架后出現未認證的彈窗問題少有解決辦法&#xff0c;而且容易復發&#xff0c;在借鑒相關視頻后找到解決辦法&#xff0c;但視頻中的華谷框架需要付費才能使用&#xff0c;本文將提出…

spring注解驅動系列--自動裝配

Spring利用依賴注入&#xff08;DI&#xff09;&#xff0c;完成對IOC容器中中各個組件的依賴關系賦值&#xff1b;依賴注入是spring ioc的具體體現&#xff0c;主要是通過各種注解進行屬性的自動注入。 一、Autowired&#xff1a;自動注入 一、注解介紹 1、默認優先按照類型去…

高中數學:函數奇偶性

一、定義 偶函數&#xff1a;定義域關于原點對稱&#xff0c;圖像關于Y軸對稱 f(x)f(-x) 奇函數&#xff1a;定義域關于原點對稱&#xff0c;圖像關于原點中心對稱 f(x)f(-x)0 等價于 f(-x)-f(x) 二、函數奇偶性的四種情況 注意&#xff1a; 即奇又偶的函數&#xff0c;只有…

Linux入門到入土

Linxu Linux 簡介 Linux 內核最初只是由芬蘭人林納斯托瓦茲&#xff08;Linus Torvalds&#xff09;在赫爾辛基大學上學時出于個人愛好而編寫的。 Linux 是一套免費使用和自由傳播的類 Unix 操作系統&#xff0c;是一個基于 POSIX&#xff08;可移植操作系統接口&#xff09…

【復現】宏景HCM 任意文件讀取漏洞_63

目錄 一.概述 二 .漏洞影響 三.漏洞復現 1. 漏洞一&#xff1a; 四.修復建議&#xff1a; 五. 搜索語法&#xff1a; 六.免責聲明 一.概述 宏景HCM 將人才標簽技術應用于員工招聘、人才選拔等環節&#xff0c;通過多維度的標簽體系&#xff0c;形成不同專業序列的人才畫…

CV | 醫學影像上的圖像分割模型調研【更新于20240304】

mamba相關的圖像分割&#xff1a;VM-Unet,Manba-Unet,BRAU-Net,MDD-Unet,EGE-Unet,U-Mamba 2024.01.01_BRAU-Net Paper:BRAU-Net: U-Shaped Hybrid CNN-Transformer Network for Medical Image Segmentation https://arxiv.org/pdf/2401.00722.pdf 2024.01.09_U-Mamba Paper:U…

猴子吃桃問題(python版)

文章預覽&#xff1a; 題目python解法一&#xff1a;運行結果 python解法二&#xff1a;運行結果 python解法三&#xff1a;運行結果 題目 猴子吃桃問題&#xff1a;猴子第一天摘下若干個桃子&#xff0c;當即吃了一半&#xff0c;還不過癮&#xff0c;又多吃了一個。 第二天早…

python 腳本設置輸出顏色

在Python腳本中設置輸出顏色&#xff0c;通常可以使用colorama庫&#xff0c;它可以在Windows、Linux和macOS等平臺上工作。colorama庫擴展了Python的標準庫&#xff0c;使得在控制臺輸出彩色文本更加簡單。 首先&#xff0c;你需要安裝colorama庫。如果你還沒有安裝&#xff…

數據倉庫 vs. 數據湖:解析兩者的區別與優劣

在當今數字化時代&#xff0c;數據成為了企業最寶貴的資產之一。為了更好地管理和利用數據&#xff0c;企業需要建立合適的數據存儲和管理系統。在這個過程中&#xff0c;數據倉庫和數據湖成為了兩種常見的選擇。雖然它們都旨在幫助企業管理數據&#xff0c;但在實際應用中&…

flurl升級之后沒有FlurlNewtonsoftJsonSerializer

新建NewtonsoftJsonSerializer.cs /// <summary> /// ISerializer implementation based on Newtonsoft.Json. /// Default serializer used in calls to GetJsonAsync, PostJsonAsync, etc. /// </summary> public class NewtonsoftJsonSerializer : IJsonSerial…

Qt 簡約美觀的加載動畫 第九季

這次和大家分享6個非常清爽的加載動畫. &#x1f60a; 效果如下 &#x1f60a; 一共三個文件 , 可以直接編譯運行的呢 //main.cpp #include "LoadingAnimWidget.h" #include <QApplication> #include <QGridLayout> int main(int argc, char *argv[]) …

原理篇-- 定時任務xxl-job-服務端(admin)項目啟動過程--JobTriggerPoolHelper 初始化 (3)

文章目錄 前言一、JobTriggerPoolHelper 作用&#xff1a;二、JobTriggerPoolHelper 源碼介紹&#xff1a;2.1. start() 方法&#xff1a;2.2 任務觸發&#xff1a;2.3 XxlJobTrigger.trigger 任務執行&#xff1a;2.4 processTrigger 任務的執行&#xff1a;2.5 runExecutor 任…

【JAVA重要知識 | 第三篇】深入理解并暴打AQS原理、ReentrantLock鎖

文章目錄 3.深入理解AQS、ReentrantLock3.1AQS3.1.1AQS簡介3.1.2核心結構&#xff08;1&#xff09;設計模型&#xff08;2&#xff09;組成部分&#xff08;3&#xff09;State關鍵字 3.1.3實現的兩類隊列&#xff08;1&#xff09;同步隊列①CLH②Node③主要行為 img條件隊列…

中霖教育:注冊安全工程師考是科目有哪些?

注冊安全工程師的類型是職業資格證書&#xff0c;需要滿足報名條件才能參加考試&#xff0c;考試通過就能發放證書。報名時間一般在八月份&#xff0c;考試時間在十月底左右。 考試科目&#xff1a; 《安全生產法律法規》 《安全生產管理》 《安全生產技術基礎》 《安全生…

golang實現openssl自簽名雙向認證

第一步&#xff1a;生成CA、服務端、客戶端證書 1. 生成CA根證書 生成CA證書私鑰 openssl genrsa -out ca.key 4096創建ca.conf 文件 [ req ] default_bits 4096 distinguished_name req_distinguished_name[ req_distinguished_name ] countryName …

Node.js基礎---Express路由

1. 路由的概念 1. 什么是路由 廣義上來講&#xff0c;路由就是映射關系 2. Express 中的路由 在 Express 中&#xff0c;路由指的是客戶端的請求與服務器處理函數之間的映射關系 Express 中的路由分三部分&#xff1a;請求的類型、請求的URL地址&#xff0c;處理函數。如下&am…

怎么使用curl2py自動構造爬蟲代碼并進行網絡爬蟲

目錄 一、了解curl2py 二、安裝curl2py 三、使用curl2py生成爬蟲代碼 四、實際案例&#xff1a;爬取網頁數據 五、總結與建議 在當今數據驅動的時代&#xff0c;網絡爬蟲成為了獲取數據的重要工具。對于初學者來說&#xff0c;手動編寫爬蟲代碼可能是一項挑戰。幸運的是&a…

PyTorch-神經網絡

神經網絡&#xff0c;這也是深度學習的基石&#xff0c;所謂的深度學習&#xff0c;也可以理解為很深層的神經網絡。說起這里&#xff0c;有一個小段子&#xff0c;神經網絡曾經被打入了冷宮&#xff0c;因為SVM派的崛起&#xff0c;SVM不了解的同學可以去google一下&#xff0…

JavaScript 基礎學習筆記(五):函數、作用域、匿名函數

目錄 一、函數 1.1 聲明和調用 1.2 形參和實參 1.3 返回值 二、作用域 2.1 全局作用域 2.2 局部作用域 三、匿名函數 3.1 函數表達式 3.2 立即執行函數 一、函數 理解函數的封裝特性&#xff0c;掌握函數的語法規則 1.1 聲明和調用 函數可以把具有相同或相似邏輯的代…