我是靠谱客的博主 平常太阳,最近开发中收集的这篇文章主要介绍Mysql进阶Mysql进阶,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Mysql进阶

1 多表查询

(1) 内连接查询

隐式内连接查询
SELECT product.id,product.productName,productdir.dirName FROM product,productdir WHERE product.dir_id=productdir.id
显示内连接查询
SELECT p1.id,p1.productName,p2.dirName FROM product p1 INNER JOIN productdir p2 ON p1.dir_id=p2.id
SELECT p1.id,p1.productName,p2.dirName FROM product p1 JOIN productdir p2 ON p1.dir_id=p2.id

(2) 外连接查询

SELECT * FROM product LEFT JOIN productdir ON product.dir_id=productdir.id
SELECT * FROM product RIGHT JOIN productdir ON product.dir_id=productdir.id

(3) 自连接查询

SELECT
c1.id '序号',c1.cityname '国家',c2.cityname '省份'
FROM
city
c1 INNER JOIN
city
c2
ON
c1.id=c2.parentid
WHERE
c1.id=1
SELECT c1.id '序号',c1.cityname '国家',c2.cityname '省份',c3.cityname '市区',c4.cityname '县区'
FROM city
c1
INNER JOIN
city c2
INNER JOIN
city
c3 INNER JOIN city c4 ON c1.id=c2.parentid AND c2.id=c3.parentid AND c3.id=c4.parentid

(4) 子查询

SELECT * FROM product WHERE salePrice>(SELECT salePrice FROM product WHERE productName='罗技MX1100')
SELECT * FROM product WHERE (dir_id,cutoff)=(SELECT dir_id,cutoff FROM product WHERE productName='罗技M100')

2 数据操作

(1) 插入数据

INSERT INTO dept (id,dname) VALUES (4,’人事部’)
INSERT INTO dept VALUES (5,’后勤部’)
INSERT INTO dept (id,dname) VALUES (6,’营销部’),(7,’财务部’)

(2) 修改数据

UPDATE product SET salePrice =salePrice*1.2 WHERE salePrice > 300
UPDATE product SET salePrice=salePrice*1.1 WHERE salePrice > 300
AND id=3

(3) 删除数据

DELETE FROM dept WHERE dname=’财务部’

3 函数

(1) castt函数

语法:
cast(as 类型)
cast(123as SIGNED)123转换为int类型,返回值为整型类型
select cast(salePrice as decimal)---->数据类型
----Java中的数据类型

(1) decimal类型----Java BigDecimal

SELECT
cast('123.4456' as DECIMAL(P,D))
P 表示有效数字的位数,D表示保留多少位小数
SELECT cast('123.4456' as DECIMAL(7,2))

(2) convert()函数
对于简单类型转换,CONVERT()函数和CAST()函数的功能相同,只是语法不同。CAST函数一般更容易使用,其功能也更简单。

语法:
select convert(expr ,type)
select convert(123,signed)
SELECT CONVERT(123.4456,DECIMAL(7,2))

(3) IFNULL函数

IFNULL(expression_1,expression_2);
如果expression_1不为NULL,IFNULL函数返回expression_1; 否则返回expression_2的结果。

最后

以上就是平常太阳为你收集整理的Mysql进阶Mysql进阶的全部内容,希望文章能够帮你解决Mysql进阶Mysql进阶所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部