mysql博客园day_Day 1 MySQL数据库

--插入表记录 insert

INSERT INTO teacher (gender,name,age,salary,work_time) VALUES (0,"egon",18,10000,"1990-12-12"),

(1,"yuanhao",78,2000,"1980-1-12"),

(0,"alex",998,666666,"2000-6-6"),

(0,"wusir",5,9999,"1212-8-8");--修改表记录 update

WHERE (条件) --筛选条件

UPDATE teacher SET salary = 9999 WHERE id = 1;UPDATE teacher SET salary=salary+4444 WHERE name="alex"; --在alex的salary的基础上,再加4444。

--删除表记录

--deletedelete只能用来删除一行记录

--delete语句只能删除表中的内容,不能删除表本身,想要删除表,用drop

DELETE FROMtable_name 字句;DELETE FROM teacher WHERE name="wusir";TRUNCATE TABLE table_name; --可以删除表中所有数据,词语句首先摧毁表,再新建表。此种方式删除的数据不能在事务中恢复。

--***查询表记录***/*查询语法 SELECT di,name... FROM teacher

WHERE 条件

GROUP BY fielg_name

HAVING 筛选

ORDER BY field_name

LIMIT 限制条数*/

CREATE TABLEshop_menu(

idint PRIMARY KEYauto_increment,

p_nameVARCHAR (20),

p_priceFLOAT(6,2),

p_date DATE,

p_numberINTunsigned,

classVARCHAR (20)

)CHARACTER SETutf8;INSERT INTO shop_menu (p_name,p_price,p_date,p_number,class) VALUES ("苹果",5,20170725,100,"水果"),

("香蕉",10,20170725,500,"水果"),

("床单",100,20170725,10,"家具"),

("西瓜",2,20170720,30,"水果"),

("冰箱",1000,20170725,1000,"电器"),

("沙发",800,20170720,20,"家具"),

("电饭煲",200,20170725,100,"电器");/*+----+-----------+---------+------------+----------+--------+

| id | p_name | p_price | p_date | p_number | class |

+----+-----------+---------+------------+----------+--------+

| 1 | 苹果 | 5.00 | 2017-07-25 | 100 | 水果 |

| 2 | 香蕉 | 10.00 | 2017-07-25 | 500 | 水果 |

| 3 | 床单 | 100.00 | 2017-07-25 | 10 | 家具 |

| 4 | 西瓜 | 2.00 | 2017-07-20 | 30 | 水果 |

| 5 | 冰箱 | 1000.00 | 2017-07-25 | 1000 | 电器 |

| 6 | 沙发 | 800.00 | 2017-07-20 | 20 | 家具 |

| 7 | 电饭煲 | 200.00 | 2017-07-25 | 100 | 电器 |

+----+-----------+---------+------------+----------+--------+*/

SELECT id,p_name,p_price,p_number FROMshop_menu;/*+----+-----------+---------+----------+

| id | p_name | p_price | p_number |

+----+-----------+---------+----------+

| 1 | 苹果 | 5.00 | 100 |

| 2 | 香蕉 | 10.00 | 500 |

| 3 | 床单 | 100.00 | 10 |

| 4 | 西瓜 | 2.00 | 30 |

| 5 | 冰箱 | 1000.00 | 1000 |

| 6 | 沙发 | 800.00 | 20 |

| 7 | 电饭煲 | 200.00 | 100 |

+----+-----------+---------+----------+*/

SELECT id,p_name 姓名,p_price 价格,p_number 数量 FROM shop_menu; --临时指定字段的名字,只在显示时变化/*+----+-----------+---------+--------+

| id | 姓名 | 价格 | 数量 |

+----+-----------+---------+--------+

| 1 | 苹果 | 5.00 | 100 |

| 2 | 香蕉 | 10.00 | 500 |

| 3 | 床单 | 100.00 | 10 |

| 4 | 西瓜 | 2.00 | 30 |

| 5 | 冰箱 | 1000.00 | 1000 |

| 6 | 沙发 | 800.00 | 20 |

| 7 | 电饭煲 | 200.00 | 100 |

+----+-----------+---------+--------+*/

/*-- WHERE

> < >= <= !=

between 1 and 100 -- 在1和100之间,含1,100!!!

in(5,10,100) -- 含值5,10,100的

like "a%" -- 开头含a "a___" -- 开头含a且后面有3个字符串

and or not*/

SELECT * FROM shop_menu WHERE p_price BETWEEN 1 AND 100;/*+----+--------+---------+------------+----------+--------+

| id | p_name | p_price | p_date | p_number | class |

+----+--------+---------+------------+----------+--------+

| 1 | 苹果 | 5.00 | 2017-07-25 | 100 | 水果 |

| 2 | 香蕉 | 10.00 | 2017-07-25 | 500 | 水果 |

| 3 | 床单 | 100.00 | 2017-07-25 | 10 | 家具 |

| 4 | 西瓜 | 2.00 | 2017-07-20 | 30 | 水果 |

+----+--------+---------+------------+----------+--------+*/

SELECT * FROM shop_menu WHERE p_price IN(5,10,100);/*+----+--------+---------+------------+----------+--------+

| id | p_name | p_price | p_date | p_number | class |

+----+--------+---------+------------+----------+--------+

| 1 | 苹果 | 5.00 | 2017-07-25 | 100 | 水果 |

| 2 | 香蕉 | 10.00 | 2017-07-25 | 500 | 水果 |

| 3 | 床单 | 100.00 | 2017-07-25 | 10 | 家具 |

+----+--------+---------+------------+----------+--------+*/

