欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

SQL語句匯總(一)——數(shù)據(jù)庫與表的操作以及創(chuàng)

系統(tǒng) 1704 0

首先,非常感謝大家對上篇博文的支持,真是讓本菜受寵若驚,同時對拖了這么久才出了此篇表示抱歉。  

前言:此文旨在匯總從建立數(shù)據(jù)庫到聯(lián)接查詢等絕大部分SQL語句。SQL語句雖不能說很多,但稍有時間不寫就容易出錯。博主希望通過此文來戰(zhàn)勝自己的健忘,如果大家認(rèn)可也可以保留起來。

?

"SQL"是 "Structured Query Language" 即“結(jié)構(gòu)化查詢語言”的簡稱,它是用來管理關(guān)系型數(shù)據(jù)庫的。

其包括:

–數(shù)據(jù)定義語言(DDL)
–數(shù)據(jù)查詢語言(DQL)
–數(shù)據(jù)操作語言(DML)
–數(shù)據(jù)控制語言(DCL)
?
創(chuàng)建數(shù)據(jù)庫:
          
            CREATE
          
          
            DATABASE
          
           數(shù)據(jù)庫名;
        
數(shù)據(jù)庫名命名規(guī)則:
- 第一個字符必須為下列之一:字母、下劃線、 # @ 符號。
- 后續(xù)字符由字母、十進(jìn)制數(shù)、下劃線、 # $ @ 符號組成。
- 不能為 RDBMS(數(shù)據(jù)庫管理系統(tǒng)) 的保留關(guān)鍵字。
- 不允許空格及其他字符。
?
本文以SQLyog軟件為例,創(chuàng)建數(shù)據(jù)庫如下:
          
            CREATE
          
          
            DATABASE
          
           test_sql
        

SQL語句匯總(一)——數(shù)據(jù)庫與表的操作以及創(chuàng)建約束

此圖為SQLyog的左側(cè)目錄欄,前三個為本地自帶數(shù)據(jù)庫。將SQL語句全部選中運(yùn)行(F8)后,F(xiàn)5刷新目錄欄,出現(xiàn)了我們創(chuàng)建的數(shù)據(jù)庫。

?

連接數(shù)據(jù)庫:

          
            USE
          
           test_sql;
        

刪除數(shù)據(jù)庫:

          
            DROP
          
          
            DATABASE
          
           test_sql;
        

?

接下來就開始創(chuàng)建表了,在創(chuàng)建表之前先列出幾種常用的數(shù)據(jù)類型

整數(shù)數(shù)據(jù)類型:

- INT 大小:4字節(jié)

- BIGINT 大小:8字節(jié)

浮點(diǎn)數(shù)據(jù)類型:

- FLOAT 大小:4字節(jié) 精度:7位小數(shù)

- DOUBLE 大小:8字節(jié) 精度:15位小數(shù)

字符串?dāng)?shù)據(jù)類型:

- VARCHAR 范圍:0-65535

日期數(shù)據(jù)類型:

- DATE 大小:3字節(jié) 格式:YYYY

- DATETIME 大小:8字節(jié) 格式:YYYY-MM-DD

?

創(chuàng)建表:

          
            CREATE
          
          
            TABLE
          
          
            <
          
          表名
          
            >
          
          
            

      (
          
          
            <
          
          列名
          
            >
          
          
            <
          
          列的數(shù)據(jù)類型
          
            >
          
          
            [
          
          
            <列的約束>
          
          
            ]
          
          );
        

如:

          
            CREATE
          
          
            TABLE
          
          
             t_student(

            student_name 
          
          
            VARCHAR
          
          (
          
            10
          
          
            ),

            student_birthday 
          
          
            DATETIME
          
          
            ,

            student_phone 
          
          
            INT
          
          
            ,

            student_score 
          
          
            FLOAT
          
          );
        

上表中我們創(chuàng)建了一張學(xué)生表,并定義了姓名、生日、電話、得分四列,列名后加上數(shù)據(jù)類型。 其中要注意的是VARCHAR需要在括號內(nèi)設(shè)置字符串的最大長度。

刷新之后就可以看到我們創(chuàng)建的數(shù)據(jù)庫中多了一張表:

SQL語句匯總(一)——數(shù)據(jù)庫與表的操作以及創(chuàng)建約束

選擇打開表可以直觀的看到內(nèi)容:

之后我們可以通過SQL語句也可以通過手動為表添加內(nèi)容。

?

刪除表:

          
            DROP
          
          
            TABLE
          
           t_student;
        

