修改(alter):

//增加列
alter table 表名 add(
  列名 属性
);

//修改列属性
alter table 表名 modify(
  列名 属性
);

//删除列
alter table 表名 drop
  列名;

//修改表名
alter table old表名
rename to new表名;

权限:

//创建用户
create user 用户名@ip identified by '密码';
create user 用户名@‘%’ identified by '密码';不受ip限制

//登录
root用户:MySQL -u root -p
其它用户:mysql -u用户名 -p密码 -hIP

//给用户授权
grant 权限1,权限2,...,权限n on 数据库.* to 用户名@ip
权限:all create alter drop insert update delete select 

//撤销权限:
revoke 权限 on 数据库.* from 用户@ip

//查看权限:
show grant for 用户名@ip

//删除用户:
drop user 用户@ip

查询时取消公共部分:

select distinct * from 表名

列运算:

//在进行加法运算时,null加任何数都为null,这时用到一个函数ifnull(null,0),意思是若值为null变为0
//例如:
select *,sal+ifnull(comm,0) from emp;

字符串类型的连续运算(concat):

select concat(name,job) from emp;

给列起别名(as可以省略):

select concat(name,job)as 别名 from emp;
select concat(name,job) 别名 from emp;

模糊查询:

select * from emp where name like ‘张_’;(一个_代表一个字符)
select * from emp where name like ‘张%’;(一个%代表多个字符)

排序:

//默认asc升序,desc降序
select * from emp order by sal asc;
select * from emp order by sal asc,comm desc;

聚合函数:

//计数(有效行数,不为null):
select count(*) from emp;
//最大值
select max(sal) from emp;
//最小值
select min(sal) from emp;
//和
select sum(sal) from emp;
//平均数
select avg(sal) from emp;

分组查询:

select job,count(*) from emp group by job;
//若分组条件在分组前的
select job,count(*) from emp where sal > 15000 group by job;
//若分组条件在分组之后的
select job,count(*) from emp where sal > 15000 group by job having count(*) >= 2;

分页查询:

//从下标5开始查,查5行
select * from emp limit(5,5);

数据库的备份及恢复:

//数据库的导出(备份):
mysqldump -uroot -p**** 数据库名>路径.sql
//恢复数据库内容(先创建)
mysql -uroot -p**** 数据库<路径.sql
//登录mysql执行:
source 路径.sql

约束关键字及外键约束语法:

约束:
自增长auto_increment
唯一:unique

外键约束:
constraint 约束名 foreign key(本表列名) references 主表名(列名)


合并查询(要求两个表[结果集]的列数和属性相同,去掉all结果相同的合并只显示一条)

select *from ab
union all
select *from cd;

连接查询(内连接 ):

//标准:
select e.ename,e.sal,d.dname
from emp e inner join dept d
on e.deptno=d.deptno;
//方言:
select e.ename,e.sal,d.dname
from emp e , dept d
where e.deptno=d.deptno;
//自然:
select e.ename,e.sal,d.dname
from emp e  natural join dept d


外连接:

//外连接有主次,左外即以左表为主,那么查询记录中无论满足不满足条件,都会打印出来。不满足条件时,默认null来表示
//左外查询
select e.ename,e.sal,d.dname
from emp e left outer join dept d
on e.deptno=d.deptno;
//右外查询
select e.ename,e.sal,d.dname
from emp e right outer join dept d
on e.deptno=d.deptno;
//全外查询(mysql不支持)
select e.ename,e.sal,d.dname
from emp e full outer join dept d
on e.deptno=d.deptno;
//变相方法(全外)
select e.ename,e.sal,d.dname
from emp e left outer join dept d
on e.deptno=d.deptno
union
select e.ename,e.sal,d.dname
from emp e right outer join dept d
on e.deptno=d.deptno;