SELECT * FROM shop_menu WHERE p_name LIKE "苹%";/*+----+--------+---------+------------+----------+--------+

| id | p_name | p_price | p_date | p_number | class |

+----+--------+---------+------------+----------+--------+

| 1 | 苹果 | 5.00 | 2017-07-25 | 100 | 水果 |

+----+--------+---------+------------+----------+--------+*/

SELECT * FROM shop_menu WHERE p_name LIKE"苹_";/*+----+--------+---------+------------+----------+--------+

| id | p_name | p_price | p_date | p_number | class |

+----+--------+---------+------------+----------+--------+

| 1 | 苹果 | 5.00 | 2017-07-25 | 100 | 水果 |

+----+--------+---------+------------+----------+--------+*/

--order by 字段名称 排序查询

--默认从小到大(ASC)从大到小排序

SELECT * FROM shop_menu ORDER BYp_price;--后面加(DESC)默认从大到小排序

SELECT * FROM shop_menu ORDER BY p_price DESC;/*+----+-----------+---------+------------+----------+--------+

| id | p_name | p_price | p_date | p_number | class |

+----+-----------+---------+------------+----------+--------+

| 5 | 冰箱 | 1000.00 | 2017-07-25 | 1000 | 电器 |

| 6 | 沙发 | 800.00 | 2017-07-20 | 20 | 家具 |

| 7 | 电饭煲 | 200.00 | 2017-07-25 | 100 | 电器 |

| 3 | 床单 | 100.00 | 2017-07-25 | 10 | 家具 |

| 2 | 香蕉 | 10.00 | 2017-07-25 | 500 | 水果 |

| 1 | 苹果 | 5.00 | 2017-07-25 | 100 | 水果 |

| 4 | 西瓜 | 2.00 | 2017-07-20 | 30 | 水果 |

+----+-----------+---------+------------+----------+--------+*/

--分组查询 ***group by***

SELECT * FROM shop_menu GROUP BYclass;/*+----+--------+---------+------------+----------+--------+

| id | p_name | p_price | p_date | p_number | class |

+----+--------+---------+------------+----------+--------+

| 3 | 床单 | 100.00 | 2017-07-25 | 10 | 家具 |

| 1 | 苹果 | 5.00 | 2017-07-25 | 100 | 水果 |

| 5 | 冰箱 | 1000.00 | 2017-07-25 | 1000 | 电器 |

+----+--------+---------+------------+----------+--------+*/

SELECT class,SUM(p_price) FROM shop_menu GROUP BY class; --按类分组后,再显示每组价格总和/*+--------+--------------+

| class | SUM(p_price) |

+--------+--------------+

| 家具 | 900.00 |

| 水果 | 17.00 |

| 电器 | 1200.00 |

+--------+--------------+*/

SELECT class,SUM(p_price) FROM shop_menu GROUP BY class HAVING SUM(p_price)>100; --按类分组后,再显示每组价格总和大于100/*+--------+--------------+

| class | SUM(p_price) |

+--------+--------------+

| 家具 | 900.00 |

| 电器 | 1200.00 |

+--------+--------------+*/

--聚合函数就是应用在group by

--<1> 统计表中所有记录

--COUNT(列名):统计行的个数

--统计一共有多少行,再用count包上

SELECT COUNT(*) FROMshop_menu;--统计价格大于100的商品有多少个?

SELECT COUNT(p_price) FROM shop_menu WHERE p_price>100;--统计总价格大于10000的商品有多少?

SELECT COUNT(p_name) FROM shop_menu WHERE (ifnull(p_price,0)*ifnull(p_number,0))>10000;--注意:count(*)统计所有行; count(字段)不统计null值. ifnull(p_price,0) 如果输入为空,则为0.

--SUM(列名):统计满足条件的行的内容和

--统计所有水果p_price的总价?先查出所有的水果,再用sum包上每种水果总价

SELECT SUM(p_price*p_number) AS 总价格 FROM shop_menu WHERE class="水果";SELECT SUM(p_price*p_number) AS 总价格 FROM shop_menu GROUP BY class HAVING class="水果";--注意:sum仅对数值起作用,否则会报错。

--AVG(列名):

--求平均价格?先查出所有的价格,然后用avg包上。

SELECT AVG(p_price) FROMshop_menu;--Max、Min

--求单价最高和最低(数值范围在统计中特别有用)

SELECT MAX(p_price) AS 单价最高 FROMshop_menu;SELECT Min(p_number) AS 数量最少 FROMshop_menu;--注意:null 和所有的数计算都是null,所以需要用ifnull将null转换为0!

-------ifnull(JS,0)

--having 配合使用

/*having 和 where两者都可以对查询结果进行进一步的过滤,差别有:

<1>where语句只能用在分组之前的筛选,having可以用在分组之后的筛选;

<2>使用where语句的地方都可以用having进行替换

<3>having中可以用聚合函数,where中就不行。*/

--limit 表记录限制

SELECT * FROM shop_menu LIMIT 2,3; --限制显示id2后三行的内容/*+----+--------+---------+------------+----------+--------+

| id | p_name | p_price | p_date | p_number | class |

+----+--------+---------+------------+----------+--------+

| 3 | 床单 | 100.00 | 2017-07-25 | 10 | 家具 |

| 4 | 西瓜 | 2.00 | 2017-07-20 | 30 | 水果 |

| 5 | 冰箱 | 1000.00 | 2017-07-25 | 1000 | 电器 |

+----+--------+---------+------------+----------+--------+*/

--正则表达式 REGEXP

SELECT * FROM shop_menu WHERE p_name REGEXP "^床";/*+----+--------+---------+------------+----------+--------+

| id | p_name | p_price | p_date | p_number | class |

+----+--------+---------+------------+----------+--------+

| 3 | 床单 | 100.00 | 2017-07-25 | 10 | 家具 |

+----+--------+---------+------------+----------+--------+*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值