?

復(fù)制表:

          
            CREATE
          
          
            TABLE
          
           copy_student 
          
            SELECT
          
          
            *
          
          
            FROM
          
           t_student; 
        

如此我們便復(fù)制了一張名為 copy_student 的表,它包括 t_student 表中的內(nèi)容與結(jié)構(gòu)。 注意:復(fù)制表的同時表的約束并不能復(fù)制過來。

?

只復(fù)制表結(jié)構(gòu)而不復(fù)制表內(nèi)容:

          
            CREATE
          
          
            TABLE
          
           copy_student 
          
            SELECT
          
          
            *
          
          
            FROM
          
           t_student 
          
            WHERE
          
          
            1
          
          
            =
          
          
            0
          
          ; 
        

只需在WHERE條件中加入一個永不為真的值即可。

?

修改表

添加新列:

          
            ALTER
          
          
            TABLE
          
           t_student 
          
            ADD
          
           student_address 
          
            VARCHAR
          
          (
          
            50
          
          );
        

更改列:

          
            ALTER
          
          
            TABLE
          
           t_student 
          
            CHANGE
          
           student_birthday student_age 
          
            INT
          
          ;
        

這里我們把學(xué)生生日列改為學(xué)生年齡列, CHANGE 后第一個為舊列名,第二個為新列名。

刪除列:

          
            ALTER
          
          
            TABLE
          
           t_student 
          
            DROP
          
          
            COLUMN
          
           student_score;
        

?

數(shù)據(jù)庫完整性

保證數(shù)據(jù)庫的完整性是為了防止垃圾數(shù)據(jù)的產(chǎn)生,以免影響數(shù)據(jù)庫的執(zhí)行效率。這里簡要說一些,因?yàn)楫吘共皇抢碚擃惖奈恼拢@里主要是整理匯總SQL語句。

分類:

1.實(shí)體完整性
  保證一行數(shù)據(jù)是有效的
2.域完整性
  保證一列數(shù)據(jù)是有效的
3.引用完整性
  保證引用的編號是有效的
4.用戶自定義完整性
  保證自定義規(guī)則
?
實(shí)體完整性--主鍵約束:
PRIMARY KEY
主鍵列不能為空也不能重復(fù),通常加在表的id列中。
              
                CREATE
              
              
                TABLE
              
              
                 t_student(

            student_id 
              
              
                INT
              
              
                PRIMARY
              
              
                KEY
              
              
                ,

            student_name 
              
              
                VARCHAR
              
              (
              
                10
              
              
                ),

            student_birthday 
              
              
                DATETIME
              
              
                ,

            student_phone 
              
              
                INT
              
              
                ,

            student_score 
              
              
                FLOAT
              
              );
            

?

實(shí)體完整性--唯一約束:

UNIQUE

唯一約束是指給定列的值必須唯一,與主鍵約束不同的是它可以為空。通常加在表中不能重復(fù)的信息中,如電話號碼。

          
            CREATE
          
          
            TABLE
          
          
             t_student(

            student_id 
          
          
            INT
          
          
            PRIMARY
          
          
            KEY
          
          
            ,

            student_name 
          
          
            VARCHAR
          
          (
          
            10
          
          
            ),

            student_birthday 
          
          
            DATETIME
          
          
            ,

            student_phone 
          
          
            INT
          
          
            UNIQUE
          
          
            ,

            student_score 
          
          
            FLOAT
          
          );
        

?

域完整性--非空約束:

NOT NULL

非空約束可以加在諸如姓名等列上。

          
            CREATE
          
          
            TABLE
          
          
             t_student(

            student_id 
          
          
            INT
          
          
            PRIMARY
          
          
            KEY
          
          
            ,

            student_name 
          
          
            VARCHAR
          
          (
          
            10
          
          ) 
          
            NOT 
          
          
            NULL
          
          
            ,

            student_birthday 
          
          
            DATETIME
          
          
            ,

            student_phone 
          
          
            INT
          
          
            UNIQUE
          
          
            ,

            student_score 
          
          
            FLOAT
          
          );
        

?

域完整性--默認(rèn)約束:

設(shè)定默認(rèn)值后,可以在添加此列時不指定值,數(shù)據(jù)庫會自動填充設(shè)定的默認(rèn)值。

DEFAULT

