SQL结构化查询语言分类介绍


SQL:结构化查询语言,它是一种对关系型数据进行定义和操作的语言方法。

SQL结构化查询语言包含6个部分:

一、数据查询语言(DQL)

DQL全称Data Query Language,其语句也称“数据检索语句”,作用是从表中获取数据,确定数据怎样在应用程序给出。关键字SELECT是DQL(也是所有SQL)用的最多的动词,其他DQL常用的保留字WHERE,ORDER BY,GROUP BY和HAVING。这些DQL保留字常与其他类型的SQL语句一起使用。

  1. select(关键字)与order by(保留字)一起使用例子

    mysql> select user,host from mysql.user order by user;

    +-----------+-----------+

    | user      | host      |

    +-----------+-----------+

    | mysql.sys | localhost |

    | root      | localhost |

    | zabbix    | localhost |

    +-----------+-----------+

    3 rows in set (0.00 sec)

  2. select与from

    mysql> select user,host,authentication_string from mysql.user;

    +-----------+-----------+-------------------------------------------+

    | user      | host      | authentication_string                     |

    +-----------+-----------+-------------------------------------------+

    | root      | localhost | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |

    | mysql.sys | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |

    | zabbix    | localhost | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |

    +-----------+-----------+-------------------------------------------+

    3 rows in set (0.00 sec)

    说明:mysql5.7数据库下已经没有password这个字段了,password字段改成了authentication_string,用来查看用户的账户密码。

二、数据操作语言(DML)

DML全称:Data Manipulation Language,其语句包括动词INSERT,UPDATE和DELETE。它们分别用于添加,修改和删除表中的行(数据)。也称为动作查询语言。

  1. 删除表中的数据

    先查看下mysql(库),user(表)中的数据

    mysql> select user,host from mysql.user;

    +-----------+---------------+

    | user      | host          |

    +-----------+---------------+

    | nginx     | 192.169.5.144 |

    | mysql.sys | localhost     |

    | root      | localhost     |

    | zabbix    | localhost     |

    +-----------+---------------+

    4 rows in set (0.00 sec)

    然后把mysql库user表中的nginx删除掉:

    mysql> delete from mysql.user where user='nginx' and host='192.169.5.144';

    Query OK, 1 row affected (0.03 sec)

    说明:and host='192.169.5.144'可以不加,即:delete from mysql.user where user='nginx';

    最后,再次查看mysql(库),user(表)中的用户信息

    mysql> select user,host from mysql.user;

    +-----------+-----------+

    | user      | host      |

    +-----------+-----------+

    | mysql.sys | localhost |

    | root      | localhost |

    | zabbix    | localhost |

    +-----------+-----------+

    3 rows in set (0.00 sec)

    说明:我们可以看到,nginx这个用户已经被删除啦!

  2. 添加和修改表中的数据

    查看:http://wutengfei.blog.51cto.com/10942117/1905963

三、事务处理语言(TPL)

它的语句能确保被DML语句影响的表的所有行及时得以更新。TPL语言包括BEGIN TRANSACTION,COMMIT和ROLLBACK。

说明:MySQL默认执行commit的,Oracle需要自己手动执行commit等TPL语言。

四、数据控制语言(DCL)

DCL全称(Data Control Language),它的语句通过GRANT或REVOKE获得许可。确定单个用户和用户组对数据库对象的访问。某些RDBMS可用GRANT或REVOKE控制对表单个列的访问。

五、数据定义语言(DDL)

DDL全称(Data Definition Language),其语句包括动词CREATE和DROP。在数据库中创建新表或删除表;为表加入索引等。DDL包括许多与人数据库目录中获得数据有关的保留字。它也是动作查询的一部分。

六、指针控制语言(CCL)

它的语句,像DECLARE CURSOR,FETCH INTO和UPDATE WHERE CURRENT用于对一个或多个表单独行的操作。

SQL结构化查询语言分类介绍_SQL