MySQL复习-基础篇
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用来管理系统中的对象权限时使用,开发人员很少使用。