mysql基础操作
添加语句mysql特有的插入多条数据
INSERT INTO table_name (column1,column2,column3) value (value1,value2,value3),(value1,value2,value3)
更新语句
UPDATE 表名 SET 列名1= 值1,列名2=值2 where 条件
update t_student SET name = '楚留香' WHERE id=2;
删除语句
DELETE FROM 表名 WHERE 条件
DELETE FROM t_student WHERE id=37
需求:查询所有货品的id,名称和批发价(批发价=卖价*折扣)
SELECT id,productName,salePrice,cutoff,salePrice * cutoff FROM product
方便用户浏览查询的结果数据,有时需要设置显示格式,可以使用CONCAT函数来链接字符串
需求:查询商品的名字和零售价 格式:xxx商品的零售价为:xxx
SELECT CONCAT(productName,'商品的零售价为:',salePrice) FROM product
查询货品零售价为119的所有货品信息
SELECT * FROM product WHERE salePrice =119
查询货品零售价不为119的所有货品信息
SELECT * FROM product WHERE salePrice !=119
或者
SELECT * FROM product WHERE salePrice <>119
AND OR NOT
需求:选择id,货品名称,零售价在300-400之间
SELECT id,productName,salePrice FROM product WHERE salePrice>=300 AND salePrice<=400
需求:选择id,货品名称,分类编号为2,4的所有商品
SELECT * FROM product WHERE dir_id =2 OR dir_id=4
需求:选择id,货品名称,分类编号的货品零售价大于等于250或者成本大于等于200
SELECT id,productName,dir_id,salePrice,costPrice FROM product WHERE salePrice >=250 OR costPrice >=200
需求:选择id,货品名称,分类编号为不为2的所有商品
SELECT id,productName,dir_id FROM product WHERE dir_id !=2
SELECT id,productName,dir_id FROM product WHERE not dir_id =2
集合 空值 模糊查询
需求:选择id,货品名称,零售价在300-400之间
SELECT id,productName,salePrice FROM product WHERE salePrice BETWEEN 300 AND 400
取反
SELECT id,productName,salePrice FROM product WHERE salePrice NOT BETWEEN 300 AND 400
需求:选择id,货品名称,分类编号为2,4的所有商品
SELECT * FROM product WHERE dir_id in(2,4)
取反
SELECT * FROM product WHERE dir_id NOT in(2,4)
IS NULL:判断列的值是否为空
格式:WHERE 列名 IS NULL
需求:查询商品名为NULL的所有信息
SELECT *FROM product WHERE productName IS NULL
LIKE运算符进行通配符查询
%通配符:必须占据一个位置,任意字符
_通配符:可以占据0~N个位置,任意字符
需求:查询id,货品名称,货品名称匹配'%罗技M9_'
SELECT * FROM product WHERE productName LIKE '%罗技M9_'
SELECT * FROM product WHERE productName LIKE '%罗技M9%'
需求:查询id,货品名称,分类编号,零售价大于等于80并且货品名称匹配'%罗技M1__'
SELECT id,productName,dir_id,salePrice FROM product WHERE salePrice >=80 AND productName LIKE '%罗技M1__'
对查询结果排序
使用ORDER BY 子句将记录排序
ASC:升序,缺省
DESC:降序
ORDER BY子句出现在SELECT语句的最后
格式:
SELECT <seletList> FROM table_name WHERE 条件 ORDER BY 列名1[ASC/DESC],列名2[ASC/DESC]
需求,选择id,货品名称,分页编号,零售价并且按照零售价降序排列
SELECT id,productName,dir_id,salePrice FROM product ORDER BY salePrice DESC
需求:选择id,货品名称,分类编号,零售价先按分类编号排序,在按零售价排序
SELECT id,productName,dir_id,salePrice FROM product ORDER BY dir_id ASC,salePrice DESC
需求:查询M系列并按照批发价排序(加上别名)
SELECT productName,salePrice * cutoff pf FROM product WHERE productName LIKE '%M%' ORDER BY pf
分页查询
int pageSize =3//设置每页最多3条数据
int currentPage =1//当前页码
SELECT * FROM 表名 LIMIT ?,?
第一个?:表示从哪里开始截取
第二个?:每天最多的条数pageSize
SELECT * FROM 表名 LIMIT(currentPage-1)*pageSize,pageSize
第一页:
SELECT * FROM product LIMIT 0,3
第二页:
SELECT * FROM product LIMIT 3,3
统计函数
COUNT:统计结果记录数,一共有多少条数据
MAX: 统计计算最大值
MIN: 统计计算最小值
SUM: 统计计算求和
AVG: 统计计算平均值
需求:查询所有商品平均零售价
SELECT AVG(salePrice) FROM product
需求: 查询商品总记录数(在Java中要用long接受)
SELECT COUNT(id) FROM product
需求:查询分类为2的商品总数
SELECT COUNT(id) FROM product WHERE dir_id=2
需求:查询商品的最小零售价,最高零售价,以及所有商品零售价总和
SELECT MIN(salePrice),MAX(salePrice),AVG(salePrice) FROM product
需求:按照零售价升序排列,设置每页显示5条数据
SELECT id,productName,salePrice FROM product ORDER BY salePrice ASC LIMIT 0,5
多表查询
表product
表productdir
两表查询
SELECT * FROM product,productdir WHERE dir_id = productdir.id
查询货品id,货品名称,货品所属分类名称
SELECT p.id,productName,dirName FROM product p,productdir pd WHERE p.dir_id = pd.id
查询零售价大于200的无线鼠标
SELECT * FROM product p,productdir pd WHERE p.dir_id = pd.id AND p.salePrice>=200 AND pd.dirName='无线鼠标'
三表查询
查询某个货品对应的分类以及对应的库存量
SELECT p.productName,pd.dirName,ps.storeNum FROM product p,productdir pd,productstock ps WHERE p.dir_id = pd.id AND ps.product_id=p.id
如果库存货品都销售完成,按照利润从高到低查询货品名称,零售价,货品分类(三张表)
SELECT p.productName,p.salePrice,pd.dirName,(p.salePrice-p.costPrice)*ps.storeNum FROM product p,productdir pd,productstock ps WHERE p.dir_id = pd.id AND ps.product_id = p.id
自连接查询
查询每个商品分类的名称和父分类名称:
SELECT child.id,child.dirName,parent.dirName FROM productdir child,productdir parent WHERE child.parent_id = parent.id
mysql自身的数据库维护
导出: mysqldump -u账户 -p密码 数据库名称>脚本文件存储地址
mysqldump -uroot -p123 jdbcdemo>C:/demo.sql
导入:mysql -u账户 -p密码 数据库名称<脚本文件存储地址