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密码 数据库名称<脚本文件存储地址

 

posted @ 2018-05-30 15:11  迷途的小码农  阅读(648)  评论(0编辑  收藏  举报