mysql是mysqlAB公司的。
mysqlAB公司被sun公司收购了。
sun公司又被Oracle公式收购了。
mysql现在是由oracle公司负责维护。
Oracle是收费的;mysql是免费的
在行尾;Shift;Home键选中当前行。 在行尾;Ctrl;Shift;Home键 从光标处一直选中文本开头 在行首;Shift;End键选中当前行。 在行首;Shift;End键 从光标处一直选中文本末尾 运行已选择的;Ctrl;Shift;R。 复制当前行;Ctrl;D。 Ctrl;q 打开查询窗口 Ctrl;; 注释MySQL语句 ctrl;shift ;/ 解除注释 ctrl;r 运行查询窗口的sql语句 ctrl;shift;r 只运行选中的sql语句 F6 打开一个mysql命令行窗口 ctrl;l 删除一行 ctrl;n 打开一个新的查询窗口 ctrl;w 关闭一个查询窗口
数据查询语言;凡是带select关键字的都是查询语句都是DLQ
select 字段名 from 表名
#查看kc表中的所有数据
mysql> select * from kc;
;--------;--------------;----------;------;
| 课程号 | 课程名 | 开课学期 | 学分 |
;--------;--------------;----------;------;
| 101 | 计算机基础 | 1 | 3 |
| 102 | c语言 | 1 | 3 |
| 206 | 高等数学 | 3 | 3 |
| 208 | 数据结构 | 5 | 6 |
| 209 | 操作系统 | 6 | 3 |
| 210 | 计算机组装 | 4 | 4 |
| 212 | ORACLE数据库 | 2 | 5 |
| 301 | 计算机网络 | 1 | 4 |
| 302 | 软件工程 | 7 | 2 |
;--------;--------------;----------;------;
9 rows in set (0.01 sec)
#distinct消除重复数据
mysql> select distinct(学分) from kc;
;------;
| 学分 |
;------;
| 3 |
| 6 |
| 4 |
| 5 |
| 2 |
;------;
5 rows in set (0.00 sec)
# 查询多个字段
mysql> select 课程号,课程名 from kc;
;--------;--------------;
| 课程号 | 课程名 |
;--------;--------------;
| 102 | c语言 |
| 212 | ORACLE数据库 |
| 209 | 操作系统 |
| 208 | 数据结构 |
| 101 | 计算机基础 |
| 210 | 计算机组装 |
| 301 | 计算机网络 |
| 302 | 软件工程 |
| 206 | 高等数学 |
;--------;--------------;
9 rows in set (0.00 sec)
#列起别名
mysql> select 课程号 as jkj from kc;
;-----;
| jkj |
;-----;
| 102 |
| 212 |
| 209 |
| 208 |
| 101 |
| 210 |
| 301 |
| 302 |
| 206 |
;-----;
9 rows in set (0.00 sec)
mysql> select 课程号 as ;jkj hkh; from kc;
;---------;
| jkj hkh |
;---------;
| 102 |
| 212 |
| 209 |
| 208 |
| 101 |
| 210 |
| 301 |
| 302 |
| 206 |
;---------;
9 rows in set (0.00 sec)
#注意;
#as可省略
#双引号不标准;在mysql中可用;在Oracle中不可用
#单引号标准;都可用
#列参与数学运算
mysql> select 课程名 课程,学分*18 分数 from kc;
;--------------;------;
| 课程 | 分数 |
;--------------;------;
| 计算机基础 | 54 |
| c语言 | 54 |
| 高等数学 | 54 |
| 数据结构 | 108 |
| 操作系统 | 54 |
| 计算机组装 | 72 |
| ORACLE数据库 | 90 |
| 计算机网络 | 72 |
| 软件工程 | 36 |
;--------------;------;
9 rows in set (0.00 sec)
#根据生日求年龄
select 姓名,year(now())-year(出生日期) as 年龄 from 信息管理学生表;
= 等于
><或!= 不等于
< 小于
<= 小于等于
> 大于
>= 大于等于
between……and……两个值之间;等同于 >= and <=
is null 为null(is not null 不为空)
and或&& 并且
or或|| 或
in 包含;相当于多个or;not in 不在这个范围中;
not 取非;;主要用在is或in中;
any 满足子条件查询的任意一条件
all 满足子条件查询的所有条件
#eg;
mysql> select * from kc;
;--------;--------------;----------;------;
| 课程号 | 课程名 | 开课学期 | 学分 |
;--------;--------------;----------;------;
| 101 | 计算机基础 | 1 | 3 |
| 102 | c语言 | 1 | 3 |
| 206 | 高等数学 | 3 | 3 |
| 208 | 数据结构 | 5 | 6 |
| 209 | 操作系统 | 6 | 3 |
| 210 | 计算机组装 | 4 | 4 |
| 212 | ORACLE数据库 | 2 | 5 |
| 301 | 计算机网络 | 1 | 4 |
| 302 | 软件工程 | 7 | 2 |
;--------;--------------;----------;------;
9 rows in set (0.00 sec)
mysql> select * from kc where 学分 != 3;
;--------;--------------;----------;------;
| 课程号 | 课程名 | 开课学期 | 学分 |
;--------;--------------;----------;------;
| 208 | 数据结构 | 5 | 6 |
| 210 | 计算机组装 | 4 | 4 |
| 212 | ORACLE数据库 | 2 | 5 |
| 301 | 计算机网络 | 1 | 4 |
| 302 | 软件工程 | 7 | 2 |
;--------;--------------;----------;------;
5 rows in set (0.00 sec)
like 模糊查询;支持%或下划线匹配
%匹配任意个字符
一个_只能匹配一个字符
#找出课程号中含有1的
mysql> select * from kc where 课程号 like %1%;
;--------;--------------;----------;------;
| 课程号 | 课程名 | 开课学期 | 学分 |
;--------;--------------;----------;------;
| 101 | 计算机基础 | 1 | 3 |
| 102 | c语言 | 1 | 3 |
| 210 | 计算机组装 | 4 | 4 |
| 212 | ORACLE数据库 | 2 | 5 |
| 301 | 计算机网络 | 1 | 4 |
;--------;--------------;----------;------;
5 rows in set (0.00 sec)
#找出课程号开头为1的
mysql> select * from kc where 课程号 like ;1%;
;--------;------------;----------;------;
| 课程号 | 课程名 | 开课学期 | 学分 |
;--------;------------;----------;------;
| 101 | 计算机基础 | 1 | 3 |
| 102 | c语言 | 1 | 3 |
;--------;------------;----------;------;
2 rows in set (0.01 sec)
#找出课程号结尾为1的
mysql> select * from kc where 课程号 like %1;;
;--------;------------;----------;------;
| 课程号 | 课程名 | 开课学期 | 学分 |
;--------;------------;----------;------;
| 101 | 计算机基础 | 1 | 3 |
| 301 | 计算机网络 | 1 | 4 |
;--------;------------;----------;------;
2 rows in set (0.00 sec)
#找出课程名第三个为机的
mysql> select * from kc where 课程名 like ;__机%;
;--------;------------;----------;------;
| 课程号 | 课程名 | 开课学期 | 学分 |
;--------;------------;----------;------;
| 101 | 计算机基础 | 1 | 3 |
| 210 | 计算机组装 | 4 | 4 |
| 301 | 计算机网络 | 1 | 4 |
;--------;------------;----------;------;
3 rows in set (0.00 sec)
group by
#查找xs表中各专业男生的人数
mysql> select 专业名,count(性别) as 男生人数 from xs where 性别=;男; group by 专业名 ;
;----------;----------;
| 专业名 | 男生人数 |
;----------;----------;
| 软件技术 | 8 |
| 网络技术 | 3 |
| 信息管理 | 1 |
| 建筑智能 | 1 |
;----------;----------;
4 rows in set (0.00 sec)
#为什么分组函数不能直接使用在where后面?
mysql> select 分数 from cj where 分数>max(分数);
ERROR 1054 (42S22): Unknown column ;分数; in ;field list; //报错
因为分组函数在使用时必须分组之后才能使用;where执行的时候还没有分组;所以where之后不能用分组函数
#查询前三条数据记录
mysql> select * from xs limit 3;
;--------;--------;----------;------;------------;--------;------;
| 学号 | 姓名 | 专业名 | 性别 | 出生日期 | 总学分 | 备注 |
;--------;--------;----------;------;------------;--------;------;
| 001101 | 王金华 | 软件技术 | 男 | 1990-02-10 | NULL | NULL |
| 001102 | 程周杰 | 软件技术 | 男 | 1991-02-01 | NULL | NULL |
| 001103 | 王元 | 软件技术 | 男 | 1989-10-06 | NULL | NULL |
;--------;--------;----------;------;------------;--------;------;
3 rows in set (0.01 sec)
#查询第四条数据记录
mysql> select * from xs limit 3,1;
;--------;--------;----------;------;------------;--------;------;
| 学号 | 姓名 | 专业名 | 性别 | 出生日期 | 总学分 | 备注 |
;--------;--------;----------;------;------------;--------;------;
| 001104 | 严蔚敏 | 信息管理 | 女 | 1990-08-26 | NULL | NULL |
;--------;--------;----------;------;------------;--------;------;
1 row in set (0.00 sec)
#查询最高分学生的详细信息
mysql> select distinct cj.学号,姓名,成绩 from xs,cj where cj.学号=xs.学号 and 成绩 = (select max(成绩) from cj) order by 成绩 desc;
;--------;--------;------;
| 学号 | 姓名 | 成绩 |
;--------;--------;------;
| 001110 | 张晓晖 | 95.0 |
;--------;--------;------;
1 row in set (0.00 sec)
#查询及格学生的详细信息
mysql> select distinct 姓名 as 及格学生的姓名,课程号,成绩 from xs,cj where cj.学号=xs.学号 && 成绩 in (select 成绩 from cj where 成绩 >= 60) order by 成绩 desc;
;----------------;--------;------;
| 及格学生的姓名 | 课程号 | 成绩 |
;----------------;--------;------;
| 张晓晖 | 101 | 95.0 |
| 张晓晖 | 102 | 95.0 |
| 李明 | 101 | 85.0 |
| 严蔚敏 | 102 | 84.0 |
| 张飞 | 102 | 83.0 |
| 王元 | 206 | 81.0 |
| 李伟 | 206 | 80.0 |
| 刘超 | 102 | 80.0 |
| 马妮啦 | 102 | 79.0 |
| 王金华 | 102 | 78.0 |
| 程周杰 | 102 | 78.0 |
| 程周杰 | 206 | 78.0 |
| 刘超 | 101 | 78.0 |
| 王金华 | 206 | 76.0 |
| 李长江 | 206 | 76.0 |
| 李伟 | 102 | 71.0 |
| 王元 | 102 | 70.0 |
| 张飞 | 206 | 70.0 |
| 刘超 | 206 | 68.0 |
| 张飞 | 101 | 66.0 |
| 严蔚敏 | 101 | 65.0 |
| 严蔚敏 | 206 | 65.0 |
| 李伟 | 101 | 65.0 |
| 李明 | 102 | 64.0 |
| 刘敏 | 101 | 63.0 |
| 王元 | 101 | 62.0 |
| 王金华 | 101 | 61.0 |
| 李天飞 | 206 | 60.0 |
;----------------;--------;------;
28 rows in set, 1 warning (0.00 sec)
mysql> create table rom414 like xs;
Query OK, 0 rows affected (0.03 sec)
mysql> insert into rom414 select * from xs limit 20,4;
Query OK, 4 rows affected (0.01 sec)
Records: 4 Duplicates: 0 Warnings: 0
mysql> select * from rom414;
;--------;--------;--------;------;------------;--------;------;
| 学号 | 姓名 | 专业名 | 性别 | 出生日期 | 总学分 | 备注 |
;--------;--------;--------;------;------------;--------;------;
| 200308 | 郑明鑫 | NULL | 男 | 2003-04-05 | NULL | NULL |
| 200326 | 唐辉阳 | NULL | 男 | 2003-02-06 | NULL | NULL |
| 200327 | 徐斌 | NULL | 男 | 2003-03-05 | NULL | NULL |
| 200336 | 李昌城 | NULL | 男 | 2003-06-03 | NULL | NULL |
;--------;--------;--------;------;------------;--------;------;
4 rows in set (0.00 sec)
update语句中使用子查询
#在成绩表中把学C语言的学生成绩全部加5
mysql> update cj set 成绩=成绩;5 where 课程号 = (select 课程号 from kc where 课程名 = ;c语言;);
Query OK, 10 rows affected (0.01 sec)
Rows matched: 10 Changed: 10 Warnings: 0
#根据生日求年龄并写入到表格
update 信息管理学生表 set 年龄 = year(now())-year(出生日期);
在delete语句中使用子查询
#在成绩表中删除张飞c语言的成绩
mysql> delete from cj where 学号 = (select 学号 from xs where 姓名=;张飞;) && 课程号 = (select 课程号 from kc where 课程名 = ;c语言;);
Query OK, 1 row affected, 1 warning (0.01 sec)
#查询kc表;以学分为升序排序
mysql> select * from kc order by 学分 asc; //默认是升序
;--------;--------------;----------;------;
| 课程号 | 课程名 | 开课学期 | 学分 |
;--------;--------------;----------;------;
| 302 | 软件工程 | 7 | 2 |
| 101 | 计算机基础 | 1 | 3 |
| 102 | c语言 | 1 | 3 |
| 206 | 高等数学 | 3 | 3 |
| 209 | 操作系统 | 6 | 3 |
| 210 | 计算机组装 | 4 | 4 |
| 301 | 计算机网络 | 1 | 4 |
| 212 | ORACLE数据库 | 2 | 5 |
| 208 | 数据结构 | 5 | 6 |
;--------;--------------;----------;------;
9 rows in set (0.00 sec)
#查询kc表;以学分为降序排序
mysql> select * from kc order by 学分 desc;
;--------;--------------;----------;------;
| 课程号 | 课程名 | 开课学期 | 学分 |
;--------;--------------;----------;------;
| 208 | 数据结构 | 5 | 6 |
| 212 | ORACLE数据库 | 2 | 5 |
| 210 | 计算机组装 | 4 | 4 |
| 301 | 计算机网络 | 1 | 4 |
| 101 | 计算机基础 | 1 | 3 |
| 102 | c语言 | 1 | 3 |
| 206 | 高等数学 | 3 | 3 |
| 209 | 操作系统 | 6 | 3 |
| 302 | 软件工程 | 7 | 2 |
;--------;--------------;----------;------;
9 rows in set (0.00 sec)
#多个字段排序
要求查询课程名和学分;学分按升序排序;如果学分相同;就按课程名以升序排序
mysql> select 课程名,学分 from kc order by 学分,课程名;
;--------------;------;
| 课程名 | 学分 |
;--------------;------;
| 软件工程 | 2 |
| c语言 | 3 |
| 操作系统 | 3 |
| 计算机基础 | 3 |
| 高等数学 | 3 |
| 计算机组装 | 4 |
| 计算机网络 | 4 |
| ORACLE数据库 | 5 |
| 数据结构 | 6 |
;--------------;------;
9 rows in set (0.00 sec)
mysql> select 课程名,学分 from kc order by 2;//这里的2表示第二列;不建议这样写
;--------------;------;
| 课程名 | 学分 |
;--------------;------;
| 软件工程 | 2 |
| 计算机基础 | 3 |
| c语言 | 3 |
| 高等数学 | 3 |
| 操作系统 | 3 |
| 计算机组装 | 4 |
| 计算机网络 | 4 |
| ORACLE数据库 | 5 |
| 数据结构 | 6 |
;--------------;------;
9 rows in set (0.00 sec)
#找出学分在3到5之间的数据按学分降序进行排列
mysql> select * from kc where 学分 between 3 and 5 order by 学分 desc;
;--------;--------------;----------;------;
| 课程号 | 课程名 | 开课学期 | 学分 |
;--------;--------------;----------;------;
| 212 | ORACLE数据库 | 2 | 5 |
| 210 | 计算机组装 | 4 | 4 |
| 301 | 计算机网络 | 1 | 4 |
| 101 | 计算机基础 | 1 | 3 |
| 102 | c语言 | 1 | 3 |
| 206 | 高等数学 | 3 | 3 |
| 209 | 操作系统 | 6 | 3 |
;--------;--------------;----------;------;
7 rows in set (0.00 sec)
mysql> select database();
;------------;
| database() |
;------------;
| cjgl1 |
;------------;
1 row in set (0.00 sec)
第一步;from
第二步;where
第三步;group by
第四步;select
第五步;order by;排序总是最后执行;
#不查看表中的数据;只查看结构
mysql> desc kc;
;----------;------------------;------;-----;---------;-------;
| Field | Type | Null | Key | Default | Extra |
;----------;------------------;------;-----;---------;-------;
| 课程号 | char(3) | NO | PRI | NULL | |
| 课程名 | varchar(20) | NO | UNI | NULL | |
| 开课学期 | tinyint unsigned | NO | | 1 | |
| 学分 | tinyint unsigned | YES | | NULL | |
;----------;------------------;------;-----;---------;-------;
4 rows in set (0.01 sec)
**数据操作语言;**凡是对数据进行增删改操作的语句都是DML
insert delete update
insert 增
delete 删
update 改
这个主要操作表中的data
mysql> desc xs;
;----------;------------------;------;-----;---------;-------;
| Field | Type | Null | Key | Default | Extra |
;----------;------------------;------;-----;---------;-------;
| 学号 | char(6) | NO | PRI | NULL | |
| 姓名 | char(8) | NO | | NULL | |
| 专业名 | varchar(20) | YES | | NULL | |
| 性别 | char(2) | NO | | 男 | |
| 出生日期 | date | NO | | NULL | |
| 总学分 | tinyint unsigned | YES | | NULL | |
| 备注 | text | YES | | NULL | |
;----------;------------------;------;-----;---------;-------;
7 rows in set (0.01 sec)
mysql> insert into xs values(;200201;,;张明;,;计算机应用技术;,;男;,;1998-8-5;,;9;,;学习委员;);
Query OK, 1 row affected (0.01 sec)
插入数据就录的一部分
mysql> insert into xs(学号,姓名,性别,出生日期) values(;200326;,;唐辉阳;,;男;,;2003-2-6;);
Query OK, 1 row affected (0.01 sec)
插入多行数据
mysql> insert into xs(学号,姓名,性别,出生日期)
-> values
-> (;200336;,;李昌城;,;男;,;2003-6-3;),
-> (;200327;,;徐斌;,;男;,;2003-3-5;),
-> (;200308;,;郑明鑫;,;男;,;2003-4-5;);
Query OK, 3 rows affected (0.01 sec)
Records: 3 Duplicates: 0 Warnings: 0
mysql> update xs
-> set 姓名=;魏硕; where 学号=;200201;;
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> delete from xs
-> where 姓名=;高远;;
Query OK, 1 row affected (0.01 sec)
使用truncate语句删除数据
;清空数据记录;
mysql> select * from sss;
;-------;-------;---------;------;--------;
| uid | uname | ugender | uedu | upor |
;-------;-------;---------;------;--------;
| 11111 | tang | n | bk | |
| 22222 | zhang | n | bk | 副教授 |
;-------;-------;---------;------;--------;
2 rows in set (0.00 sec)
mysql> truncate sss;
Query OK, 0 rows affected (0.04 sec)
mysql> select * from sss;
Empty set (0.01 sec)
数据定义语言;凡是带create;drop;alter的都是DDL
DDL主要操作的是表的结构;不是表中的数据
create 增
drop 删
alter 改
这个增删改和DML不同;主要是对表的结构进行操作
alter table cj rename 成绩表;
修改字段名和数据类型
语法格式;
alter table 表名 change 旧字段名 新字段名 新数据类型;
alter table 信息管理学生表 change 专业名 zym varchar(15);
修改字段的数据类型
语法格式;
alter table 表名 modify 字段名 新数据类型;
alter table 信息管理学生表 modify zy varchar(20);
添加字段
语法格式;
alter table 表名 add 新字段名 新数据类型 [约束条件] [first | after 已经存在的字段名];
alter table 信息管理学生表 add 年龄 varchar(3);
删除字段
语法格式;
alter table 表名 drop 字段名;
alter table xs drop 备注;
create table 软件技术 select 学号,姓名,性别,出生日期,总学分,备注 from xs where 专业名=;软件技术;;
create table zyrs like xs;
drop table zyrs;
事务控制语言
包括;
事务提交;commit;
事务回滚;rollback;
数据控制语言
例如;授权grant、撤销权限revoke……
mysql> show databases;
;--------------------;
| Database |
;--------------------;
| cjgl |
| cjgl1 |
| information_schema |
| mysql |
| performance_schema |
| sys |
| tang |
;--------------------;
7 rows in set (0.00 sec)
mysql> use cjgl1;
Database changed
mysql> source D:Program FilesQQ filescjgl-bak.sql
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected, 1 warning (0.04 sec)
Query OK, 0 rows affected (0.04 sec)
Query OK, 0 rows affected (0.05 sec)
Query OK, 0 rows affected (0.05 sec)
Query OK, 29 rows affected (0.05 sec)
Records: 29 Duplicates: 0 Warnings: 0
Query OK, 0 rows affected (0.06 sec)
Query OK, 0 rows affected (0.06 sec)
Query OK, 0 rows affected (0.06 sec)
Query OK, 0 rows affected (0.06 sec)
Query OK, 0 rows affected (0.06 sec)
数据处理函数又被称为单行处理函数
单行处理函数的特点;一个输入对应一个输出
和单行处理函数相对的是;多行处理函数;多行处理函数的特点;多个输入;对应一个输出;;
mysql> select lower(课程名) 课程名,开课学期 from kc where 课程号=212;
;--------------;----------;
| 课程名 | 开课学期 |
;--------------;----------;
| oracle数据库 | 2 |
;--------------;----------;
1 row in set (0.01 sec)
mysql> select 课程名,开课学期 from kc where 课程号=212;
;--------------;----------;
| 课程名 | 开课学期 |
;--------------;----------;
| ORACLE数据库 | 2 |
;--------------;----------;
1 row in set (0.00 sec)
mysql> select upper(课程名) 课程名,开课学期 from kc;
;--------------;----------;
| 课程名 | 开课学期 |
;--------------;----------;
| 计算机基础 | 1 |
| C语言 | 1 |
| 高等数学 | 3 |
| 数据结构 | 5 |
| 操作系统 | 6 |
| 计算机组装 | 4 |
| ORACLE数据库 | 2 |
| 计算机网络 | 1 |
| 软件工程 | 7 |
;--------------;----------;
9 rows in set (0.01 sec)
mysql> select 课程名,开课学期 from kc;
;--------------;----------;
| 课程名 | 开课学期 |
;--------------;----------;
| 计算机基础 | 1 |
| c语言 | 1 |
| 高等数学 | 3 |
| 数据结构 | 5 |
| 操作系统 | 6 |
| 计算机组装 | 4 |
| ORACLE数据库 | 2 |
| 计算机网络 | 1 |
| 软件工程 | 7 |
;--------------;----------;
9 rows in set (0.00 sec)
#模糊查询课程号中第二位为零的行
mysql> select 课程号 from kc where substr(课程号,2,1)=;0;;
;--------; 从课程号中第2位开始;取1位
| 课程号 |
;--------;
| 102 |
| 209 |
| 208 |
| 101 |
| 301 |
| 302 |
| 206 |
;--------;
7 rows in set (0.00 sec)
mysql> select concat(;Hello;,;World;) result;
;------------;
| result |
;------------;
| HelloWorld |
;------------;
1 row in set (0.00 sec)
mysql> select length(;hhgjfgks;) as result;
;--------;
| result |
;--------;
| 8 |
;--------;
1 row in set (0.00 sec)
mysql> select trim(; hkhhukhhyiyy ;) result;
;--------------;
| result |
;--------------;
| hkhhukhhyiyy |
;--------------;
1 row in set (0.00 sec)
mysql> select concat(lower(substr(课程名,1,1)),substr(课程名,2,length(课程名)-1)) as result from kc where 课程号=;212;;
;--------------;
| result |
;--------------;
| oRACLE数据库 |
;--------------;
1 row in set (0.00 sec)
mysql> select 课程名 from kc where 课程号=;212;;
;--------------;
| 课程名 |
;--------------;
| ORACLE数据库 |
;--------------;
1 row in set (0.00 sec)
mysql> select round(3.6) as result;
;--------;
| result |
;--------;
| 4 |
;--------;
1 row in set (0.00 sec)
mysql> select round(3.764,2) as result; //四舍五入保留两位小数
;--------;
| result |
;--------;
| 3.76 |
;--------;
1 row in set (0.00 sec)
mysql> select round(rand(),1) 随机数 from kc;//生成0到1之间的随机数;保留一位小数
;--------;
| 随机数 |
;--------;
| 0.9 |
| 0 |
| 0.4 |
| 0.8 |
| 0.8 |
| 0.6 |
| 0.5 |
| 0.8 |
| 0.6 |
;--------;
9 rows in set (0.00 sec)
mysql> select round(rand()*100,0) result from kc; //100以内随机数
;--------;
| result |
;--------;
| 6 |
| 76 |
| 60 |
| 76 |
| 97 |
| 58 |
| 98 |
| 19 |
| 98 |
;--------;
9 rows in set (0.00 sec)
可以将null转化成一个具体的值
注意;
null如果参与运算;最终结果一定是null。为了避免这一现象;需要ifnull函数。
ifnull函数用法;
ifnull;数据;被当做那个值;
如果“数据”为null是;那么这个数据结构当做那个值
mysql> select 6 ; ifnull(备注,8) result from xs;
;--------;
| result |
;--------;
| 14 |
| 14 |
| 14 |
| 14 |
| 14 |
| 14 |
| 14 |
| 14 |
| 6 |
| 14 |
| 6 |
| 14 |
| 6 |
| 14 |
| 14 |
| 14 |
| 14 |
| 14 |
| 14 |
| 14 |
;--------;
20 rows in set (0.00 sec)
mysql> select 开课学期,学分 from kc;
;----------;------;
| 开课学期 | 学分 |
;----------;------;
| 1 | 3 |
| 1 | 3 |
| 3 | 3 |
| 5 | 6 |
| 6 | 3 |
| 4 | 4 |
| 2 | 5 |
| 1 | 4 |
| 7 | 2 |
;----------;------;
9 rows in set (0.00 sec)
mysql> select 开课学期,(case 开课学期 when ;1; then 学分;1 when ;2; then 学分;2 else 学分 end) new from kc;
;----------;------;
| 开课学期 | new |
;----------;------;
| 1 | 4 |
| 1 | 4 |
| 3 | 3 |
| 5 | 6 |
| 6 | 3 |
| 4 | 4 |
| 2 | 7 |
| 1 | 5 |
| 7 | 2 |
;----------;------;
9 rows in set (0.00 sec)
多行处理函数的特点;输入多行;最终输出一行
count 计数
sum 求和
avg 平均值
max 最大值
min 最小值
注意;
分组函数在使用的时候必须先进行分组;才能够使用如果你没有对数据进行分组;那么整张表默认为一组14 |
| 14 |
| 14 |
| 14 |
| 14 |
| 14 |
| 14 |
±-------;
20 rows in set (0.00 sec)
- #### case..when..then..when..then..else..end ;;;mysql mysql> select 开课学期,学分 from kc; ;----------;------; | 开课学期 | 学分 | ;----------;------; | 1 | 3 | | 1 | 3 | | 3 | 3 | | 5 | 6 | | 6 | 3 | | 4 | 4 | | 2 | 5 | | 1 | 4 | | 7 | 2 | ;----------;------; 9 rows in set (0.00 sec) mysql> select 开课学期,(case 开课学期 when ;1; then 学分;1 when ;2; then 学分;2 else 学分 end) new from kc; ;----------;------; | 开课学期 | new | ;----------;------; | 1 | 4 | | 1 | 4 | | 3 | 3 | | 5 | 6 | | 6 | 3 | | 4 | 4 | | 2 | 7 | | 1 | 5 | | 7 | 2 | ;----------;------; 9 rows in set (0.00 sec)
多行处理函数的特点;输入多行;最终输出一行
count 计数
sum 求和
avg 平均值
max 最大值
min 最小值
注意;
分组函数在使用的时候必须先进行分组;才能够使用如果你没有对数据进行分组;那么整张表默认为一组Tomcat配置出错:Using-CATALINA_OPTS:-““&&Tomcat启动闪退问题解决