1. 程式人生 > >MySQL的sql語言分類DML、DQL、DDL、DCL、

MySQL的sql語言分類DML、DQL、DDL、DCL、

條件表達式 限制 ble word main 存在 定義 content 執行

SQL語言一共分為4大類:數據定義語言DDL,數據操縱語言DML,數據查詢語言DQL,數據控制語言DCL

1.數據定義語言DDL(Data Definition Language)

  對象: 數據庫和表

  關鍵詞: create alter drop truncate(刪除當前表再新建一個一模一樣的表結構)

  創建數據庫:create database school;

  刪除數據庫:drop database school;

  切換數據庫:use school;

  創建表:create table student(

      id int(4) primary key auto_increment,

      name varchar(20),

      score int(3)

    );

  查看數據庫裏存在的表:show tables;

  註意:

    varchar類型的長度是可變的,創建表時指定了最大長度,定義時,其最大值可以取0-65535之間的任意值,但記錄在這個範圍內,使用多少分配多少,

varchar類型實際占用空間為字符串的實際長度加1。這樣,可有效節約系統空間。varchar是mysql的特有的數據類型。

    char類型的長度是固定的,在創建表時就指定了,其長度可以是0-255之間的任意值。雖然char占用的空間比較大,但它的處理速度快。

  修改表:alter table student rename (to) teacher;

      alter table student add password varchar(20);

      alter table student change password pwd varchar(20);

      alter table student modify pwd int;

      alter table student drop pwd;

  刪除表:drop table student;

  查看生成表的sql語句:show create table student;

  查看表結構:desc student;

2.數據操縱語言DML(Data Manipulation Language)   

  對象:紀錄(行)

  關鍵詞:insert update delete

  插入:insert into student values(01,‘tonbby‘,99); (插入所有的字段)

     insert into student(id,name) values(01,‘tonbby‘); (插入指定的字段)

  更新:update student set name = ‘tonbby‘,score = ‘99‘ where id = 01;

  刪除:delete from tonbby where id = 01;

  註意:

     開發中很少使用delete,刪除有物理刪除和邏輯刪除,其中邏輯刪除可以通過給表添加一個字段(isDel),若值為1,代表刪除;若值為0,代表沒有刪除。

     此時,對數據的刪除操作就變成了update操作了。

  truncate和delete的區別:

    truncate是刪除表,再重新創建這個表。屬於DDL,delete是一條一條刪除表中的數據,屬於DML。

3.數據查詢語言DQL(Data Query Language)

  select ... from student where 條件 group by 分組字段 having 條件 order by 排序字段

  執行順序:from->where->group by->having->order by->select

  註意:group by 通常和聚合函數(avg(),count()...)一起使用 ,經常先使用group by關鍵字進行分組,然後再進行集合運算。

     group by與having 一起使用,可以限制輸出的結果,只有滿足條件表達式的結果才會顯示。

  having和where的區別:

    兩者起作用的地方不一樣,where作用於表或視圖,是表和視圖的查詢條件。having作用於分組後的記錄,用於選擇滿足條件的組。

4.數據控制語言DCL(Data Control Language)

  數據控制語言DCL用來授予或回收訪問數據庫的某種特權,並控制數據庫操縱事務發生的時間及效果,對數據庫實行監視,用戶,權限,事務等。

  grant:授權,rollback:回滾。commit:提交。

MySQL的sql語言分類DML、DQL、DDL、DCL、