MySQL_执行语句

插入语句

向表中添加某些字段
INSERT INTO 表名(字段1,字段2...) VALUES(1,2...);

向表中添加全部字段
INSERT INTO 表名 VALUES(1,2,3)

#值与字段必须对应,个数相同,类型相同
#值的数据大小必须在字段的长度范围内
#除了数值类型外,其它的字段类型的值必须使用引号引起。(建议单引号)
#如果要插入空值,可以不写字段,或者插入null。

蠕虫复制

- 在已有的数据基础之上,将原来的数据进行复制,插入到对应的表中 语法格式
- 将表名2的内容复制到表名1INSERT INTO 表名1 SELECT * FROM 表名2;

简单查询

1. 普通查询

1. 查询所有数据
SELECT * FROM 表名;
2. 查询指定列
SELECT 字段1,字段2... FROM 表名;

2. 别名查询

查询时给列、表指定别名需要AS关键字
使用别名的好处是方便观看和处理查询到的数据
SELECT 字段1 AS 别名, 字段2 AS 别名... FROM 表名;
SELECT 字段1 AS 别名, 字段2 AS 别名... FROM 表名 AS 表别名;

3.查询结果去重

SELECT DISTINCT 字段1,字段2... FROM 表名;

4. 查询结果参与运算

- 某列数据和固定值运算
SELECT 字段1 + 固定值 FROM 表名;
- 某列数据和其他列数据参与运算
SELECT 字段1 + 字段2 FROM 表名;

条件查询

在这里插入图片描述
建表语句

CREATE TABLE product(
	pid INT PRIMARY KEY,
	pname VARCHAR(20),
	price DOUBLE,
	category_id VARCHAR(32)
);
INSERT INTO product(pid,pname,price,category_id) VALUES(1,'联想',5000,'c001');
INSERT INTO product(pid,pname,price,category_id) VALUES(2,'海尔',3000,'c001');
INSERT INTO product(pid,pname,price,category_id) VALUES(3,'雷神',5000,'c001');
INSERT INTO product(pid,pname,price,category_id) VALUES(4,'JACK JONES',800,'c002');
INSERT INTO product(pid,pname,price,category_id) VALUES(5,'真维斯',200,'c002');
INSERT INTO product(pid,pname,price,category_id) VALUES(6,'花花公子',440,'c002');
INSERT INTO product(pid,pname,price,category_id) VALUES(7,'劲霸',2000,'c002');
INSERT INTO product(pid,pname,price,category_id) VALUES(8,'香奈儿',800,'c003');
INSERT INTO product(pid,pname,price,category_id) VALUES(9,'相宜本草',200,'c003');
INSERT INTO product(pid,pname,price,category_id) VALUES(10,'面霸',5,'c003');
INSERT INTO product(pid,pname,price,category_id) VALUES(11,'好想你枣',56,'c004');
INSERT INTO product(pid,pname,price,category_id) VALUES(12,'香飘飘奶茶',1,'c005');
INSERT INTO product(pid,pname,price,category_id) VALUES(13,'果9',1,NULL);

练习语句

# 查询所有商品
SELECT * FROM product

# 查询商品名和商品价钱
SELECT pname AS 商品名称,price AS 价钱 FROM product AS 商品表

# 去掉重复值
SELECT DISTINCT  price FROM product

# 将所有的价钱添10元
SELECT price + 10,pname,pid,category_id FROM product

# 查询商品名叫做花花公子的商品
SELECT * FROM product WHERE pname = '花花公子'

# 查询商品价格为800的商品
SELECT * FROM product WHERE price = 800;

# 查询商品价格大于60元的商品
SELECT * FROM product WHERE price > 60;

# 查询商品价钱在200到1000之间的商品
SELECT * FROM product WHERE price BETWEEN 200 AND 1000
SELECT * FROM product WHERE price >= 200 AND price <= 1000


# 查询所有商品价钱是200或者800的商品
SELECT * FROM product WHERE price = 200 OR price = 1000
SELECT * FROM product WHERE price IN(200,1000)

# 查询商品名字中包含霸字的
SELECT * FROM product WHERE pname LIKE '%霸%'

# 查询以香开头的所有名字
SELECT * FROM product WHERE pname LIKE'香%'

# 查询第二字是想的
SELECT * FROM product WHERE pname LIKE '_想%'

# 查询商品没有分类的商品
SELECT * FROM product WHERE category_id IS NULL;

# 查询所有有分类的商品
SELECT * FROM product WHERE NOT category_id IS NULL
SELECT * FROM product WHERE category_id IS NOT NULL

排序查询

通过order by语句将查询出的结果进行排序

- 格式:
SELECT * FROM 表名 ORDER BY 排序字段 ASC / DESC

测试

# 按照价格降序
SELECT * FROM product ORDER BY price DESC
SELECT * FROM product ORDER BY price ASC

# 在价格降序的基础上,按照分类升序
SELECT * FROM product ORDER BY price DESC,category_id DESC

# 显示商品价格(去重),并且排序
SELECT DISTINCT price FROM product ORDER BY price DESC 

聚合查询

聚合函数是纵向查询,它是对一列一列到的值进行计算,返回一个单一的值,
聚合函数会忽略空值

count:统计指定列不为NULL的记录行数;

sum:计算指定列数的和,如果指定列类型不是数值类型,那么计算结果为0;

max:计算指定列的最大值,如果指定列是字符串类型,那么使用字符串排序运算;

min: 计算指定列的最小值,如果指定列是字符串类型,那么使用字符串排序运算;

avg:计算指定列的平均值,如果指定列类型不是数值类型,那么计算结果为0;

# 查询商品的总条数
SELECT COUNT(*) FROM product
# 查询价钱大于200的商品的总条数
SELECT COUNT(*) FROM product WHERE price > 200
# 查询分类为c001的分类商品的总和
SELECT COUNT(*) FROM product WHERE category_id='c001'
SELECT category_id,COUNT(*) FROM product GROUP BY                      
#查询分类为c002所有商品的平均价格
SELECT AVG(price) FROM product WHERE category_id = 'c002'
SELECT AVG(price) FROM product WHERE category_id = 'c002'
#查询商品的最大价格和最小价格
SELECT MAX(price)AS '最高价',MIN(price) AS '最低价' FROM product

分组查询

分组查询是指使用 GROUP BY 字句对查询信息进行分组

格式
SELCET * FROM 表名 GROUP BY 分组字段 HAVING	 分组条件;
- 分组操作中的having子语句,是用于在分组后对数据进行过滤的,作用类似于where条件。

HAVING 与 WHERE 的区别

  • HAVING 是在分组之后进行过滤
    WHERE 是在分组之前进行过滤
  • HAVING后面可以使用分组函数(统计函数)
    WHERE后面不可以使用分组函数
# 统计各个分类商品的个数
SELECT category_id ,COUNT(*) FROM product GROUP BY category_id
# 统计各个分类商品的个数,并且显示个数大于1的信息
SELECT category_id,COUNT(*) AS 'showNum' FROM product GROUP BY category_id HAVING showNum > 1

猜你喜欢

转载自blog.csdn.net/HongRi_/article/details/88398293
今日推荐