当前位置: 首页>編程日記>正文

sql语句练习 - 增删改查

sql语句练习 - 增删改查

目录

一、基础功能

二、聚合函数 (单表查询

三、 多表查询,表联结

四、 查询练习&新增行语句

五、创建表

六、删除表

七、对表结构的修改语句

八、虚拟表

九、存储过程

十、其他补充


一、基础功能

1.基本数值运算

select 6*6 ;  -- 计算器;SELECT ABS(-231279);   --  绝对值;SELECT SQRT(81);      -- 平方根;SELECT ROUND(533.9);   -- 四舍五入;
SELECT ROUND(533.732781937,2);   -- 四舍五入到后面的【2】位小数SELECT CHARACTER_LENGTH(str)LENGTH('dafsa');     -- 字符长度;SELECT CHAR_LENGTH('字符长度');  -- 一个中文有三字节,用char_length才是纯字符长度段;

2.空格处理&大小写转换

SELECT  RTRIM('   FDSA F') ;   -- 左右空格处理--右长空格;SELECT LTRIM('                FSAF       ')  -- 左右空格处理--左长空格SELECT UPPER ('gbih');  --字母大写SELECT LOWER('FDNSAIFNIDSJVN ');   --字母小写
SELECT UPPER(RTRIM('        cnjxvnxcjovn'));  --清除空格后大写

3.获取日期

SELECT MINUTE(NOW());  --获取分钟SELECT DAYNAME(NOW());    --获取当前日SELECT CURDATE();   --获取当前日期SELECT CURTIME();  --获取当前时

二、聚合函数 (单表查询

-- COUNT AVG MAX MIN SUM

1.计数语句

SELECT COUNT(COL) FROM milk_tea AS M;SELECT COUNT( DISTINCT m.sale_price) FROM milk_tea AS m ;

2.求和语句

SELECT SUM(m.in_price )*0.9 FROM milk_tea AS m ;SELECT SUM(m.sale_price - m.in_price ) FROM milk_tea AS m ;SELECT SUM(IFNULL(sale_price,0) - m.in_price) FROM milk_tea AS m ;SELECT m.net_w,SUM(m.sale_price) FROM milk_tea AS m GROUP BY m.net_w;SELECT m.net_w,SUM(m.sale_price) FROM milk_tea AS m WHERE m.net_w IN ('100g','200g') GROUP BY m.net_w;SELECT SUM(m.sale_price ) / COUNT(m.sale_price) FROM milk_tea AS m;

3.极值、均值语句

SELECT AVG(m.sale_price) FROM milk_tea AS m;SELECT MIN(m.sale_price) FROM milk_tea AS m ;SELECT MAX(m.sale_price) FROM milk_tea AS m ;SELECT MAX(m.sale_price),MIN(m.sale_price), SUM(m.sale_price ),COUNT(m.sale_price) FROM milk_tea AS m ;

4.练习语句

SELECT m.net_w,count(m.sale_price) FROM milk_tea AS m WHERE m.net_w IN ('100g','200g') GROUP BY m.net_w;   -- 先对结果过滤,只要100g和200g的,之后再对其分组SELECT p.class, COUNT(1) FROM prod_info AS p GROUP BY p.class HAVING COUNT(1) > 4 ;SELECT p.class, COUNT(1) FROM prod_info AS p WHERE p.class = '零食' GROUP BY p.class ;

三、 多表查询,表联结

1. 同表的列联结语句

练习语句①

SELECT m.sale_price FROM milk_tea AS m WHERE m.prod_name = '奶茶' ;   -- 查出奶茶的价格SELECT * FROM milk_tea AS m1WHERE m1.sale_price > (SELECT m.sale_price FROM milk_tea AS mWHERE m.prod_name = '奶茶' )SELECT m1.*, (SELECT m.sale_price FROM milk_tea AS mWHERE m.prod_name = '奶茶')
FROM milk_tea AS m1;

练习语句②

SELECT p.prod_name,p.type,p.sale_price FROM prod_info AS p WHERE p.prod_name = '抽纸';SELECT * FROM (SELECT p.prod_name,p.type,p.sale_price FROM prod_info AS p WHERE p.prod_name = '抽纸') AS bWHERE b.sale_price > 26;


  2.不同表的列联结语句

SELECT m.sale_price FROM milk_tea AS m WHERE m.prod_name = '奶茶' ; SELECT p.class,AVG(p.sale_price)  FROM prod_info AS p GROUP BY p.class;   --选出列与加个列的均值,按p.class列排序SELECT p.class,AVG(p.sale_price)  FROM prod_info AS p GROUP BY p.class  HAVING AVG(p.sale_price) >15;  --HAVING能与GROUP BY联合使用过滤SELECT p.class,AVG(p.sale_price)  FROM prod_info AS p GROUP BY p.class  HAVING AVG(p.sale_price) > (SELECT m.sale_price FROM milk_tea AS mWHERE m.prod_name = '奶茶');

  3.运用IN操作符联结

IN 用于在 WHERE 子句中规定多个值

SELECT prod_name FROM milk_tea AS mWHERE m.sale_price = 15 ;SELECT * FROM milk_tea as m WHERE m.prod_name IN( '奶茶', '薯片' ,'薯条'); --列中有这些字符的用INSELECT * FROM milk_tea as m1 WHERE m1.prod_name IN( SELECT prod_name FROM milk_tea AS mWHERE m.sale_price = 15 );  

                
4.联结练习总语句


①联结

SELECT * FROM prod_info AS p;
SELECT * FROM supplier_info AS s;SELECT s.*,p.* FROM prod_info AS p,supplier_info AS s
WHERE p.supplier_id = s.supplier_id;SELECT * FROM prod_info AS p,supplier_info AS s
WHERE p.supplier_id = s.supplier_id;SELECT p.*,s.* FROM prod_info AS p,supplier_info AS s
WHERE p.supplier_id = s.supplier_id;SELECT p.prod_name,p.sale_price,s.supplier_name FROM prod_info AS p,supplier_info AS sWHERE p.supplier_id = s.supplier_id;SELECT * FROM order_list AS l;SELECT l.prod_id FROM order_list AS l WHERE l.order_id = '20190403001' ;SELECT * FROM prod_info AS p WHERE p.prod_id IN( '20003','20004') ;SELECT * FROM prod_info AS p WHERE p.prod_id IN( SELECT l.prod_id FROM order_list AS l WHERE l.order_id = '20190403001') ;

②内部联结

SELECT  p.*FROM prod_info AS p order_list AS lWHERE p.prod_id = l.prod_id AND l.order_id = '20190403001';SELECT  p.*FROM prod_info AS p INNER JOIN order_list AS lON p.prod_id = l.prod_idAND l.order_id = '20190403001';SELECT c.*,l.*FROM cust_info AS c LEFT JOIN order_list AS lON c.cust_id = l.cust_idAND l.order_id LIKE '20190401%';SELECT * FROM order_list AS l WHERE l.order_id LIKE '20190407%';UNION ALLSELECT * FROM order_list AS l WHERE l.order_id LIKE '20190407%';

四、 查询练习&新增行语句

1.查询语句复习

SELECT * FROM prod_info;SELECT * FROM prod_info2;   -- 每次插入的行,都可以查得到SELECT *FROM prod_info2 ORDER BY prod_id DESC ;

2.插入行

INSERT INTO prod_info2 VALUES('T000001','测试商品','test','215','555','nj00001');INSERT INTO prod_info2 (prod_id,prod_name,brand,type)VALUES('T0000211','测试商品','test','test');SELECT * FROM prod_info AS p WHERE p.prod_id = '10001' INSERT INTO prod_info;

3.其他练习语句

条件语句汇总①

SELECT CONCAT('T',p.prod_id),prod_name,p.brand,p.type,p.class,
FROM prod_info AS p 
WHERE p.prod_id = '10002' ; SELECT *FROM prod_info2 ORDER BY prod_id DESC ;
UPDATE prod_info2
SET class = '日用品' ;SELECT * FROM prod_info2 ;
UPDATE prod_info2
SET class = '零食' 
WHERE prod_id LIKE 'T%';SELECT * FROM prod_info2 WHERE prod_id LIKE 'T%';

条件语句汇总②

-- 全场打九折UPDATE prod_info2
SET sale_price = sale_price *0.9;-- 部分商品筛选处理
UPDATE prod_info2
SET sale_price = sale_price *0.9
WHERE prod_name ='抽纸' OR class = '饮料';-- 检验过滤条件SELECT * FROM prod_info2  WHERE prod_name ='抽纸' OR class = '饮料';
SELECT * FROM prod_info2  WHERE prod_name ='抽纸' OR class = '饮料';UPDATE prod_info2
SET sale_price = sale_price *0.9,cost = cost *0.9         --同时,进货价也打九折,用逗号隔开WHERE prod_name ='抽纸' OR class = '饮料';


五、创建表

1.创建表语句

CREATE TABLE pet2 
(name VARCHAR(225) NOT NULL,    -- 加上属性的限制,用空格隔开
owner VARCHAR(225) NOT NULL,
specise VARCHAR(225),
sex CHAR(1),     -- 定成的:不是m就是f,(字符长度)
birth date,
death date
);

2.创建后的插入语句
 

SELECT * FROM pet2;
-- bowser diane dog m 1979-08-31  1995-07-29     --插入该行【插入语句】
INSERT INTO pet2 VALUES('bowser','diane','dog','m','1979-08-31','1995-07-29 ');-- 插入部分行INSERT INTO pet2(name,owner,specise,sex) VALUES('bowser2','daine','dog','m');

六、删除表

1.删除表的语句练习

CREATE TABLE pet2 
(name VARCHAR(225) NOT NULL,
owner VARCHAR(225) DEFAULT 'police',  -- default是默认值的限定,一定要是一个【常数】
specise VARCHAR(225),
sex CHAR(1), birth date,
death date
);SELECT * FROM pet2;INSERT INTO pet2 VALUES('bowser','diane','dog','m','1979-08-31','1995-07-29');
INSERT INTO pet2(name,owner,specise,sex) VALUES('bowser2','daine','dog','m');INSERT INTO pet2(name,specise,sex) VALUES('bowser3','dog','m');  -- 运用了默认值INSERT INTO pet2(name,owner,specise,sex) VALUES('bowser2',NULL,'dog','m');  -- 赋予为空值 则有意义UPDATE pet2     -- 【改】修改的目标表
SET owner = NULL
WHERE name = 'bowser2';UPDATE pet2    
SET owner = 'chika'
WHERE owner = 'diane';-- 删掉表 转到mysqlCREATE TABLE pet3
AS   -- 复制
SELECT * FROM pet2;SELECT * FROM pet3;-- 【删】删除表
DROP TABLE pet3;CREATE TABLE pet3
AS 
SELECT p2.name,p2.owner FROM pet2 AS p2;CREATE TABLE pet3
AS 
SELECT p2.name,p2.owner FROM pet2 AS p2 WHERE 1 = 2;  -- 复制一个有列的空行,用where 1 =2 (即不存在)

2. 删除字段语句

ALTER TABLE pet3 DROP birth;
ALTER TABLE pet3 DROP birth,DROP sex;SELECT * FROM pet3;

七、对表结构的修改语句
 

1. 增加一个字段

ALTER TABLE pet3 ADD sex CHAR(1);
ALTER TABLE pet3 ADD birth date NOT nULL;

2.修改字符长度

ALTER TABLE ;

八、虚拟表

-- 创建一个 视图表
 

SELECT * FROM pet;CREATE VIEW pet_show AS 
SELECT * FROM pet;SELECT *FROM pet_show AS ps WHERE ps.sex = 'm';   -- where是对视图 做一个过滤的操作SELECT ps.name,ps.species FROM pet_show AS ps WHERE ps.sex = 'm'; DROP VIEW pet_show;


 


https://www.fengoutiyan.com/post/13462.html

相关文章:

  • 鏡像模式如何設置在哪,圖片鏡像操作
  • 什么軟件可以把圖片鏡像翻轉,C#圖片處理 解決左右鏡像相反(旋轉圖片)
  • 手機照片鏡像翻轉,C#圖像鏡像
  • 視頻鏡像翻轉軟件,python圖片鏡像翻轉_python中鏡像實現方法
  • 什么軟件可以把圖片鏡像翻轉,利用PS實現圖片的鏡像處理
  • 照片鏡像翻轉app,java實現圖片鏡像翻轉
  • 什么軟件可以把圖片鏡像翻轉,python圖片鏡像翻轉_python圖像處理之鏡像實現方法
  • matlab下載,matlab如何鏡像處理圖片,matlab實現圖像鏡像
  • 圖片鏡像翻轉,MATLAB:鏡像圖片
  • 鏡像翻轉圖片的軟件,圖像處理:實現圖片鏡像(基于python)
  • canvas可畫,JavaScript - canvas - 鏡像圖片
  • 圖片鏡像翻轉,UGUI優化:使用鏡像圖片
  • Codeforces,CodeForces 1253C
  • MySQL下載安裝,Mysql ERROR: 1253 解決方法
  • 勝利大逃亡英雄逃亡方案,HDU - 1253 勝利大逃亡 BFS
  • 大一c語言期末考試試題及答案匯總,電大計算機C語言1253,1253《C語言程序設計》電大期末精彩試題及其問題詳解
  • lu求解線性方程組,P1253 [yLOI2018] 扶蘇的問題 (線段樹)
  • c語言程序設計基礎題庫,1253號C語言程序設計試題,2016年1月試卷號1253C語言程序設計A.pdf
  • 信奧賽一本通官網,【信奧賽一本通】1253:抓住那頭牛(詳細代碼)
  • c語言程序設計1253,1253c語言程序設計a(2010年1月)
  • 勝利大逃亡英雄逃亡方案,BFS——1253 勝利大逃亡
  • 直流電壓測量模塊,IM1253B交直流電能計量模塊(艾銳達光電)
  • c語言程序設計第三版課后答案,【渝粵題庫】國家開放大學2021春1253C語言程序設計答案
  • 18轉換為二進制,1253. 將數字轉換為16進制
  • light-emitting diode,LightOJ-1253 Misere Nim
  • masterroyale魔改版,1253 Dungeon Master
  • codeformer官網中文版,codeforces.1253 B
  • c語言程序設計考研真題及答案,2020C語言程序設計1253,1253計算機科學與技術專業C語言程序設計A科目2020年09月國家開 放大學(中央廣播電視大學)
  • c語言程序設計基礎題庫,1253本科2016c語言程序設計試題,1253電大《C語言程序設計A》試題和答案200901
  • 肇事逃逸車輛無法聯系到車主怎么辦,1253尋找肇事司機