Li Jinli
不必因昨天的眼泪、湿了今天的太阳。

having子句

eg1:查询部门平均底薪超过2000的员工数量,你是不是会这样写?

SELECT deptno, COUNT(*)

FROM t_emp

WHERE AVG(sal) >= 2000

GROUP BY deptno;

 

结果运行出错,WHERE子句不允许出现聚合函数。HAVING子句的出现主要是为了WHERE子句不能使用聚合函数的问题,HAVING子句不能独立存在,必须依赖于GROUP BY子句而存在,GROUP BY 执行完成就立即执行HAVING子句

SELECT deptno, COUNT(*)

FROM t_emp

GROUP BY deptno HAVING AVG(sal) >= 2000;

 

如果按照数字1分组,MySQL会按照SELECT子句中的列进行分组,上例中group by deptno就可以写成group by 1。

---------------------------------------------------------------------------

order by子句:排序, 根据某个字段进行升序或者降序排序, 依赖校对集.

Order by 字段名 [asc|desc]; -- asc是升序(默认的),desc是降序

e.g:SELECT empno, ename, sal, deptno FROM t_emp ORDER BY sal DESC;

 

---------------------------------------------------------------------------

limit 子句

语法1:限制长度(数据量)

limit 数据量;

语法2:限制起始位置,限制数量。

limit 起始位置,长度;

--------------------------------------------------------------------------

二、基本命令

创建数据库

create database 数据库名;

create database 数据库名 character set 字符集;    //(字符集=数据库编码)

创建之后修改数据库编码:

alter database 数据库名 character set=编码;

查看数据库服务器中的所有数据库

show databases;

查看某个数据库的信息

show create database 数据库名;

删除数据库

drop database 数据库名;

切换数据库

use 数据库名;

查看正在使用的数据库

select database();

创建表

create table 表名(字段名 类型(长度) 约束,字段名 类型(长度) 约束);

eg:创建分类表

 

查看数据库中所有表:

show tables;

删除表

drop table 表名;

修改表结构格式(常用)

给表增加新的列:

alter table 表名 add 列名 类型(长度) 约束;   //修改表添加列

eg:为sort表添加一个新字段  分类描述,类型为varchar(20)

alter table sort add sdesc varchar(20);

添加多个字段分类:

把新的字段添加到表里某个字段后边而不是添加到表末尾:

alter table 表名 add 列名 类型(长度) 约束 after 某个字段;

修改列的类型长度及约束:

alter table 表名 modify 列名 类型(长度) 约束;

修改列名:

alter table 表名 change 旧列名 新列名 类型(长度) 约束;

删除表中的列

alter table 表名 drop 列名;

修改表名

rename table 表名 to 新表名;

修改表的字符集

alter table 表名character set 字符集;

posted on 2021-12-21 10:05  lijinli  阅读(44)  评论(0)    收藏  举报