1、SQL基础

1.1SQL分类

DDL:数据库定义语言,这些语句定义了不同的数据库段、数据库、表。常见语句关键字create、drop、alter
DML:数据操纵语句,添加、删除、更新和查询数据库,常见关键字有insert、delete、update和select
DCL:数据控制语句,用于控制不同数据段直接的许可和访问级别的语句,主要包括grant、revoke等

1.2DDL语句

1、创建数据库
create database test1
2、删除数据库
drop database test1
3、创建表
create table emp(ename varchar(10),hiredate date)
4、查看创建表的SQL语句
show create table emp \G
\G:使得记录能够按照字段竖向排列,以便更好地显示内容较长的内容
5、删除表
drop table emp
6、修改表
语法:ALTER TABLE tablename MODIFY[COLUMN] column_definition [FIRST|AFTER col_name]
修改表字段:alter table emp modify ename varchar(20)
增加表字段:alter table emp add column age int(3)
删除表字段:alter table emp drop column age;
字段更名:alter table emp change age age1 int(4)
change的优点是可以修改列名称,modify则不能
更改表名:alter table emp rename emp1;

1.3DML语句

1、插入记录
insert into 表名 (字段名) values (v1,v2,v3)
2、更新记录
update 表名 set 字段名 = v1 where 条件
3、删除记录
delete from 表名 where 条件
4、查询记录
select 字段名 from 表名 where 条件

  • 查询不重复的记录:distinct
  • 排序和限制:order by|limit
    select * from emp order by sal;
    select * from emp order by sal limit 3;
  • 聚合:
    SELECT [field1,field2,...] fun_name FROM tablename 
    [WHERE where_condition][GROUP BY field1,field2,...]
    [WITH ROLLUP][HAVING where_condition]
    fun_name表示聚合操作,常用的有sum,count,max,min
    having是对聚合后的结果进行条件过滤,where在聚合前就过滤
  • 表连接:分为内连接外连接,内连接仅选出两张表中互相匹配的记录,而外连接会选出其他不匹配的记录
    //内连接
    //查询出所有雇员的名字和所在部门名称
    select ename,deptname from emp,dept where emp.deptno=dept.deptno;
    //外连接
    //左连接:包含所有的左边表中的记录甚至是右边表中没有和它匹配的记录
    select ename,deptname from emp left join dept on emp.deptno=dept.deptno
    //右连接:包含所有的右边表中的记录甚至是左边表中没有和它匹配的记录
    select ename,deptname from dept right join emp on emp.deptno=dept.deptno
  • 子查询:关键字包括in、not in、=、!=、exists、not exists等
  • 记录联合:关键字包括union、union all
    //将emp和dept表合并显示
    select deptno from emp union all select deptno from dept;

1.3DCL语句

主要是DBA用来管理系统中的对象权限时使用,开发人员很少使用。