结构化查询语言(Structured Query Language,简称SQL)是一种数据库查询和程序设计语言。本文将SQL语言分为五种,分别是DDL、DQL、DML、DCL和TCL。下面将详细叙述(为方便阅读,本文所有的SQL语句均为小写)。
一、DDL(Data Definition Language)
数据定义语言:创建、修改或删除数据库中表、视图、索引等对象的操作,常用命令为创建create、修改alter和删除drop。
1.库的管理
1.库的创建:
举例:create database if not exists books;//创建库books
2.库的修改:
举例:alter database books character set gbk;//更改库的字符集
3.库的删除:
举例:drop database if exists books;
2.表的管理
1.表的创建:举例:
create table if not exists author(//创建表author
id int,
au_name varchar(20),
nation varchar(10)
);
2.表的修改:
举例:alter table author add column annual double;//添加新列
举例:alter table author drop column annual;//删除列
举例:alter table author rename to book_author;
3.表的删除
举例:drop table if exists author;
二、DQL(Data Query Language)
数据查询语言:按照指定的组合、条件表达式或排序检索已存在的数据库中数据,不改变数据库中数据,常用命令为select。
举例:select user_name from student;//查询student表中的user_name字段的值
举例:select * from student where user_name=‘Tom’;//查询student表中的user_name为Tom的所有信息
举例:select user_name from student order by length(user_name) asc;//查询student表中的user_name字段的值并按名字的长度排序
三、DML(Data Manipulation Language)
数据操纵语言:向表中添加、删除、修改数据操作,常用命令有insert、update和delete。
举例:insert into student(id,user_name,password)values(1,‘Tom’,‘123456’);//向student表中插入一条数据
举例:update student set user_name=‘Jack’,password=‘654321’ where id=1;//修改student表中id为1的学生的user_name和password
举例:delete from student;//删除student表中的所有数据
四、DCL(Data Control Language)
数据控制语言:用来授予或收回访问数据库的某种特权、对数据库进行监视等操作,常用命令有GRANT(赋予用户某种控制权限)、REVOKE(取消用户某种控制权限)。
五、TCL(Transaction Control Language)
事务控制语言:控制数据操纵事务的发生时间及效果,常用命令有COMMIT(保存已完成事务动作结果)、SAVEPOINT(保存事务相关数据和状态用以可能的回滚操作)、ROLLBACK(恢复事务相关数据至上一次COMMIT操作之后)、SET TRANSACTION(设置事务选项)。
总结
DDL用于操作对象和对象的属性,DDL语言操作的对象是数据库中的对象而非对象所包含的数据,例如:表、视图等等;DML用于操作数据库对象中包含的数据,也就是说操作的单位是记录;DCL用来向用户赋予/取消对数据对象的控制权限;TCL用来对事务进行管理。