現(xiàn)給學(xué)生表加入性別列,默認(rèn)值設(shè)為“男”,這樣添加新的學(xué)生信息時如果沒有填寫具體的性別均會默認(rèn)為男性:

          
            CREATE
          
          
            TABLE
          
          
             t_student(

            student_id 
          
          
            INT
          
          
            PRIMARY
          
          
            KEY
          
          
            ,

            student_name 
          
          
            VARCHAR
          
          (
          
            10
          
          ) 
          
            NOT 
          
          
            NULL
          
          
            ,

            student_sex 
          
          
            VARCHAR
          
          (
          
            5
          
          ) 
          
            DEFAULT
          
          
            '
          
          
          
            '
          
          
            ,

            student_birthday 
          
          
            DATETIME
          
          
            ,

            student_phone 
          
          
            INT
          
          
            UNIQUE
          
          
            ,

            student_score 
          
          
            FLOAT
          
          );
        

?

引用完整性--外鍵約束:

外鍵約束是指在外鍵關(guān)聯(lián)主鍵上強(qiáng)制加上一個約束,如果違反該約束,則不允許該條數(shù)據(jù)的修改。

創(chuàng)建主表--班級表:

          
            CREATE
          
          
            TABLE
          
          
             t_class(

              class_id 
          
          
            INT
          
          
            PRIMARY
          
          
            KEY
          
          
            ,

              class_name 
          
          
            VARCHAR
          
          (
          
            20
          
          ) 
          
            UNIQUE
          
          
            NOT 
          
          
            NULL
          
          
            );

            )
          
        

創(chuàng)建從表--學(xué)生表,并設(shè)置外鍵約束:

          
            CREATE
          
          
            TABLE
          
          
             t_student(

            student_id 
          
          
            INT
          
          
            PRIMARY
          
          
            KEY
          
          
            ,

            
            
              s_c_id 
            
          
          
            INT REFERENCES
          
          
            
               t_class(class_id),
            
            

            student_name 
          
          
            VARCHAR
          
          (
          
            10
          
          ) 
          
            NOT 
          
          
            NULL
          
          
            ,

            student_sex 
          
          
            VARCHAR
          
          (
          
            5
          
          ) 
          
            DEFAULT
          
          
            '
          
          
          
            '
          
          
            ,

            student_birthday 
          
          
            DATETIME
          
          
            ,

            student_phone 
          
          
            INT
          
          
            UNIQUE
          
          
            ,

            student_score 
          
          
            FLOAT
          
          
            CONSTRAINT FOREIGN KEY(s_c_id) REFERENCES t_class(class_id);
          
          ?
        

紅色標(biāo)識的就是創(chuàng)建外鍵約束的方法,個人認(rèn)為也是SQL語句中最難記的。

?

本篇博文先到這里,寫起來才發(fā)現(xiàn)SQL比想像的多啊,所以初步打算分為三篇。第二篇講數(shù)據(jù)增刪改查這些操作、聚合函數(shù)及分組,第三篇講SQL的子查詢、組合查詢以及連接查詢。

感謝您的瀏覽,希望能對您有所幫助。

SQL語句匯總(一)——數(shù)據(jù)庫與表的操作以及創(chuàng)建約束


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 日本亚洲国产精品久久 | 大开眼界 无删减 | 亚洲日本乱码在线观看 | jyzzjyzzjyzz日本在线观看 | 亚洲国产精品成 | 日韩欧美在线免费观看 | 国产五月色婷婷六月丁香视频 | 国产一区二区精品丝袜 | 免费看日韩A片无码视频软件 | 欧美 日韩 | 欧美国产高清 | 啪一啪日一日 | 三级国产短视频在线观看 | 国产69精品久久久久99尤物 | 五月天激激婷婷大综合丁香 | 九九在线精品视频 | 91麻豆国产极品在线观看洋子 | 久久精品视频大全 | 欧美a级毛毛片免费视频试播 | 2017无毒的黄网网址 | 在线精品国内外视频 | 天堂中文资源网 | 欧美一级网站 | 猛龙怪客| 日韩精品视频免费 | 欧美激情欧美激情在线五月 | 国产高清网址 | av在线播放亚洲 | 性强烈欧美一级毛片 | 香蕉一区 | 亚洲免费在线看 | 日日骚网| 欧美在线精品一区二区在线观看 | 亚洲一区二区在线视频 | 久久久99国产精品免费 | 久久亚洲国产午夜精品理论片 | 欧美一区二区三区四区视频 | 91看片在线观看 | 亚洲日本va中文字幕线 | 亚洲精品电影在线观看 | 高清一区二区亚洲欧美日韩 |