MySQL中SQL語句的分類


 1:數據定義語言(DDL

 

       用於創建、修改、和刪除數據庫內的數據結構,如:1:創建和刪除數據庫(CREATE DATABASE || DROP  DATABASE)2:創建、修改、重命名、刪除表(CREATE  TABLE || ALTER TABLE|| RENAME TABLE||DROP  TABLE)3:創建和刪除索引(CREATEINDEX  || DROP INDEX)

 

   2:數據查詢語言(DQL

 

        從數據庫中的一個或多個表中查詢數據(SELECT)

 

   3:數據操作語言(DML

 

         修改數據庫中的數據,包括插入(INSERT)、更新(UPDATE)和刪除(DELETE)

 

   4:數據控制語言(DCL

 

          用於對數據庫的訪問,如:1:給用戶授予訪問權限(GRANT;2:取消用戶訪問權限(REMOKE

 

問:什么時候使用DROP?什么時候使用DELETE?

 

答:由上可看出,對於結構刪除,如數據庫刪除、表刪除、索引刪除等當使用DROP;而對於數據的刪除則是DELETE.

 

                      管理數據庫和表

 

1:創建數據庫-----CREATE  DATABASE  數據庫名

 

        例如:CREATEDATABASE Instant

 

創建表-----CREATE TABLE 表名(列名  列數據類型  <列約束條件>);

 

      例如:CREATE TABLE Student(

 

                                 Id  INT  PRIMART KEY;

 

                                  Name VARCHAR(50));

 

注意:如創建本地臨時表(僅僅在創建臨時表的連接中可見),在表名前加#;如創建全局臨時表(對所有連接可見),在表名前加##

 

創建索引-----CREATE INDEX 索引名 ON 表名 (列名。。。)

 

       例如:(非唯一索引)CREATE INDEX NameIndex ON Friend (Nmae);

 

             (唯一索引)CREATE  UNIQUE INDEX NameIndex ON Friend (Name );

 

2:連接數據庫---USE 數據庫名

 

         例如:USEInstant;

 

3:刪除數據庫-----DROP DATABASE 數據庫名

 

         例如:DROPDATABASE Instant;

 

刪除表-----DROP TABLE 表名

 

       例如:DROP TABLE Student;

 

刪除索引---DROP INDEXFriend.PhoneNoIndex;(需指定表名和索引名)

 

4:復制表-----SELECT * FROM My_Friends FROM Friends;(此復制並不能復制表的約定)

 

   復制表結構不復制數據:SELECT * FROM My_FriendsFROM Friends WHERE 1=0;

 

5:修改表-----1:添加新列。。ALTERTABLE Friends ADD Address VARCHAR(50);

 

           2:更改定義...ALTERTABLE Friends MODIFY Phone DEFAULT('筆者就哦')

 

           3:刪除列。。ALTERTABLE Friends DROP CLOUMN PhoneNo;

 

                 保證數據完整性

 

一:分類:

 

1:實體完整性;

 

2:域完整性;

 

3:應用完整性;

 

4:用戶自定義完整性;

 

     二:實現:

 

1:創建非空約束------NOT NULL

 

2:設置主鍵約束------PRIMARY KEY

 

3:設置唯一約束-------UNIQUE

 

4:指定默認約束-------DEFAULT 

 

5:設置檢查約束-------CHECK

 

6:自動編號列----------IDENTITY

 

7:外鍵約束----------FOREIGN KEY

 

 

 

                 使用DML語句更改數據

 

 

 

1:插入數據:(單行)INSERT INTO 表名  列名 VALUES  列值;

 

      例如:INSERT INTOStudent (id,name) VALUES  (1,'張三');

 

 

 

              (多行)INSERT INTO 表名 列名 SELECT (語句)

 

      例如:INSERT INTOStudent(id,name ) SELECT id+2,name FROM Students;

 

 

 

2:表復制:SELECT 列名 INTO 新表名  FROM 表名;

 

      例如:SELECT  *  INTOStudent2  FROM  Student;

 

 

 

3:更新數據:UPDATE 表名 SET 列n = 新值。。 WHERE (過濾條件);

 

       例如:UPDATE Student SET id = 2,age =20 WHERE name = '張三'

更新來刪除數據:UPDATE Student age= NULLWHERE name = '張三'

4:刪除數據:DELETE FROM 表名 WHERE (過濾條

       例如:DELETE FROMStudent WHERE name = '張三

注:刪除全表數據除去過濾條件即可,也可使用TRUNCATE TABLE 表名

                  簡單數據查詢

 

1:查詢:SELECT 列名 FROM 表名

 

 

      例如:SELECT id FROM Student;

 

 

 

查詢全表數據:SELECT * FROM Student;

 

 

 

2: 表名前綴:SELECT Student.id FROM Student;

 

 

 

3:列表別名:SELECT T.列 A  AS  A,T.B AS B,T.列 C AS C FROM 表 AS T;

 

 

 

4:計算列:SELECT  id , mark*2 AS MarksFROM Student

 

          SELECT FirstName +  '  ' +LastName AS FullName FROM Student;

 

5:排除重復數據:SELECT DISTINCT 列A FROM 表名;\

 

     例如:SELECT  DISTINCT name FROM Student;

 

 

 

6:限定行數查詢:SELECT  TOP  rowCount ColumA,ColumB FROM Table;

 

     例如: SELECT TOP5 id , name FROM Student;

 

7:條件查詢 WHERE

 

8:范圍查詢 BETWEEN

 

9:定義集合關系 IN

 

10:模糊查詢 LIKE(單個字符 多個字符%)

 

11:空值數據控制:SELECT 列A ,列B FROM  表名 WHERE 列C IS NOT NULL;

 

                  SELECT 列A,列B FROM 表名 WHERE 列C IS NULL;

 

12:排序:升序。。ASC

 

          降序。。。DESC

 

                          聚合函數與分組

 

1SELECT COUNT(規范) FROM 表名;

 

  A:數目 COUNT

 

  B:總和 SUM

 

  C:平均值AVG

 

  D:最大值MAX

 

  F:最小值 MIN

 

2:分組 GROUP BY..

 

3:結果集處理:SELECT StudentID,AVG(Mark) AS AverageMark FROM StudentExam GROUP BYStudentID HAVING AVG(Mark) <50 OR AVG(Mark)>70;

 

4:EXISTS;

 

5:ALL;

 

6:ANY;

 

7:UNION;

 

8:保留重復行:UNION ALL;

 

9:交集和差分:INTERSECT EXCEPT

 

                         聯接

 

1:內聯接:JOIN

 

2:外連接:1:左外聯:LEFT JOIN或 LEFT  OUTER JOIN

 

           2:右外聯:RIGHTJOIN 或 RIGHT OUTERJOIN

 

            3:全外聯:FULL JOIN 或 FULL OUTER JOIN


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM