<track id="p1jc3"><source id="p1jc3"><em id="p1jc3"></em></source></track>
<bdo id="p1jc3"><address id="p1jc3"><dd id="p1jc3"></dd></address></bdo>
<menuitem id="p1jc3"><optgroup id="p1jc3"><dd id="p1jc3"></dd></optgroup></menuitem>

    1. <track id="p1jc3"><div id="p1jc3"></div></track>
        <track id="p1jc3"></track>
      1. <track id="p1jc3"><span id="p1jc3"></span></track>
        <track id="p1jc3"></track>

      2. <track id="p1jc3"><span id="p1jc3"></span></track>

        <menuitem id="p1jc3"></menuitem><menuitem id="p1jc3"></menuitem>

            云狐網

            您現在的位置是:首頁 > 電腦之家 > 電腦知識

            電腦知識

            如何用mysql建立數據庫(MySQL數據庫基礎知識及優化)

            云狐網絡 2022-09-18 21:39:11電腦知識

            SQL語句基礎知識及優化

            SQL語句主要分為哪幾類 *

            • 數據據定義語言DDL(Data Definition Language):主要有CREATE,DROP,ALTER等對邏輯結構有操作的,包括表結構、視圖和索引。
            • 數據庫查詢語言DQL(Data Query Language):主要以SELECT為主
            • 數據操縱語言DML(Data Manipulation Language):主要包括INSERT,UPDATE,DELETE
            • 數據控制功能DCL(Data Control Language):主要是權限控制能操作,包括GRANT,REVOKE,COMMIT,ROLLBACK等。

            SQL約束有哪些? **

            • 主鍵約束:主鍵為在表中存在一列或者多列的組合,能唯一標識表中的每一行。一個表只有一個主鍵,并且主鍵約束的列不能為空。
            • 外鍵約束:外鍵約束是指用于在兩個表之間建立關系,需要指定引用主表的哪一列。只有主表的主鍵可以被從表用作外鍵,被約束的從表的列可以不是主鍵,所以創建外鍵約束需要先定義主表的主鍵,然后定義從表的外鍵。
            • 唯一約束:確保表中的一列數據沒有相同的值,一個表可以定義多個唯一約束。
            • 默認約束:在插入新數據時,如果該行沒有指定數據,系統將默認值賦給該行,如果沒有設置沒默認值,則為NULL。
            • Check約束:Check會通過邏輯表達式來判斷數據的有效性,用來限制輸入一列或者多列的值的范圍。在列更新數據時,輸入的內容必須滿足Check約束的條件。

            什么是子查詢? **

            子查詢:把一個查詢的結果在另一個查詢中使用XD2電腦_數碼_手機應用問題解決的IT技術網站 - 云狐網

            子查詢可以分為以下幾類:XD2電腦_數碼_手機應用問題解決的IT技術網站 - 云狐網

            • 標量子查詢:指子查詢返回的是一個值,可以使用 =,>,<,>=,<=,<>等操作符對子查詢標量結果進行比較,一般子查詢會放在比較式的右側。SELECT * FROM user WHERE age = (SELECT max(age) from user) //查詢年紀最大的人
            • 列子查詢:指子查詢的結果是n行一列,一般應用于對表的某個字段進行查詢返回。可以使用IN、ANY、SOME和ALL等操作符,不能直接使用SELECT num1 FROM table1 WHERE num1 > ANY (SELECT num2 FROM table2)
            • 行子查詢:指子查詢返回的結果一行n列SELECT * FROM user WHERE (age,sex) = (SELECT age,sex FROM user WHERE name="zhangsan")
            • 表子查詢:指子查詢是n行n列的一個數據表SELECT * FROM student WHERE (name,age,sex) IN (SELECT name,age,sex FROM class1) //在學生表中找到班級在1班的學生

            了解MySQL的幾種連接查詢嗎? ***

            MySQl的連接查詢主要可以分為外連接,內連接,交叉連接XD2電腦_數碼_手機應用問題解決的IT技術網站 - 云狐網

            • 外連接外連接主要分為左外連接(LEFT JOIN)、右外連接(RIGHT JOIN)、全外連接。左外連接:顯示左表中所有的數據及右表中符合條件的數據,右表中不符合條件的數據為null。

            如何用mysql建立數據庫(MySQL數據庫基礎知識及優化)(1)XD2電腦_數碼_手機應用問題解決的IT技術網站 - 云狐網

            右外連接:顯示左表中所有的數據及右表中符合條件的數據,右表中不符合條件的數據為null。XD2電腦_數碼_手機應用問題解決的IT技術網站 - 云狐網

            如何用mysql建立數據庫(MySQL數據庫基礎知識及優化)(2)XD2電腦_數碼_手機應用問題解決的IT技術網站 - 云狐網

            MySQL中不支持全外連接。XD2電腦_數碼_手機應用問題解決的IT技術網站 - 云狐網

            • 內連接:只顯示符合條件的數據

            如何用mysql建立數據庫(MySQL數據庫基礎知識及優化)(3)XD2電腦_數碼_手機應用問題解決的IT技術網站 - 云狐網

            • 交叉連接:使用笛卡爾積的一種連接。笛卡爾積,百度百科的解釋:兩個集合X和Y的笛卡爾積表示為X × Y,第一個對象是X的成員而第二個對象是Y的所有可能有序對的其中一個成員 。例如:A={a,b},B={0,1,2},A × B = {(a,0),(a,1),(a,2),(b,0),(b,1),(b,2)}

            舉例如下:有兩張表分為L表和R表。XD2電腦_數碼_手機應用問題解決的IT技術網站 - 云狐網

            L表XD2電腦_數碼_手機應用問題解決的IT技術網站 - 云狐網

            如何用mysql建立數據庫(MySQL數據庫基礎知識及優化)(4)XD2電腦_數碼_手機應用問題解決的IT技術網站 - 云狐網

            R表XD2電腦_數碼_手機應用問題解決的IT技術網站 - 云狐網

            如何用mysql建立數據庫(MySQL數據庫基礎知識及優化)(5)XD2電腦_數碼_手機應用問題解決的IT技術網站 - 云狐網

            • 左外連接 :select L.`*`,R.`*` from L left join R onL.b=R.b

            如何用mysql建立數據庫(MySQL數據庫基礎知識及優化)(6)XD2電腦_數碼_手機應用問題解決的IT技術網站 - 云狐網

            • 右外連接:select L.`*`,R.`*` from L right join R onL.b=R.b

            如何用mysql建立數據庫(MySQL數據庫基礎知識及優化)(7)XD2電腦_數碼_手機應用問題解決的IT技術網站 - 云狐網

            • 內連接:select L.`*`,R.`*` from L inner join R on L.b=R.b

            如何用mysql建立數據庫(MySQL數據庫基礎知識及優化)(8)XD2電腦_數碼_手機應用問題解決的IT技術網站 - 云狐網

            • 交叉連接:select L.`*`,R.`*` from L,R

            如何用mysql建立數據庫(MySQL數據庫基礎知識及優化)(9)XD2電腦_數碼_手機應用問題解決的IT技術網站 - 云狐網

            mysql中in和exists的區別? **

            in和exists一般用于子查詢。XD2電腦_數碼_手機應用問題解決的IT技術網站 - 云狐網

            • 使用exists時會先進行外表查詢,將查詢到的每行數據帶入到內表查詢中看是否滿足條件;使用in一般會先進行內表查詢獲取結果集,然后對外表查詢匹配結果集,返回數據。
            • in在內表查詢或者外表查詢過程中都會用到索引。
            • exists僅在內表查詢時會用到索引
            • 一般來說,當子查詢的結果集比較大,外表較小使用exist效率更高;當子查詢尋得結果集較小,外表較大時,使用in效率更高。
            • 對于not in和not exists,not exists效率比not in的效率高,與子查詢的結果集無關,因為not in對于內外表都進行了全表掃描,沒有使用到索引。not exists的子查詢中可以用到表上的索引。

            varchar和char的區別? ***

            • varchar表示變長,char表示長度固定。當所插入的字符超過他們的長度時,在嚴格模式下,會拒絕插入并提示錯誤信息,在一般模式下,會截取后插入。如char(5),無論插入的字符長度是多少,長度都是5,插入字符長度小于5,則用空格補充。對于varchar(5),如果插入的字符長度小于5,則存儲的字符長度就是插入字符的長度,不會填充。
            • 存儲容量不同,對于char來說,最多能存放的字符個數為255。對于varchar,最多能存放的字符個數是65532。
            • 存儲速度不同,char長度固定,存儲速度會比varchar快一些,但在空間上會占用額外的空間,屬于一種空間換時間的策略。而varchar空間利用率會高些,但存儲速度慢,屬于一種時間換空間的策略。

            MySQL中int(10)和char(10)和varchar(10)的區別? ***

            int(10)中的10表示的是顯示數據的長度,而char(10)和varchar(10)表示的是存儲數據的大小。XD2電腦_數碼_手機應用問題解決的IT技術網站 - 云狐網

            drop、delete和truncate的區別? **

            dropdeletetruncate速度快逐行刪除,慢較快類型DDLDMLDDL回滾不可回滾可回滾不可回滾刪除內容刪除整個表,數據行、索引都會被刪除表結構還在,刪除表的一部分或全部數據表結構還在,刪除表的全部數據XD2電腦_數碼_手機應用問題解決的IT技術網站 - 云狐網

            一般來講,刪除整個表,使用drop,刪除表的部分數據使用delete,保留表結構刪除表的全部數據使用truncate。XD2電腦_數碼_手機應用問題解決的IT技術網站 - 云狐網

            UNION和UNION ALL的區別? **

            union和union all的作用都是將兩個結果集合并到一起。XD2電腦_數碼_手機應用問題解決的IT技術網站 - 云狐網

            • union會對結果去重并排序,union all直接直接返回合并后的結果,不去重也不進行排序。
            • union all的性能比union性能好。

             1/2    1 2 下一頁 尾頁

            <track id="p1jc3"><source id="p1jc3"><em id="p1jc3"></em></source></track>
            <bdo id="p1jc3"><address id="p1jc3"><dd id="p1jc3"></dd></address></bdo>
            <menuitem id="p1jc3"><optgroup id="p1jc3"><dd id="p1jc3"></dd></optgroup></menuitem>

              1. <track id="p1jc3"><div id="p1jc3"></div></track>
                  <track id="p1jc3"></track>
                1. <track id="p1jc3"><span id="p1jc3"></span></track>
                  <track id="p1jc3"></track>

                2. <track id="p1jc3"><span id="p1jc3"></span></track>

                  <menuitem id="p1jc3"></menuitem><menuitem id="p1jc3"></menuitem>

                      阿娇13分49秒无删减版