運用前面所學,完成創建表、插入數據等操作
創建員工信息表和部門信息表
eno(編號) | ename(姓名) | sex(性別) | phone(手機號) | address(家庭住址) | |
---|---|---|---|---|---|
dname(部門名稱) | loc(部門地址) | |
---|---|---|
10 | 妖怪大道 | 妖怪路 |
20 | 芭蕉洞 | 火焰山 |
30 | 花柳樓 | 女兒國 |
答案:1、創建表
create table t_emp(
eno int,
ename varchar(20),
sex varchar(2),
phone varchar(11),
address varchar(50),
deptno int
);
2、添加數據
insert into t_emp values(1,'孫悟空','男','110','花果山水簾洞',10);
insert into t_emp values(2,'豬八戒','男','120','高老庄',10);
insert into t_emp values(3,'沙悟凈','男','130','流沙河',10);
insert into t_emp values(4,'牛魔王','男','140','火焰山',20);
insert into t_emp values(5,'羅剎女','女','150','火焰山',20);
insert into t_emp values(6,'玉面狐','女','160','火焰山',20);
insert into t_emp values(7,'白骨精','女','170','白骨洞',30);
insert into t_emp values(8,'蜘蛛精','女','190','盤絲洞',30);
insert into t_emp values(9,'百花仙子','女','101','天宮',30);
新增薪資列
alter table t_emp add salary double;
3.創建t_dept部門表,及添加數據
create table t_dept(
deptno int,
dname varchar(20),
loc varchar(20)
);
insert into t_dept values(10,'妖怪大道','妖怪路');
insert into t_dept values(20,'芭蕉洞','火焰山');
insert into t_dept values(30,'花柳樓','女兒國');
count函數在求總行數時,為null的不計入總數
select count(*) from 表名; 結果是以該表中行數最多的列的行數為主
select count(eno) from t_emp; 以eno的總條數為結果
select count(1) from t_emp; 類似於*的功能
ifnull(參數一,參數二);
判斷指定列的值是否為空,如果為空以什么來代替,參數一代表列,參數二代表要替換的值
二、
三、分組查詢:
概念:指定以某一個特點為依據進行划分
關鍵字:group by ,having
需求:查詢該公司員工中男女的數量分配
select sex,count(*) from t_emp group by sex;
需求:查詢各部門薪資的總和
select deptno,sum(salary) from t_emp group by deptno;
需求:查詢部門薪資總和中大於12000的
select deptno,sum(salary) from t_emp group by deptno having sum(salary)>12000;
注意:
where和having的區別:where是直接篩選數據的,having是針對group by分組后的數據進行二次篩選的
where是跟在表的后面使用的,having是需要結合group by使用的,having很耗性能
四、別名