1. 程式人生 > >java學習筆記之mysql2

java學習筆記之mysql2

數值類型 個數 合並 category name 數值 ice const cname

mysql

#-----sql指令的查詢----------(重點)
#1 排序(order by) ASC:升序 DESC:降序
#SELECT * FROM 表名 ORDER BY 排序字段 ASC|DESC;
#按照價格進行升序排列
SELECT * FROM product ORDER BY price ASC;
SELECT * FROM product ORDER BY price; #默認是升序
#按照價格進行降序排列
SELECT * FROM product ORDER BY price DESC;
SELECT price FROM product ORDER BY price DESC
; #去除重復的數據 SELECT DISTINCT price FROM product ORDER BY price DESC; SELECT * FROM product ORDER BY price DESC; #先按照價格降序排序,如果價格一樣,則按照category_id降序 SELECT * FROM product ORDER BY price DESC, category_id DESC; #按照category_id進行降序排列 SELECT * FROM product ORDER BY category_id DESC; #字符串按照字典順序與排列 #2 聚合函數: 函數:function
方法:method #count(): 統計 sum():求和 max() min() 最大和最小值 avg():平均值 #統計有多少種商品名 SELECT COUNT(pname) FROM product; #該函數不會統計NULL值 #統計商品的條數目 SELECT COUNT(*) FROM product; # 只要有一列不是NULL,則就會統計 #查詢價格大於200商品的總條數 # from ---> where --->count ---->select SELECT COUNT(*) FROM product WHERE price > 200; #查詢分類為
c001的所有商品價格的總和 #求和都是數值類型,其他類型沒有意義 SELECT SUM(price) FROM product WHERE category_id = "c001"; #查詢分類為c002所有商品的平均價格 SELECT AVG(price) FROM product WHERE category_id = "c002"; #查詢商品的最大價格和最小價格 SELECT MAX(price)"最大價格",MIN(price)"最小價格" FROM product; #字符串的最大值和最小值是按照字典順序的最大值和最小值來定的 SELECT MAX(category_id),MIN(category_id) FROM product; #3 分組查詢(group by) #SELECT 字段1,字段2… FROM 表名 GROUP BY 分組字段 HAVING 分組條件; # 統計各個分類商品的個數 #from --->GROUP BY --->count --->select SELECT category_id, COUNT(*) FROM product GROUP BY category_id; #統計各個分類商品的個數,且只顯示個數大於2的信息 #mysql固定,如果分組之後,對分組後的結果再進行條件判斷,不能使用where,要使用having SELECT category_id, COUNT(*) "c" FROM product GROUP BY category_id HAVING c >2; #4 分頁查詢(LIMIT) # SELECT 字段1,字段2... FROM 表名 LIMIT M,N #M:表示從哪一行開始顯示(行索引:從0開始) #N: 表示要顯示多少行(固定) SELECT * FROM product LIMIT 0, 5; # 1- 5 SELECT * FROM product LIMIT 5, 5; # 6- 10 #--- 表與表之間的關系-------- #1 一對一關系:A,B A表的一行對應B表一行 #由於1對1關系可以合並成一張表,所以很少用 #2 一對多關系:A,B A表的一樣對應B表多行 #3 多對多關系: A,B A表的一行對應B表多行,B表一行對應A的多行 #一對多的關系 #1 建立主表(分類表) CREATE TABLE category( cid INT PRIMARY KEY AUTO_INCREMENT, cname VARCHAR(20) ); #2 建立從表(商品表) CREATE TABLE product( pid INT PRIMARY KEY AUTO_INCREMENT, pname VARCHAR(20), price DOUBLE, category_id INT #外鍵列:類型必須和主表的主鍵類型一致 ); #3 建立外鍵關聯 (foreign key) # alter table 從表 add [constraint] [外鍵名稱] foreign key (從表外鍵字段名) # references 主表 (主表的主鍵); ALTER TABLE product ADD FOREIGN KEY(category_id) REFERENCES category(cid); #4 給主表添加數據(隨意) INSERT INTO category VALUES(1,電子),(2,服裝); #5 給從表添加數據(受主表的限制) INSERT INTO product VALUES(NULL,聯想,5000,1); INSERT INTO product VALUES(NULL,耐克,300,2); INSERT INTO product VALUES(NULL,汽車,300,3); #主表和從表的數據關系 #1 如果主表的數據被從表關聯,則主表的數據不能刪除,除非把從表的數據先刪除 #2 主表的數據可以隨意添加,從表的數據必須依賴主表 #多對多關系 #6 建立訂單表(主表) CREATE TABLE orders( oid INT PRIMARY KEY AUTO_INCREMENT, money DOUBLE ); #7 建立中間表 (從表) CREATE TABLE product_orders( pid INT , oid INT ); #8 建立外鍵關聯(2次) ALTER TABLE product_orders ADD FOREIGN KEY(pid) REFERENCES product(pid); ALTER TABLE product_orders ADD FOREIGN KEY(oid) REFERENCES orders(oid); #9 給訂單表添加數據(隨意) INSERT INTO orders VALUES(1,8000),(2,5000); #10 給中間表添加數據(受限) INSERT INTO product_orders VALUES(1,1),(1,2); INSERT INTO product_orders VALUES(1,3);

java學習筆記之mysql2