MySQL的第二天訓練題

2021-08-27 04:06:44 字數 3594 閱讀 3358

create table dept(

deptno int primary key,

dname varchar(14), – 部門名稱

loc varchar(13)– 部門位址

);插入資料

insert into dept values (10,』accounting』,』new york』);

insert into dept values (20,』research』,』dallas』);

insert into dept values (30,』sales』,』chicago』);

insert into dept values (40,』operations』,』boston』);

建立表(員工表)

hiredate date, -- 入職時間

sal double, -- 工資

drop table emp;

create table emp(

empno int primary key, – 員工編號

ename varchar(10), – 員工姓名

job varchar(9), – 員工工作

mgr int, – 員工直屬領導編號

comm double, – 獎金

deptno int, – 所在部門

foreign key (deptno) references dept(deptno)); – 關聯dept表

插入資料

– alter table emp add foreign key (deptno) references dept(deptno);

insert into emp values(7369,』smith』,』職員』,7566,」1980-12-17」,800,null,20);

insert into emp values(7499,』allen』,』銷售員』,7698,』1981-02-20』,1600,300,30);

insert into emp values(7521,』ward』,』銷售員』,7698,』1981-02-22』,1250,500,30);

insert into emp values(7566,』jones』,』經理』,7839,』1981-04-02』,2975,null,20);

insert into emp values(7654,』martin』,』銷售員』,7698,』1981-09-28』,1250,1400,30);

insert into emp values(7698,』blake』,』經理』,7839,』1981-05-01』,2850,null,30);

insert into emp values(7782,』clark』,』經理』,7839,』1981-06-09』,2450,null,10);

insert into emp values(7788,』scott』,』職員』,7566,』1987-07-03』,3000,2000,20);

insert into emp values(7839,』king』,』董事長』,null,』1981-11-17』,5000,null,10);

insert into emp values(7844,』turners』,』銷售員』,7698,』1981-09-08』,1500,50,30);

insert into emp values(7876,』adams』,』職員』,7566,』1987-07-13』,1100,null,20);

insert into emp values(7900,』james』,』職員』,7698,』1981-12-03』,1250,null,30);

insert into emp values(7902,』ford』,』銷售員』,7566,』1981-12-03』,3000,null,20);

insert into emp values(7934,』miller』,』職員』,7782,』1981-01-23』,1300,null,10);

建立表(工資等級表)

create table salgrade(

grade int,– 等級

losal double, – 最低工資

hisal double ); – 最高工資

插入資料

insert into salgrade values (1,500,1000);

insert into salgrade values (2,1001,1500);

insert into salgrade values (3,1501,2000);

insert into salgrade values (4,2001,3000);

insert into salgrade values (5,3001,9999);

1.查詢部門30中員工的詳細資訊

select * from emp where emp.deptno=30;

2.找出從事職員工作的員工的編號、姓名、部門號。

select empno,ename,deptno from emp;

3.檢索出獎金多於基本工資的員工資訊

select * from emp where comm>sal;

4.檢索出獎金多於基本工資60%的員工資訊

select * from emp where comm>sal*0.6;

5.找出姓名中包含a的員工資訊。

select * from emp where ename like 『%a%』;

6.找出姓名以a、b、s開始的員工資訊

select * from emp where ename like 『a%』or ename like 『b%』or ename like 『s%』;

7.找到名字長度為7個字元的員工資訊

select * from emp where ename like』_『;

8.名字中不包含r字元的員工資訊

select * from emp where ename not like』%r%』;

9.返回員工的詳細資訊並按姓名公升序排序

select * from emp order by ename asc;

10.返回員工的資訊並按姓名降序,工資公升序排列。

select * from emp order by ename desc,sal asc;

11.計算員工的日薪(按30天)。

select sal/30 from emp;

12.找出獲得獎金的員工的工作

select job from emp where comm;

13.找出獎金少於100或者沒有獲得獎金的員工的資訊

select * from emp where comm <100 or comm is null;

14.找出10部門的經理、20部門的職員 的員工資訊

select * from emp where emp.deptno in(10,20);

15.找出10部門的經理、20部門的職員 或者既不是經理也不是職員但是工資高於2000元的員工資訊

select * from emp where emp.deptno in(10,20) or sal>2000;

mysql第二天 鎖

如果沒有鎖,那麼併發性會更強,但是資料安全性會有問題。因此資料庫會給資料加鎖。也就是讀寫鎖,共享鎖可以疊加共享鎖但是不能加排他鎖,排他鎖則不能疊加。根據隔離級別等等,mysql會隱式的給資料自動加鎖 此外還可以使用share in model,for update 等語句顯示的加鎖粒度越細,維護鎖的...

mysql 第二天總結

今日回顧 create table 表名 欄位名1 型別 字段附加屬性 欄位名2 型別 字段附加屬性 charset utf8 gbk 表中儲存資料的字元編碼 engine innodb myisam bdb memory 表型別 型別 數字型別 整數 int,tinyint,smallint,me...

leetcode第二天刷題

給定兩個大小為 m 和 n 的有序陣列 nums1 和 nums2。請你找出這兩個有序陣列的中位數,並且要求演算法的時間複雜度為 o log m n 你可以假設 nums1 和 nums2 不會同時為空 看到這個題目第乙個想法就是用直接合併兩個陣列然後取中位數的方法。要注意的就是幾個陣列為空的情況需...