idea內建資料庫 + sql語句庫表操作

椰子灰發表於2024-07-18
表資料操作,表是上一個部落格裡的表 tb_emp
-- dml:資料操作語言
-- dml:插入資料 - insert
-- 1.為tb_emp表的username ,name ,gender欄位插入值
-- 所有用到引號的地方,用單引號雙引號都可以
insert into tb_emp(username,name,gender,crate_time,update_time) value ('red','小紅',1,now(),now());
-- 2.為tb_emp表的所有欄位插入值
-- 時間也要放在引號裡
-- 麻煩
insert into tb_emp(id, username, password, name, gender, image, job, entrydate, crate_time, update_time)
    value (null,'blue','123','小藍',2,'1.jpg',1,'2024-7-18',now(),now());
-- 簡單
insert into tb_emp value (null,'blue2','123','小藍2',2,'1.jpg',1,'2024-7-18',now(),now());
-- 3.批次為tb_emp表的username ,name ,gender欄位插入值
-- 小括號括起來並用逗號分隔
insert into tb_emp(username,name,gender,crate_time,update_time) value
    ('yellow','小黃',1,now(),now() ),
    ('green','小綠',1,now(),now() ),
    ('purple','小紫',1,now(),now() );


-- dml:更新資料 - update
-- 1. 將tb_emp表的id為3 的員工姓名name欄位更新為’小蘭‘
update tb_emp set name = '張蘭' , update_time = now() where id = 9;
-- 2.將tb_emp所有員工入職時間更新為’2010-01-01‘
update tb_emp set entrydate = '2010-01-01' , update_time = now();


-- dml:刪除資料 - delete
-- 1.刪除tb_emp表中id為1的員工
delete from tb_emp where id = 1;
-- 2.刪除tb_emp表中所有員工
delete from tb_emp;





-- dql:查詢資料 - select
-- id, username, password, name, gender, image, job, entrydate, crate_time, update_time
-- ----------------------基本查詢----------------------
-- 1.查詢指定欄位  name entrydate 並返回
select name , entrydate from tb_emp;
-- 2.查詢返回所有欄位
-- 麻煩,推薦
select id, username, password, name, gender, image, job, entrydate, crate_time, update_time from tb_emp;
-- 簡單,不推薦,效能低
select * from tb_emp;
-- 3.查詢所有員工的 name entrydate 並起別名(姓名,入職時間)
-- as可以省略
-- 特殊符合需要加引號
select name as '姓 名' , entrydate 入職時間 from tb_emp;
-- 4.查詢已經有的員工關聯了哪幾種職位(不重複)
select distinct job from tb_emp;
-- ----------------------條件查詢----------------------
-- 1.查詢姓名為小紅的員工
select * from tb_emp where name ='小紅';
-- 2.查詢id大於等於9的員工資訊
select * from tb_emp where id <= 9;
-- 3.沒有分配職位的員工資訊
select * from tb_emp where job is null ;
-- 4.查詢有職位的員工資訊
select * from tb_emp where job is not null ;
-- 5.查詢密碼不等於’123456‘的員工資訊
select * from tb_emp where password != '123456';
-- 一樣
select * from tb_emp where password <> '123456';
-- 6.查詢入職日期在’2000-01-01(包含)‘到’2010-01-01‘之間的員工資訊
select * from tb_emp where entrydate >= '2000-01-01' and entrydate <= '2010-01-01';
-- 簡化寫法
select * from tb_emp where entrydate between '2000-01-01' and '2010-01-01';
-- 7.查詢入職日期在’2000-01-01(包含)‘到’2010-01-01‘之間,性別為女的員工資訊
select * from tb_emp where entrydate between '2000-01-01' and '2010-01-1' and gender = 2;
-- 8.查詢職位是2或3或4的員工資訊
select * from tb_emp where job = 2 or job = 3 or job = 4;
select * from tb_emp where job in (2 ,3,4);
-- 9.姓名為兩個字的員工資訊
-- _替代一個字元
select * from tb_emp where name like '__';
-- 10.查詢姓張的動員工資訊
-- %替代任意字元
select * from tb_emp where name like '張%';
-- ----------------------分組查詢----------------------
-- 聚合函式 - null值不參與所有聚合函式的計算
-- 1.統計該企業員工數量 - count
-- a.count(欄位)
select count(id) from tb_emp;
-- b.count(常量)
select count(0) from tb_emp;
-- c.count(*) - 推薦
select count(*) from tb_emp;
-- 2.統計該企業最早入職的員工 - min
select min(entrydate) from tb_emp;
-- 3.統計該企業最晚入職的員工 - max
select max(entrydate) from tb_emp;
-- 4.統計該企業員工id的平均值 - avg
select avg(id) from tb_emp;
-- 5.統計該企業員工的id之和 - sum
select sum(id) from tb_emp;
-- ----------------------分組查詢
-- 1.根據性別分組,統計男性和女性員工數量 - count(*)
select gender , count(*) from tb_emp group by gender ;
-- 2.先查詢入職時間在’2015-01-01‘以前的員工,並對及結果根據職位分組,獲取員工數量大於等於2 的職位
-- 分組之前使用where進行篩選,分組之後使用having;聚合函式只能用having判斷
-- 順序:where-聚合-having
select job,count(*) from tb_emp where entrydate <= '2015-01-01' group by job having count(*) >= 2;
-- ----------------------排序查詢----------------------
-- 1.根據入職時間,對員工進行升序排序 - asc (預設)    上到下:小到大
select * from tb_emp order by entrydate ; -- asc;
-- 2..根據入職時間,對員工進行降序排序 - desc   上到下:大到小
select * from tb_emp order by entrydate desc ;
-- 3.根據入職時間,對公司的員工進行升序排序,若入職時間相同再按照更新時間進行降序排序
select * from tb_emp order by entrydate , update_time desc;
-- ----------------------分頁查詢----------------------
-- 起始索引的計算公式:(頁碼 - 1) * 每頁展示記錄數
-- 1.從起始索引0開始查詢員工資料,每頁展示2條記錄
select * from tb_emp limit 0,2;     -- 寫法1
-- 2.查詢第1頁員工資料,每頁展示2條記錄
select * from tb_emp limit 2;     -- 寫法2
-- 3.查詢第2頁員工資料,每頁展示5條記錄
select * from tb_emp limit 5,5;
-- 4.查詢第3頁員工資料,每頁展示2條記錄
select * from tb_emp limit 4,2;

相關文章