【数据库演练】外键SQL语句的编写分组和聚合函数的组合使用
生活随笔
收集整理的這篇文章主要介紹了
【数据库演练】外键SQL语句的编写分组和聚合函数的组合使用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
外鍵SQL語句的編寫
- 外鍵SQL語句的編寫
- 1. 外鍵約束作用
- 2. 對于已經存在的字段添加外鍵約束
- 3. 在創建數據表時設置外鍵約束
- 4. 刪除外鍵約束
- 5. 小結
- 演練-分組和聚合函數的組合使用
- 1. 數據準備
- 2. SQL語句演練
外鍵SQL語句的編寫
學習目標
- 能夠寫出刪除外鍵約束的SQL語句
1. 外鍵約束作用
外鍵約束:對外鍵字段的值進行更新和插入時會和引用表中字段的數據進行驗證,數據如果不合法則更新和插入會失敗,保證數據的有效性
2. 對于已經存在的字段添加外鍵約束
?
-- 為cls_id字段添加外鍵約束 alter table students add foreign key(cls_id) references classes(id);3. 在創建數據表時設置外鍵約束
-- 創建學校表 create table school(id int not null primary key auto_increment, name varchar(10) );-- 創建老師表 create table teacher(id int not null primary key auto_increment, name varchar(10), s_id int not null, foreign key(s_id) references school(id) );4. 刪除外鍵約束
-- 需要先獲取外鍵約束名稱,該名稱系統會自動生成,可以通過查看表創建語句來獲取名稱 show create table teacher;-- 獲取名稱之后就可以根據名稱來刪除外鍵約束 alter table teacher drop foreign key 外鍵名;5. 小結
- 添加外鍵約束: alter table 從表 add foreign key(外鍵字段) references 主表(主鍵字段);
- 刪除外鍵約束: alter table 表名 drop foreign key 外鍵名;
演練-分組和聚合函數的組合使用
1. 數據準備
-- 創建 "京東" 數據庫 create database jing_dong charset=utf8;-- 使用 "京東" 數據庫 use jing_dong;-- 創建一個商品goods數據表 create table goods(id int unsigned primary key auto_increment not null,name varchar(150) not null,cate_name varchar(40) not null,brand_name varchar(40) not null,price decimal(10,3) not null default 0,is_show bit not null default 1,is_saleoff bit not null default 0 );-- 向goods表中插入數據insert into goods values(0,'r510vc 15.6英寸筆記本','筆記本','華碩','3399',default,default); insert into goods values(0,'y400n 14.0英寸筆記本電腦','筆記本','聯想','4999',default,default); insert into goods values(0,'g150th 15.6英寸游戲本','游戲本','雷神','8499',default,default); insert into goods values(0,'x550cc 15.6英寸筆記本','筆記本','華碩','2799',default,default); insert into goods values(0,'x240 超極本','超級本','聯想','4880',default,default); insert into goods values(0,'u330p 13.3英寸超極本','超級本','聯想','4299',default,default); insert into goods values(0,'svp13226scb 觸控超極本','超級本','索尼','7999',default,default); insert into goods values(0,'ipad mini 7.9英寸平板電腦','平板電腦','蘋果','1998',default,default); insert into goods values(0,'ipad air 9.7英寸平板電腦','平板電腦','蘋果','3388',default,default); insert into goods values(0,'ipad mini 配備 retina 顯示屏','平板電腦','蘋果','2788',default,default); insert into goods values(0,'ideacentre c340 20英寸一體電腦 ','臺式機','聯想','3499',default,default); insert into goods values(0,'vostro 3800-r1206 臺式電腦','臺式機','戴爾','2899',default,default); insert into goods values(0,'imac me086ch/a 21.5英寸一體電腦','臺式機','蘋果','9188',default,default); insert into goods values(0,'at7-7414lp 臺式電腦 linux )','臺式機','宏碁','3699',default,default); insert into goods values(0,'z220sff f4f06pa工作站','服務器/工作站','惠普','4288',default,default); insert into goods values(0,'poweredge ii服務器','服務器/工作站','戴爾','5388',default,default); insert into goods values(0,'mac pro專業級臺式電腦','服務器/工作站','蘋果','28888',default,default); insert into goods values(0,'hmz-t3w 頭戴顯示設備','筆記本配件','索尼','6999',default,default); insert into goods values(0,'商務雙肩背包','筆記本配件','索尼','99',default,default); insert into goods values(0,'x3250 m4機架式服務器','服務器/工作站','ibm','6888',default,default); insert into goods values(0,'商務雙肩背包','筆記本配件','索尼','99',default,default);表結構說明:
- id 表示主鍵 自增
- name 表示商品名稱
- cate_name 表示分類名稱
- brand_name 表示品牌名稱
- price 表示價格
- is_show 表示是否顯示
- is_saleoff 表示是否售完
2. SQL語句演練
1. 查詢類型cate_name為 '超極本' 的商品名稱、價格select name,price from goods where cate_name = '超級本';2. 顯示商品的分類select cate_name from goods group by cate_name;3. 求所有電腦產品的平均價格,并且保留兩位小數select round(avg(price),2) as avg_price from goods;4. 顯示每種商品的平均價格select cate_name,avg(price) from goods group by cate_name;5. 查詢每種類型的商品中 最貴、最便宜、平均價、數量select cate_name,max(price),min(price),avg(price),count(*) from goods group by cate_name;6. 查詢所有價格大于平均價格的商品,并且按價格降序排序select id,name,price from goods where price > (select round(avg(price),2) as avg_price from goods) order by price desc;加油!
感謝!
努力!
總結
以上是生活随笔為你收集整理的【数据库演练】外键SQL语句的编写分组和聚合函数的组合使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 车载显示屏做E-mark认证多久能拿到证
- 下一篇: 达梦数据库培训心得