SQL语句分为三大类:
DDL(Data Definition Languages)语句:数据定义语言,这些语句定义了不同的数据段、数据库、表、列、索引等数据库对象。常用的语句关键字主要包括create、drop、alter等。
DML(Data Manipulation Language)语句:数据操纵语句,用于添加、删除、更新和查询数据库记录,并检查数据完整性。常用的语句关键字主要包括 insert、delete、update和select等。DCL(Data Control Language)语句:数据控制语句,用于控制不同数据段直接的许可和访问级别的语句。这些语句定义了数据库、表、字段、用户的访问权限和安全级别。主要的语句关键字包括grant、revoke等。
一、DDL语句
表的定义,结构的修改,不涉及内部数据
1.创建数据库
create database dbname
查看所有数据库
show databases
选择数据库
use dbname
查看表
show tables
2.删除数据库
drop database dbname
3.创建表
create table tablename (colunm_name_1 conlunm_type_1 constraints,....)
ex:create table emp (name varchar(10) ,hiredate date , deptno int(2) )
查看表定义
desc tablename
查看创建表的sql语句
show create table tablename \G
4.删除表
drop table tablename
5.修改表
(1)修改表类型 alter table tablename modify colname coltype ex:alter table emp modify ename varchar(20)
(2)增加表字段:alter table tablename add colunm colname coltype ex:alter table emp add colunm age int(3)
(3)删除表字段:alter table tablename drop colunm colname ex: alter table emp drop colunm age
(4)字段改名: alter table tablename change old_colname new_colname type ex:alter table emp change age age1 int(4)
(5)修改字段排列顺序:在上述语句后面都有个可选项,first|after colname 指放在在某一个字段前后 ex:alter table emp add colunm age int(3) after ename
(6)修改表名:alter table tablename rename new_tablename ex:alter table emp rename emp1
二、DML语句
对表记录数据的操作
1.插入
insert into tablename(field1,field2,...fieldn) values(value1,...valuen)[,(value1,...valuen),(value1,...valuen)..]
也可以不用指定字段名,但是后面的值得和表字段一一对应
2.更新
update tablename set field1=value1,...[where condition]
3.删除
delete from tablename [where condition]
不加where会把所有记录删除
4.查询
select * from tablename
(1)查询不重复的记录
select distinct colname from tablename
(2)条件查询
select * from tablename where conditions
(3)排序和限制
select * from tablename order by field1 [desc|asc],field2,...
desc 降序,asc升序,默认升序
select .. [limit offset_start ,row_count]
offset_start表示记录的起始偏移量,row_count表示显示的行数
(4)聚合
select [field1,..] fun_name
from tablename
[where condition]
[group by field
[with rollup]]
[having condition]
(5)表连接
内连接:找出互相匹配的记录
select ename,deptname from emp , dept where emp.deptno=dept.deptno
外连接:还会找出不匹配的记录
select ename,deptname form emp left join dept on emp.deptno=dept.deptno
(6)子查询
进行查询的时候,需要的条件是另外一个select语句的结果。查询关键字包括:in ,not in, = , != , exists,not exists
子查询和表连接可相互转换
(7)记录联合
将结果合并到一起显示
union,union all
后者将结果都显示出来,前者是后者基础上去除重复记录
三、DCL语句
主要是DBA用来管理系统中的对象权限时使用,一般的开发人员比较少用
grant revoke授予和收回权限