create table main (num int);
insert into main values
(3),
(12),
(15),
(25),
(23),
(29),
(34),
(37),
(32);
int num1= 3;
int num2 = 12;
int num3 = 23;
把num值处于[20,29]之间,改为20
num值处于[30,39]之间的,改为30
思路:要把列(字段)当成变量来处理
SELECT FLOOR(num/10)*10 FROM main where num >= 20 and num <= 29;
int num = 23;
System.out.println(Math.floor(num/10.0)*10);
数据库:employee
1.创建一张员工表,表明EMPLOTYEES,有四个字段,EMPLOYEE_ID:员工表(主键)、DEPT_ID:部门号、EMPLOYEE_NAME:员工姓名、EMPLOYEE_SALARY:员工工资。
问题1、写出建表语句
sql
CREATE TABLE EMPLOYEE(
employee_ID int primary key,
DEPT_ID int,
EMPLOYEE_NAME char(40),
EMPLOYEE_SALARY decimal(8,2)
);
问题二、检索出员工工资最高的员工的姓名和工资
sql
--方法一
SELLECT * FROM EMPLOYEE WHERE employee_salary = (select max(employee_salary)from EMPLOYEES)
--方法二
SELECT * FROM EMPLOYEE ORDER BY employee_salary DESC limit 1; --0,1
问题三、检索出部门中员工最多的部门号和此部门的员工数量
sql
SELECT dept_id,count(*) cno from EMPLOYEES BY dept_id order by cno desc limit 1
浮点列与定点列:
float(M,D):M是精度,D标度,就是小数点后几位。
decimal
float/double:有精度损失
decimal:定点型,精确。用于保存对准确精度有重要要求的值,例如与金钱有关的数据
java
double d1 = 1234.3435;
double d2 = 1234.3400;
System.out.println(d1-d2);
if ((d1 - d2) == 0.0035) {
Sysytem.out.println("==");
} else {
System.out.println("!=");
}
// 0.003500000000030923
// !=
Inner join 练习:
Match的host_id与guest_id都与Team中的id关联
查出2006-6-1到2006-7-1之间举行的所有比赛,并且用以下形式列出:
国安2:0 申花2006-6-21
-- 主队 得分 客队 比赛时间
-- 国安 2 : 0 2006-6-21
-- 主队 得分 客队 比赛时间
-- 国安 2 : 0 2006-6-21