日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

sql中“delete from 表名”表示_SQL查询语句知识点总结

發(fā)布時(shí)間:2024/9/27 数据库 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 sql中“delete from 表名”表示_SQL查询语句知识点总结 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
  • 為什么要學(xué)習(xí)SQL?
  • 數(shù)據(jù)分析崗位的基礎(chǔ)技能:SQL語句和會(huì)使用SQL語句操縱數(shù)據(jù)庫(kù)軟件;
  • 數(shù)據(jù)量增大的工具需求:excel處理十萬以內(nèi)的數(shù)據(jù);數(shù)據(jù)量增大,需要使用更快速便捷的工具分析數(shù)據(jù)。
  • SQL知識(shí)點(diǎn)總結(jié)1

    • 數(shù)據(jù)庫(kù)基礎(chǔ)知識(shí)

    什么是數(shù)據(jù)庫(kù)?什么是是sql?
    數(shù)據(jù)庫(kù)database:用于存放數(shù)據(jù)的容器(一個(gè)文件或者一組文件)。區(qū)別于數(shù)據(jù)庫(kù)管理軟件(DBMS-database management system)。
    SQL:數(shù)據(jù)庫(kù)查詢語言,Structured Query Language的簡(jiǎn)稱。SQL語言是用于操縱數(shù)據(jù)庫(kù)軟件的語言。
    (為什么要使用數(shù)據(jù)庫(kù)?數(shù)據(jù)庫(kù)比excel有更多的優(yōu)點(diǎn):數(shù)據(jù)庫(kù)可以存放比excel更多的數(shù)據(jù),允許很多人同時(shí)使用數(shù)據(jù)。excel好比是移動(dòng)硬盤,數(shù)據(jù)庫(kù)好比是網(wǎng)盤很多人可以同時(shí)訪問里面的數(shù)據(jù)。)

    • 關(guān)系數(shù)據(jù)庫(kù)的原理

    關(guān)系數(shù)據(jù)庫(kù):多張表+各表之間的關(guān)系
    需要掌握:多張表里每一張表的結(jié)構(gòu)是什么樣?各表之間的關(guān)系是什么樣的?
    表的結(jié)構(gòu):表名;列;行
    列名:知道這一列記錄的是什么數(shù)據(jù)。每一行記錄的是數(shù)據(jù)。每一行表示記錄學(xué)生的信息。
    列名學(xué)號(hào)是用來唯一標(biāo)識(shí)一個(gè)學(xué)生的。為什么要用學(xué)號(hào)標(biāo)識(shí)數(shù)據(jù)的唯一性?姓名無法唯一標(biāo)識(shí),可能有重名。
    主鍵:表中用來表示數(shù)據(jù)唯一性的列,叫主鍵。是關(guān)系數(shù)據(jù)庫(kù)的重要概念。
    生活中,我們用主鍵來確定數(shù)據(jù)的唯一性,典型的例子:身份證證號(hào)。
    各表之間的關(guān)系:關(guān)系數(shù)據(jù)庫(kù)是由多張表組成的。
    聯(lián)結(jié)join:學(xué)生表和成績(jī)表之間通過學(xué)號(hào)關(guān)聯(lián)起來。關(guān)系就是數(shù)據(jù)能夠?qū)?yīng)的匹配。在關(guān)系數(shù)據(jù)庫(kù)中,這種數(shù)據(jù)集的關(guān)系叫做“聯(lián)結(jié)join”。(核心概念,在多表查詢中經(jīng)常用到。)
    關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng):
    關(guān)系數(shù)據(jù)庫(kù)原理:設(shè)計(jì)草圖;
    實(shí)現(xiàn)數(shù)據(jù)庫(kù)原理的建筑人員:數(shù)據(jù)庫(kù)管理系統(tǒng),用來管理數(shù)據(jù)庫(kù)的計(jì)算機(jī)軟件。mysql,oracle,sql service.
    操作數(shù)據(jù)庫(kù)的工具:sql,為了操作數(shù)據(jù)庫(kù)而開發(fā)的語言。對(duì)數(shù)據(jù)庫(kù)里的表進(jìn)行操作,修改查找等。(sql是操作數(shù)據(jù)庫(kù)的一種工具。)
    把數(shù)據(jù)庫(kù)比作一碗米飯,里面放的米就是數(shù)據(jù),現(xiàn)在我們要吃碗里的米飯,怎么取出米飯,我們用筷子操作取出米飯。

    • 如何安裝mysql數(shù)據(jù)庫(kù)軟件?

    mysql數(shù)據(jù)庫(kù)(存放數(shù)據(jù))客戶端navicat(用來操作數(shù)據(jù)庫(kù)的軟件)只要安裝了客戶端,都可以連接到數(shù)據(jù)庫(kù)。
    安裝文檔
    如何用客戶端navicat連接到mysql數(shù)據(jù)庫(kù)?
    步驟:點(diǎn)擊連接;填寫數(shù)據(jù)庫(kù)連接信息;連接測(cè)試;確定。
    安裝好客戶端后,在左上角有一個(gè)“鏈接”的按鈕,點(diǎn)擊彈出"連接屬性“的客戶端。
    localhost,說明數(shù)據(jù)庫(kù)在自己的電腦上。端口:默認(rèn)端口。

    • 表的創(chuàng)建,刪除和更新?

    創(chuàng)建數(shù)據(jù)庫(kù):
    鼠標(biāo)左鍵da;新建數(shù)據(jù)庫(kù);設(shè)置數(shù)據(jù)庫(kù)信息(數(shù)據(jù)庫(kù)名:school;字符集:utf8(可以同時(shí)支持英文和中文。如果這里創(chuàng)建不對(duì),后面會(huì)出現(xiàn)亂碼的情況);排序規(guī)則)
    school是灰色的,說明沒用打開數(shù)據(jù)庫(kù)。右鍵:打開數(shù)據(jù)庫(kù);school圖標(biāo)變亮,說明打開。
    表的創(chuàng)建:
    選中數(shù)據(jù)庫(kù),表放在哪個(gè)數(shù)據(jù)庫(kù)下。選中表;右鍵:新建表;輸入列名(學(xué)號(hào)),類型(varchar),長(zhǎng)度(255),不是null(?)。
    點(diǎn)擊”添加欄位“,可以給表增加新的列,增加新的列;
    添加”主鍵(黃色的 標(biāo)記)
    保存:輸入表名(student),點(diǎn)擊“確定”。
    保存后的student的表,在school下找到,然后雙擊表名,打開表。
    數(shù)據(jù)類型:
    數(shù)據(jù)庫(kù)的數(shù)據(jù)類型:3種。數(shù)據(jù)大小:字節(jié)。字節(jié)是計(jì)算機(jī)存儲(chǔ)單位。表示數(shù)據(jù)大小。
    字符串:類型:char;varchar;text;tinytext;mediumtext;longtext;blob;tinyblob;mediumblob;longblob。
    數(shù)字:類型: int/integer;tinyint;smallint;mediumint;bigint;float;double;decimal。
    日期:類型:date;datetime;timestamp;time;year。
    例子:student表:長(zhǎng)度(默認(rèn)值:255)。設(shè)定了數(shù)值類型后,不能存放和所設(shè)置數(shù)值類型不一致的數(shù)據(jù)。
    約束:是除了數(shù)據(jù)類型以外,對(duì)表中數(shù)據(jù)條件進(jìn)行約束的一種功能。(根據(jù)業(yè)務(wù)需求設(shè)置:null:對(duì)應(yīng)列中的數(shù)據(jù)可以包含空置。not null:對(duì)應(yīng)列中的數(shù)據(jù)不可以包含空值(必須填)。primary key:主鍵(表示那一列的數(shù)值不能添加重復(fù)值。聯(lián)合主鍵:多個(gè)列組合起來作為主鍵。)
    表的更新:
    選中表名student;設(shè)計(jì)表;添加欄位;刪除欄位。
    選中表名,刪除表。
    注意:刪除表后很難恢復(fù)。

    • 數(shù)據(jù)的插入,刪除和更新?

    數(shù)據(jù)的插入:
    選中表student;打開表;通過“增加行”,“刪除行”添加和刪除數(shù)據(jù)。然后保存。
    也可以使用sql語句批量插入數(shù)據(jù)。
    sql插入數(shù)據(jù)語句:
    insert into <表名>(<列名1>,<列名2>,......)values(<值1>,<值2>,......);
    藍(lán)色的字是sql的關(guān)鍵字。
    列名不能加單引號(hào),值加單引號(hào)表示一個(gè)字符串。
    在客戶端navicat里哪里寫sql呢?查詢-新建查詢-查詢編輯器。在界面空白的地方寫sql語句。這個(gè)界面叫查詢編輯器,不是只能寫查詢語句,可以寫任何的sql語句。
    第一步寫sql語句,第二步點(diǎn)擊運(yùn)行,第三步看運(yùn)行結(jié)果。
    結(jié)果信息:err報(bào)錯(cuò)。duplicate entry .....for key primary.(插入的值中有和現(xiàn)有數(shù)據(jù)重復(fù)的值,觸發(fā)主鍵的約束條件(學(xué)號(hào)設(shè)置為主鍵。)解決辦法:打開表,將重復(fù)值刪除,然后運(yùn)行結(jié)果。
    空值(null);空字符串(' ')SQL的基本語法:
    DDL(數(shù)據(jù)定義語言):操作對(duì)象:數(shù)據(jù)庫(kù)和表。create;drop;alter
    DML(數(shù)據(jù)操縱語言):操作對(duì)象:表的數(shù)據(jù)。insert;delete;select;update
    DCL(數(shù)據(jù)控制語言):用來取消或者控制數(shù)據(jù)的變更。對(duì)關(guān)系數(shù)據(jù)庫(kù)的用戶是否有權(quán)限操縱數(shù)據(jù)進(jìn)行設(shè)置。commit;rollback;crant
    SQL書寫規(guī)則:
    1.SQL語句逐條執(zhí)行,以英文分號(hào);結(jié)尾。
    2.SQL語句不區(qū)分關(guān)鍵字的大小寫。(關(guān)鍵字是數(shù)據(jù)庫(kù)設(shè)定好的有特別意義的單詞,在客戶端寫的SQL語句,關(guān)鍵字是藍(lán)色標(biāo)注的,比如insert into values,大小寫都可以。表名和列名也不區(qū)分大小寫;但是插入表中的值是區(qū)分大小寫的,比如A和a。
    3.輸入符號(hào)的時(shí)候只能使用英文的。
    寫sql語句遇到錯(cuò)誤,第一步先查有沒有把符號(hào)寫成中文的。列名不能加單引號(hào)。

    • 基本的查詢語句

    select語句:
    selec<列名1>,<列名2>,......from<表名>;
    select子句:希望從表中查出列的名稱(查詢結(jié)果的列名);from子句:從哪個(gè)表查詢。
    整個(gè)查詢語句的含義是:從表中查詢出需要列名的數(shù)據(jù)。
    查詢結(jié)果中列的順序和查詢語句中select后的順序是一樣的。
    查詢多個(gè)列的時(shí)候,需要用英文逗號(hào)分開。
    如果想查找出所有的列,用*表示。select * from student
    運(yùn)行原理:通過sql語句向數(shù)據(jù)庫(kù)查詢數(shù)據(jù),通過客戶端navicat展示查詢內(nèi)容。
    為列設(shè)置別名as:
    select 姓名 as s_name, 性別as '人類性別' from student
    使用別名的目的:使語句查詢結(jié)果更容易理解。英文轉(zhuǎn)化為中文。
    刪除重復(fù)數(shù)據(jù)distinct:
    在select語句中使用distinct
    select distinct 姓名from student;
    select distinct 學(xué)號(hào),姓名 from student;將多個(gè)列的數(shù)據(jù)進(jìn)行組合,這幾個(gè)列的數(shù)據(jù)都相同的時(shí)候才算做重復(fù)數(shù)據(jù)。
    distinct只能放在第一個(gè)查詢的列名之前。SQL書寫規(guī)則:
    sql語句逐條執(zhí)行,運(yùn)行完一條sql語句,再運(yùn)行下一條語句。一條sql語句以;結(jié)尾。
    SQL語句不缺分關(guān)鍵字的大小寫。
    列名不能加單引號(hào),列名命名的時(shí)候不能有空格。(姓名?;姓 名×)
    符號(hào)只能使用英文符號(hào)。

    • 指定查詢條件

    where子句:限定條件的查詢語句
    查出姓名為“猴子”的學(xué)生的學(xué)號(hào):select 姓名,學(xué)號(hào) from student where 姓名='猴子';
    where 姓名='猴子'指定條件。(注意子句中的中文值用英文單引號(hào)。但是列名不能用單引號(hào)。
    SQL運(yùn)行順序:
    1.運(yùn)行from子句,從哪個(gè)表里查詢;2.運(yùn)行where子句,查詢的條件是什么?查詢列名為什么條件的行;3.運(yùn)行select子句,從where子句查詢的行中取出select語句指定的列。
    書寫順序和運(yùn)行順序不一樣。

    • 注釋和sql語句注意事項(xiàng)

    注釋方法:單行注釋;多行注釋。
    (團(tuán)隊(duì)協(xié)作中方便其他人和歷史記錄方便查看。)
    單行注釋:
    - - 查詢出全部列
    select * from student;
    多行注釋:
    /*
    查詢姓名是猴子學(xué)生的學(xué)號(hào)
    */
    select 姓名,學(xué)號(hào)
    from student
    where 姓名='猴子';
    sql語句注意事項(xiàng):符號(hào)的使用,英文符號(hào)。

    • 運(yùn)算符

    算數(shù)運(yùn)算符;比較運(yùn)算符;邏輯運(yùn)算符
    算數(shù)運(yùn)算符:+-*/;含義:加法運(yùn)算;減法運(yùn)算;乘法運(yùn)算;除法運(yùn)算。
    5+Null=Null Null是空值,所有含有空值的計(jì)算,結(jié)果還是空值。
    ()內(nèi)的表達(dá)式優(yōu)先進(jìn)行。(1+2)*3
    例子:select 學(xué)號(hào),成績(jī),成績(jī)/100 as '成績(jī)百分比' from score;
    比較運(yùn)算符:
    =相等;<>不等于;>大于; >=大于等于; <小于;<=小于等于
    select 姓名,學(xué)號(hào) from student where 姓名= '猴子';
    select 學(xué)號(hào),成績(jī) from score where 成績(jī)<60;
    select 姓名,出生日期 from student where 出生日期< '1990-01-01';
    字符串比較規(guī)則:
    字符串的順序是按照字典順序。
    10是以1開頭的數(shù)字,因此10比2小。
    '10' < '2'
    如何查詢出null空值的行?
    is null/is not null
    查詢出教師姓名是空值的行?查詢出教師姓名不是空值的行?
    select 教師號(hào),教師姓名 from teacher where 教師姓名 is null;
    select 教師號(hào),教師姓名 from teacher where 教師姓名 is not null;
    邏輯運(yùn)算符:可以將多個(gè)查詢條件組合起來
    not否定某一條件;
    and并且;
    between范圍查找;
    or或者;
    in:or的簡(jiǎn)單寫法。
    案例:
    not:
    select 學(xué)號(hào),成績(jī) from score where not 成績(jī) >= 60;和select 學(xué)號(hào),成績(jī) from score where 成績(jī) < 60;一般不適用not語句。
    and: 并且
    業(yè)務(wù)場(chǎng)景:同時(shí)使用多個(gè)查詢條件來查詢所需要的數(shù)據(jù)。
    文氏圖。
    select 學(xué)號(hào),成績(jī) from score where 成績(jī)>=60 and 成績(jī)<=90;
    select 姓名,性別 from student where 姓名= '男' and (姓名='猴子' or 姓名=‘馬云');
    ()內(nèi)先運(yùn)行。
    between:范圍查詢
    select 學(xué)號(hào),成績(jī) from score where 成績(jī) between 60 and 90;
    select 學(xué)號(hào),成績(jī) from score where 成績(jī) >=60 and 成績(jī) <=90;
    or:或者。文氏圖
    兩個(gè)條件中滿足任何一個(gè)。
    select 學(xué)號(hào),成績(jī) from score where 成績(jī) < 60 or 成績(jī) > 90;
    in:或者
    是or的簡(jiǎn)便寫法。
    select 姓名,性別 from student where 姓名 in ('猴子','馬云');
    select 姓名,性別 from student where 姓名 not in ('猴子','馬云');

    • 字符串模糊查詢

    like:字符串模糊查詢。
    %表示任意字符串。
    猴%:
    --查詢姓“猴”的學(xué)生名單
    /*
    查詢姓“猴”的學(xué)生名單
    */
    select *
    from student
    where 姓名 like '猴%';
    %猴:
    --查詢姓名中最后一個(gè)字是“猴”的學(xué)生名單
    /*
    查詢姓名中最后一個(gè)字是“猴”的學(xué)生名單
    */
    select *
    from student
    where 姓名 like '%猴';
    %猴%:
    --查詢姓名中帶“猴”字的學(xué)生名單
    /*
    查詢姓名中帶“猴”字的學(xué)生名單
    */
    select *
    from student
    where 姓名 like '%猴%';
    _1個(gè)下劃線表示任意一個(gè)字符。
    /*
    查詢姓”王“的學(xué)生名單,并且姓名是3個(gè)字的
    */
    select *
    from student
    where 姓名 like '王__'
    SQL運(yùn)行順序:
    select子句最后運(yùn)行,其他子句按書寫順序運(yùn)行。
    select查詢結(jié)果
    from從哪張表中查詢數(shù)據(jù)
    where查詢條件(運(yùn)算符,字符串模糊查詢);

    • 匯總分析

    匯總函數(shù):5個(gè)函數(shù)
    count求某列的行數(shù):count(*)包含空值。可以對(duì)任何數(shù)據(jù)類型進(jìn)行計(jì)算。
    sum對(duì)某列數(shù)據(jù)求和:只能對(duì)數(shù)值類型的列計(jì)算
    avg求某列數(shù)據(jù)的平均值:只能對(duì)數(shù)值類型的列計(jì)算
    max求某列數(shù)據(jù)的最大值
    min求某列數(shù)據(jù)的最小值
    函數(shù):
    三個(gè)功能:1.功能;2.輸入(參數(shù));3.輸出(返回值)。
    如何將函數(shù)寫在SQL語句中:
    count:
    select count(教師姓名) from teacher;
    count行數(shù)如果計(jì)算的是列名,會(huì)除去空值null計(jì)算。
    select count(*) from teacher;
    如果count行數(shù)計(jì)算的是空值,會(huì)計(jì)算所有的行數(shù),包括空值的部分。
    sum:
    select sum(成績(jī)) from score;
    select max(成績(jī)), min(成績(jī)) from score;
    select count (distinct 姓名) from student;如果不想計(jì)算重復(fù)值,在count前面加上distinct。
    在列名前面加上distinct,去除重復(fù)值計(jì)算。

    • 對(duì)數(shù)據(jù)分組

    SQL分組:group by
    在SQL中,用group by子句按某個(gè)條件進(jìn)行分組。
    經(jīng)常和匯總函數(shù)進(jìn)行使用,數(shù)據(jù)分析通用模板方法。分析方法:數(shù)據(jù)分組;應(yīng)用函數(shù);組合結(jié)果。
    select 性別,count(*)
    from student
    where 出生日期 > '1990-01-01'
    group by 性別;SQL運(yùn)行順序:
    1.from student; 通過from子句指定從哪張表中查找數(shù)據(jù);
    2.where 出生日期 > '1990-01-01';運(yùn)行where子句,通過這個(gè)子句查詢出符合條件的行;3.group by 性別;對(duì)第二步查出的數(shù)據(jù)進(jìn)行分組;
    4.select 性別,count(*);對(duì)分組后的每個(gè)組運(yùn)用函數(shù),并組合結(jié)果。并篩選出select中指定的列。
    如何識(shí)別問題要分組:每次/每個(gè)/每門?

    • 對(duì)分組結(jié)果指定條件

    having: 為分組結(jié)果指定條件;
    where子句只能指定行的條件;having子句可以指定分組以后的條件,比如在分出男生組和女生組的數(shù)據(jù)后,只需要男生組的數(shù)據(jù)。
    select 性別,count(*)
    from student
    group by 性別
    having count(*)>1;
    SQL運(yùn)行順序:
    select 查詢結(jié)果 5
    from 從哪張表中查找數(shù)據(jù) 1
    where查詢條件 2
    group by分組 3
    having對(duì)分組結(jié)果指定條件; 4

    • 如何用 SQL 解決業(yè)務(wù)問題?

    業(yè)務(wù)問題解決套路
    1.翻譯成大白話;2.寫出分析思路;3.寫出對(duì)應(yīng)的SQL子句。
    如何計(jì)算各科的平均成績(jī)?
    如何計(jì)算每門課程的平均成績(jī)?
    select 課程號(hào), avg(成績(jī))
    from score
    group by 課程號(hào);
    如何計(jì)算每門課程的平均成績(jī),并且平均成績(jī)大于等于80分?
    如何計(jì)算每門課程(分組)的平均成績(jī)(匯總),并且平均成績(jī)大于等于80分(條件)?
    select 課程號(hào), avg(成績(jī))
    from score
    group by 課程號(hào)
    having avg(成績(jī)) >= 80;

    • 如何對(duì)查詢結(jié)果排序?

    對(duì)查詢結(jié)果排序:order by
    升序/降序/指定多個(gè)排序列名/空值如何排序
    降序(desc):從大到小;單詞descend的縮寫。
    升序(asc):從小到大;單詞ascend的縮寫。
    如何計(jì)算每門課程的平均成績(jī),并且平均成績(jī)大于等于80分?
    select 課程號(hào), avg(成績(jī)) as 平均成績(jī)
    from score
    group by 課程號(hào)
    having avg(成績(jī)) >= 80
    order by 平均成績(jī) desc;
    運(yùn)行順序:order by是查詢結(jié)果排序,因?yàn)椴樵兘Y(jié)果是在select子句后得到的,所以order by是在select子句后運(yùn)行的。
    select 課程號(hào), avg(成績(jī)) as 平均成績(jī) 4
    from score 1
    group by 課程號(hào) 2
    having avg(成績(jī)) >= 80 3
    order by 平均成績(jī) desc; 5
    指定多個(gè)排序列名:
    select * 2
    from score 1
    order by 成績(jī) asc, 課程號(hào) desc; 3
    先按照成績(jī)升序排列,相同成績(jī)的按照課程號(hào)降序排列。
    空值null的排序:
    如果數(shù)值中有空值,則空值null排列在前面。
    null, ' ', 數(shù)值1 ,數(shù)值2從查詢結(jié)果中取出指定行:limit
    --從查詢結(jié)果中取出前2行數(shù)據(jù)
    selct *
    from score
    limit 2;SQL運(yùn)行順序:
    select 查詢結(jié)果 5
    from 從哪張表中查找數(shù)據(jù) 1
    where查詢條件 2
    group by分組 3
    having對(duì)分組結(jié)果指定條件 4
    order by對(duì)查詢結(jié)果排序 6
    limit 從查詢結(jié)果中取出指定行;7

    • 如何看懂 SQL 報(bào)錯(cuò)信息?

    幾種常見的 SQL 錯(cuò)誤:
    運(yùn)行報(bào)錯(cuò):Err
    1. 在having/group by中不能使用了select里別名。having子句是先運(yùn)行的,select子句是后運(yùn)行的。having運(yùn)行時(shí)沒有”平均成績(jī)“這個(gè)別名。
    2. 在where子句中不能使用聚合函數(shù)(匯總函數(shù))。
    3. 字符串類型的數(shù)字。常見問題:數(shù)據(jù)存放的類型如果是字符串,如果進(jìn)行排序和計(jì)算,按照字符串類型計(jì)算。字符串和數(shù)值類型的計(jì)算規(guī)則是不一樣的。需要改成所需要的數(shù)據(jù)類型。
    練習(xí):sqlzoo中習(xí)題練習(xí)。

    • 視圖

    表中存放的是實(shí)際數(shù)據(jù);
    視圖中存放的是SQL查詢語句;
    使用視圖時(shí),會(huì)運(yùn)行視圖里的sql查詢語句創(chuàng)建出一張臨時(shí)表。
    臨時(shí)表:當(dāng)客戶端與數(shù)據(jù)庫(kù)斷開時(shí),這個(gè)表會(huì)自動(dòng)刪除。視圖不存放數(shù)據(jù),存放的是SQL語句。
    create view .......as select 查詢語句;
    注意事項(xiàng):不能往視圖里插入數(shù)據(jù)。不建議頻繁在視圖里創(chuàng)建視圖。

    • 子查詢

    SQL語句中有有子查詢,先運(yùn)行子查詢。
    ......in子查詢
    ......any/some 子查詢
    ......all子查詢

    • 標(biāo)量子查詢

    需要單一值的時(shí)候。(返回單一的值。)可以和比較運(yùn)算符/in/any/some/all一起使用。
    編程-彈鋼琴

    • 關(guān)聯(lián)子查詢

    關(guān)聯(lián)條件:where。在每個(gè)組里比較(關(guān)聯(lián)子查詢)關(guān)聯(lián)條件。
    where s1.課程號(hào)=s2.課程號(hào)

    • 如何用SQL解決業(yè)務(wù)問題?

    翻譯成大白話;寫出分析思路;寫出對(duì)應(yīng)的sql子句。
    如何看懂sql報(bào)錯(cuò)信息?一 一排除錯(cuò)誤。

    • 各種函數(shù)

    匯總函數(shù):count;sum;avg;max;min;
    算術(shù)函數(shù):round;abs;mod;
    字符串函數(shù):length;lower;upper;contact;replace;substring;
    日期函數(shù):current_date;current_time;year;mont;day'dayname;

    • 表的加法

    加法:union
    (將兩個(gè)表中重復(fù)數(shù)據(jù)刪除,加起來)
    union all
    (不刪除重復(fù)值將表的內(nèi)容加起來)

    • 表的聯(lián)結(jié)

    聯(lián)結(jié):表之間的關(guān)系。
    常見聯(lián)結(jié)類型/方式:交叉聯(lián)結(jié)cross join;內(nèi)聯(lián)結(jié)inner join;左聯(lián)結(jié)eft join;右聯(lián)結(jié)right join;全聯(lián)結(jié)full join。
    on是表示通過什么產(chǎn)生關(guān)系。
    交叉聯(lián)結(jié)(笛卡爾積):將兩個(gè)表的每一行合并。
    inner join:同時(shí)存在的數(shù)據(jù)。
    left join:
    right join:
    full join:
    聯(lián)結(jié)在from子句。聯(lián)結(jié)的表。

    • case表達(dá)式

    判斷條件。
    case when...then...when....then....else....end;
    else可以省略,表示空值。最好寫。
    case表達(dá)式+聚合函數(shù)可同時(shí)使用


    SQL知識(shí)點(diǎn)總結(jié)2:
    側(cè)重點(diǎn)SQL查詢語句的書寫邏輯和運(yùn)行順序mysql:增刪改查
    SQL增刪改查:
    對(duì)數(shù)據(jù)庫(kù)有修改的操作:增刪改
    對(duì)數(shù)據(jù)庫(kù)沒有修改的操作:查(數(shù)據(jù)分析中最主要的sql語句)寫sql順序:
    select....from....where...group by....having....order by....limit...;執(zhí)行順序:
    select....輸出 4
    from....獲取數(shù)據(jù) 1
    where...過濾 2
    group by....分組 3
    having....過濾 5
    order by....排序 6
    limit...;限定個(gè)數(shù) 7數(shù)據(jù)流:
    列:事物屬性
    行:同一個(gè)事物的內(nèi)容
    以表呈現(xiàn)的數(shù)據(jù)/二維數(shù)據(jù)
    數(shù)據(jù)組織:表的形式
    from student 把student這個(gè)表的所有數(shù)據(jù)都獲取過來
    select.....from....當(dāng)這個(gè)表準(zhǔn)備好以后要展示的內(nèi)容有哪些?
    select * from student
    select name from student
    select可以對(duì)數(shù)據(jù)進(jìn)行過濾。
    where:在from中獲取的數(shù)據(jù)進(jìn)行過濾,符合條件的數(shù)據(jù)留下,不符合條件的數(shù)據(jù)丟棄。(and, or.....)SQL必知必會(huì)
    select name from student where name = '小剛' ;
    select * from student where name = '小剛';
    group by:分組。分組后如果遇到select,那么輸出的代表是這一組的第一行數(shù)據(jù)。group by還可以和聚合函數(shù)放在一起。
    select * from ....where...group by....;
    select * from student group by classid;??分組后的第一行數(shù)據(jù)。不是很理解
    把classid相同的分組。
    selct count( id, classid ) from student group by classid;
    selct count( id, classid ) from student group by classid, name;classid, name兩個(gè)相同才算是一組。多列 的分組。
    select count( 1 ), classid from student;
    select count( name ) , classid from student;
    區(qū)別:如果Name 中有null值,那么count 1 不記錄null值。其他情況二者一致。
    select count (distinct name) , classid form student;
    distinct:排除重復(fù)值;
    聚合函數(shù):count計(jì)數(shù);sum求和;max最大值;min最小值;avg平均數(shù);group-concat字符集;
    區(qū)分:count(1);count(name);count(distinct name)
    sql語句和mysql的關(guān)系:
    sql語句:一種語言;mysql是一個(gè)軟件,數(shù)據(jù)處理軟件。用sql語言操作數(shù)據(jù)庫(kù)mysql。
    開源數(shù)據(jù)庫(kù)中最流行的是mysql;oracle/sql server也是試用于sql。
    區(qū)別:同一個(gè)表在不同的數(shù)據(jù)庫(kù)查詢的內(nèi)容不一致。有細(xì)微的區(qū)別。
    創(chuàng)建數(shù)據(jù)庫(kù):(schema)
    CREATE DATABASE student;
    習(xí)慣(寫sql的時(shí)候如果是sql的關(guān)鍵字大寫,其他小寫)
    CREATE TABLE student (id int primary key, name char(10), classid int) defaut charset=utf8mb4;
    插入數(shù)據(jù)庫(kù)的SQL
    INSERT INTO student(id,name, classid) VALUES (1, '假博學(xué)',1);
    INSERT INTO student(id,name, classid) VALUES (2, '假博',2),(3, '假學(xué)',1),(4, '假仁',2),(5, '博學(xué)',20;
    清空數(shù)據(jù)表:
    TRUNCATE student;
    TRUNCATE TABLE student;
    where是對(duì)行的操作,一行一行的對(duì)比/排錯(cuò)是否滿足條件。
    SELECT * FROM student GROUP BY classid;
    為什么class id在輸出的時(shí)候還進(jìn)行了排序?
    GROUP BY分組,為什么結(jié)構(gòu)還實(shí)現(xiàn)了排序,因?yàn)檫M(jìn)行分組的時(shí)候,默地先進(jìn)行了排序(升序asc)
    如果是降序(desc),語句:
    SELECT * FROM student GROUP BY classid DESC;
    區(qū)別:
    SELECT COUNT(*), clasid FROM student GROUP BY classid DESC;
    SELECT COUNT(1), clasid FROM student GROUP BY classid DESC;
    SELECT COUNT(name), clasid FROM student GROUP BY classid DESC;
    SELECT COUNT(distinct 1), clasid FROM student GROUP BY classid DESC;
    SELECT SUM(id), clasid FROM student GROUP BY classid DESC;
    SELECT AVG(id), clasid FROM student GROUP BY classid DESC;
    SELECT * FROM student WHERE 1=1 GROUP BY classid;
    SELECT * FROM student GROUP BY classid;
    where 1=1
    where 1=0
    1=1永遠(yuǎn)都是正確;1=0永遠(yuǎn)都是錯(cuò)誤。
    HAVING 過濾的是GROUP BY之后的內(nèi)容。根據(jù)SQL語句執(zhí)行順序,HAVING 過濾的是GROUP BY后的數(shù)據(jù)。
    查詢每個(gè)班中人數(shù)大于2個(gè)的班級(jí)號(hào)。
    每個(gè):分組,GROUP BY,以班級(jí)分組class,人數(shù)大于2人數(shù)count(1)>2
    SELECT classid FROM student GROUP BY classid HAVING COUNT (1)>2;
    GROUP BY之后能勇select里別名的內(nèi)容,之前不可以。
    ORDER BY 用那一列進(jìn)行排序
    ORDER BY n;
    ODER BY classid,n;
    LIMIT:取前幾的行
    LIMIT 1;取第一行
    LIMIT 1,2;從1 開始取2個(gè)
    CASE WHEN:
    CASE WHEN 放在SELECT里,輸出的時(shí)候,把輸出信息置換。
    CASE WHEN 表達(dá)式
    THEN 輸出
    WHEN 表達(dá)式
    THEN輸出
    ELSE輸出
    END
    CASE WHEN id=1
    THEN 2
    WHEN id=2
    THEN 1
    ELSE
    10
    END
    對(duì)比python:
    if id==1;
    2
    elif id==2;
    1
    else
    0
    if id=表達(dá)式;
    輸出
    elif id=表達(dá)式;
    輸出
    else
    輸出
    將1班的學(xué)生轉(zhuǎn)到2班
    將2班的學(xué)生轉(zhuǎn)到1班
    3班的學(xué)生不變
    SELECT id,name FROM student
    CASE WHEN 放在SELECT里,輸出的時(shí)候,把輸出信息置換。
    (CASE WHEN classid=1 THEN
    2
    CASE WHEN classid=2 THEN
    1
    ELSE classid END) AS cld
    SELECT id,mame, (CASE WHEN classid = 20 THEN 6 WHEN classid = 6 THEN 20 ELSE END) AS cld FROM student;
    聚合函數(shù)+CASE WHEN:
    SELECT name,
    MAX(CASE WHEN stage = ' 基’ THEN score ELSE null END) AS '基',
    MAX(CASE WHEN stage = ' 爬’ THEN score ELSE null END) AS '爬',
    MAX(CASE WHEN stage = ' SQL’ THEN score ELSE null END) AS 'SQL',
    FROM score GROUP BY name;
    JOIN連接:兩個(gè)表相關(guān)的查詢
    連接:對(duì)兩個(gè)表的數(shù)據(jù)進(jìn)行重組,將數(shù)據(jù)組合在一個(gè)表里。
    SELECT studentid,classid,
    FROM后的內(nèi)容:FROM student JOIN class
    WHERE classid=2 AND studentid%=1;(ID是奇數(shù):studentid%=1;ID是偶數(shù):studentid%=0)
    GROUP BY studentname;
    ON條件:過濾條件
    SELECT studentid,classid,FROM student JOIN class ON classid=class.id WHERE classid=2 AND studentid%=1 GROUP BY studentname;
    SELECT studentid,classid,
    FROM student JOIN class ON classid=class.id (JOIN是FROM后的內(nèi)容,新生成的表)
    WHERE classid=2 AND studentid%=1(ID是奇數(shù):studentid%=1;ID是偶數(shù):studentid%=0)
    GROUP BY studentname;
    FROM 表 JOIN表ON條件
    標(biāo)黃的當(dāng)作一個(gè)新表
    ON可以改成WHERE嗎?單純寫JOIN是,ON可以和WHERE替換。但是LEFTJOIN這則不行。
    LEFTJOIN和JOIN區(qū)別:
    LEFTJOIN 必須有ON條件;
    回去檢查左邊的數(shù)據(jù)是否都包含在新生成的表中。如果是,與JOIN沒有區(qū)別;如果不是,用NULL與不包含的行組成新行加入新表。
    RIGHTJOIN:
    A RIGHTJON B=B LEFTJOIN A
    多表連接:ABC三個(gè)表連接, A和B表先結(jié)合成AB表,AB表在和C表結(jié)合。
    A JOIN B ON....
    JOIN C ON...
    JOIN D ON...
    A JOIN B JOIN C JOIN D
    A LEFT JOIN B ON...LEFTJOIN C...
    什么情況下用JOIN,什么時(shí)候用LEFTJOIN。
    查詢通信A的班主任名稱:
    SELECT 班主任名字 FROM student JOIN class ON classid=class.id WHERE studentname='A';
    查詢哪些同學(xué)目前是沒有班級(jí)的?
    SELECT studentname FROM student LEFTJOIN class ON classid=class.id WHERE class.id IS NULL;
    兩個(gè)值做比較只能是同一行的數(shù)據(jù)。
    需要兩行之間的對(duì)比,自己JOIN自己。
    SELECT e1.name FROM employee AS e1 JOIN employee AS e_m2,id WHERE e1.salary>e_m2.salary;
    PRIMARY是MYSQL的關(guān)鍵字,加反引號(hào)/雙引號(hào)。反引號(hào)在TAB鍵上。
    分組,聚合函數(shù)不分家,分組一般都是用來做聚合函數(shù)。
    子查詢:相當(dāng)直觀的SQL語句。
    類似英語里的從句。
    WHERE里面的子查詢:
    在查詢?nèi)绻赪HERE/SELECT相當(dāng)于子查詢先計(jì)算結(jié)果再判斷。
    SELECT id FROM class WHERE manager='小藍(lán)';
    SELECT name FROM student WHERE classid=1;
    子查詢語句:
    SELECT name FROM student WHERE classid=(SELECT id FROM class WHERE manager='小藍(lán)');
    SELECT里面的子查詢:
    =的子查詢只能返回一個(gè)數(shù)值;但是in的子查詢能返回一列數(shù)據(jù)。
    SELECT * , (SELECT id FROM class WHERE manager =’ LV‘ )FROM student
    HAVING子查詢不常見;
    FROM里面的子查詢:
    在FROM里的子查詢必須有別名(as)。FROM里的自查詢相當(dāng)于一個(gè)新的表。
    SELECT studentname FROM student JOIN class ON studentclassid=classid WHERE manager=’小藍(lán)';
    自查詢語句:
    SELECT studentname FROM student JOIN (SELECT * FROM class WHERE manager=’小藍(lán)') AS c ON studentclassid=classid;
    任何子查詢都可以用JOIN的表變換。
    半連接:semi-join
    子查詢內(nèi)引用復(fù)查詢的表信息/在子查詢中有訪問復(fù)查詢表信息的叫做半連接。
    半連接作用:找到每個(gè)classid中最大的ID做對(duì)應(yīng)的信息。
    SELECT * FROM student s1 WHERE id=SELECT MAX(id) FROM student s2 WHERE classid=s1.class id;
    半連接前置:
    找到每個(gè)班級(jí)學(xué)生的最大學(xué)號(hào)對(duì)應(yīng)的學(xué)生信息。
    SELECT * FROM student WHERE id IN (SELECT MAX(id) FROM student GROUP BY classid);
    SQL書寫思路:按數(shù)據(jù)的流程一點(diǎn)點(diǎn)寫。SQL學(xué)習(xí)資料推薦專業(yè)書籍:MySQL必知必會(huì)/SQL必知必會(huì)

    知乎課程:猴子數(shù)據(jù)分析
    從零學(xué)會(huì)SQL:入門
    從零學(xué)會(huì)SQL:簡(jiǎn)單查詢
    從零學(xué)會(huì)SQL:匯總分析
    從零學(xué)會(huì)SQL:多表查詢
    從零學(xué)會(huì)SQL:復(fù)雜查詢我的另一個(gè)知乎問答:
    高中生想學(xué)一門技術(shù)類似編程什么的,有什么推薦? - Rachel的回答 - 知乎

    高中生想學(xué)一門技術(shù)類似編程什么的,有什么推薦??www.zhihu.com

    總結(jié)

    以上是生活随笔為你收集整理的sql中“delete from 表名”表示_SQL查询语句知识点总结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 亚洲国产影院 | 日本一区二区三区免费看 | 裸体裸乳免费看 | 欧美不卡一区 | av作品在线观看 | 日韩性网站 | 韩日一级片| 成人做爰www看视频软件 | 久色视频在线播放 | 久久婷婷国产麻豆91 | 蜜桃av影视 | 天躁夜夜躁狼狠躁 | 中国黄色录像 | 色图网址| 91丝袜在线观看 | 亚洲高清在线免费观看 | 精品日本一区二区三区在线观看 | jizzjizz日本免费视频 | 国产妞干网 | 在线视频亚洲 | 绝顶高潮videos合集 | 久久私人影院 | 操一操 | 特黄视频| 欧洲视频在线观看 | 欧美日韩国产综合网 | www.偷拍.com | 性欧美大战久久久久久久久 | 中文字幕一区二区三区乱码在线 | 最新av免费观看 | 又大又粗又爽18禁免费看 | 丁香六月五月婷婷 | 日韩精品一区二区电影 | 国产精品久久久久久久久久久久午夜片 | 亚洲国产精华液网站w | 色av综合网 | 亚洲一卡二卡三卡 | 极品色影视 | 成人黄色网 | 不卡中文av | 久久久国产精品 | 亚洲鲁鲁 | 亚洲性综合网 | 国产精品高潮呻吟 | 成人在线视频观看 | 综合网视频 | 日韩午夜网站 | 朝桐光一区二区 | 狠狠鲁影院 | 五月天黄色网 | 台湾佬美性中文娱乐 | 2018中文字幕在线观看 | 天堂久久网 | 天天做天天操 | 打屁股疼的撕心裂肺的视频 | www.亚洲天堂.com | 公侵犯一区二区三区四区中文字幕 | 就要日就要操 | 国产乱一区二区三区 | 青青久在线视频 | 国产亚洲精品久久久 | 黄色高清视频 | 国产午夜精品久久久久久久 | 日本黄色片在线播放 | 黄色一区二区视频 | 国产又粗又黄又爽又硬 | 有码一区 | 国产91麻豆视频 | 9i看片成人免费高清 | 久久伊人婷婷 | 免费在线观看视频a | 色撸撸av| 亚洲综合成人在线 | 国产黄a三级三级三级 | 国产精品黄色在线观看 | 青青青青在线 | 捆绑调教sm束缚网站 | 欧美一区二区三区不卡视频 | a级片黄色 | www超碰在线 | 亚洲国产三区 | 手机看片日韩在线 | 国产精品午夜福利 | 亚洲五月天综合 | 日韩手机视频 | 免费成人在线观看动漫 | 国产精品亚洲第一 | 欧美视频xxx| 欧美日韩国产精品成人 | 人人超碰人人 | 中文字幕一区二区三区手机版 | 国产在线xxx | 岛国av一区 | 国产欧美综合一区二区三区 | 99热这里只有精品首页 | 中国农村一级片 | 国产欧美一区二区三区精品酒店 | www av| 成年人在线播放视频 |