SQL概念及DDL語句


SQL概念

SQL全稱(Structured Query Language):結構化查詢語句,是一種特殊目的的編程語言,是一種數據庫查詢和程序設計語言,用於存取數據以及查詢和管理關系型數據庫。
其實就是定義了所有關系型數據庫的規則。但是每一種數據庫的sql語句操作方式存在不一樣的地方,也把這種不一樣的地方稱為該數據庫的'方言'

SQL通用語句

  1. SQL語句可以單行或多行書寫,以分號結尾
  2. 可以使用空格和縮進來增強語句的可讀性
  3. MySQL數據庫的SQL 語句不區分大小寫, 關鍵字建議大寫
  4. 注釋
    • 單行注釋: -- 注釋內容 (--后要加空格) 或 # 注釋內容(mysql特有)
    • 多行注釋: /* 注釋內容 */

SQL語句分類

  1. DDL(Data Definition Language): 數據定義語言
    • 用來定義數據庫對象:數據庫,表,列等。 關鍵字:create,drop, alter等。
  2. DML(Data Manipulation Language): 數據操作語言
    • 用來對數據庫中的表進行增刪改操作。 關鍵字:insert,delete,update等。
  3. DQL(Data Query Language): 數據查詢語言
    • 用來查詢數據庫中表的記錄(數據)。 關鍵字:select, where等
  4. DCL(Data Control Language): 數據控制語言
    • 用來定義數據庫的訪問控制權限和安全級別,及創建用戶。關鍵字: grant, revoke等

DDL: 操作數據庫、表

  1. 操作數據庫:CRUD(增刪改查)

    1. C(Create): 創建

      • 創建數據庫: CREATE DATABASE 數據庫名稱;
      • 創建數據庫,判斷是否存在,不存在則創建:CREATE DATABASE IF NOT EXISTS 數據庫名稱;
      • 創建數據庫並指定其字符集: CREATE DATABASE 數據庫名稱 CHARACTER SET 字符集;
        示例:
          CREATE DATABASE IF NOT EXISTS dbName CHARACTER SET gbk;
      
    2. R(Retrieve): 查詢

      • 查詢所有數據庫的名稱: SHOW DATABASES;
        示例:
        查詢所有數據庫
      • 查詢某個數據庫的創建語句: SHOW CREATE DATABASE 數據庫名稱;
        示例:
        數據庫創建語句

      從上圖可以看出,在查詢數據庫創建語句時,也可以看到數據庫的字符集,所以通過該語句也可以看出數據庫的字符集

    3. U(Update): 修改

      • 修改數據庫的字符集: ALTER DATABASE dbName CHARACTER SET 字符集名稱;
        示例:
        更改數據庫字符集
    4. D(Delete): 刪除

      • 刪除數據庫: DROP DATABASE 數據庫名稱;
      • 判斷數據庫存在,存在則刪除: DROP DATABASE IF EXISTS 數據庫名稱;
    5. 使用數據庫

      只有使用了數據庫,才能對數據庫里面的表等進行操作。若沒有使用某一個數據庫,而直接對其表進行操作,這樣會發生錯誤,SQL語句並不會執行。

      • 查詢當前正在使用的數據庫名稱: select database();
        示例:
        查詢正在使用的數據庫

      NULL代表了當前沒有使用任何數據庫,

      • 使用數據庫: USE 數據庫名稱;
  2. 操作表

    1. C(Create): 創建
      • 語法:
          CREATE TABLE tableName(
              列名1 數據類型1,
              列名2 數據類型2,
              ....
              列名n 數據類型n,
              [添加約束...]
          );
      
      • 注意:最后一行不用加逗號(,);加了就會報錯
      • 數據庫中常用的數據類型:
        1. 整數類型: int, bigint 等
        2. 浮點數: float,double,decimal 浮點數可以指定精度 如decimal(11,2) 代表了該浮點數的長度為11位,小數位只保留2位
        3. 日期類型:
          • date: 只包含年月日 yyyy-MM-dd;
          • datetime: 包含年月日時分秒 yyyy-MM-dd HH:mm:ss;
          • timestamp: 時間戳類型 包含年月日時分秒 yyyy-MM-dd HH:mm:ss; 如果在插入數據時,不給時間戳類型賦值,或賦值為null,則默認使用當前的系統時間,來自動賦值。並且只要對該類型所在的行進行CUD(增刪改)操作,這個類型的字段會自動更新成當前系統時間
        4. 字符串類型: varchar 如: password varchar(16) 指定該字段的最大字符
      • 創建表示例:
        
            CREATE TABLE student(
                stu_id INT(32),  
                stu_name VARCHAR(20),  
                stu_age INT,  
                stu_score DECIMAL(4,1),  
                stu_birthday DATE,  
                insert_time TIMESTAMP  
            );
        
        
      • 復制表: CREATE TABLE 表名 like 被復制的表名;
    2. R(Retrieve): 查詢
      • 查詢某個數據庫中所有表名稱: SHOW TABLES;
      • 查詢表的結構: DESC 表名;
    3. U(Update): 修改
      1. 修改表名:
        ALTER TABLE 表名 RENAME TO 新表名;
      2. 修改表的字符集:
        ALTER TABLE 表名 CHARACTER SET 字符集名稱;
      3. 添加一列:
        ALTER TABLE 表名 ADD 列名 數據類型
      4. 修改列名 類型:
        ALTER TABLE 表名 CHANGE 列名 新列名 新數據類型;
        只修改數據類型
        ALTER TALBE 表名 MODIFY 列名 新數據類型;
      5. 刪除列:
        ALTER TABLE 表名 DROP 列名;
    4. D(Delete):刪除
      • DROP TABLE 表名; 或者 DROP TABLE IF EXISTS 表名;


免責聲明!

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



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