五种多表关联查询

五种多表关联查询_第1张图片
SELECT DISTINCT deptId FROM heros 消去重复的数据


五种多表关联查询_第2张图片



五种多表关联查询_第3张图片


五种多表关联查询_第4张图片

当python3的版本低于3的时候,装mysqldb,当高于3版本的时候,安装pymysql,

当我们python2和python3都安装的时候,必须用python2 -m这种方法来安装

当在Linux安装

可以通过 pip2  install   mysqldb

pip3  install pymysql

交叉连接

-- SELECT * FROM heros,dept 这相当于每次访问一个heros中的对象,则对应的访问dept中的对象

-- SELECT * FROM heros CROSS JOIN dept; 给对一次结果一样

-- 内连接

-- 等值相连接

-- SELECT * FROM heros, dept WHERE heros.deptId = dept.id 如果heros中的deptId为空则不对应,也就是会造成

-- 用户的没有完全统计

-- SELECT * FROM heros INNER JOIN dept ON(heros.deptId = dept.id ) 利用INNER JOIN,进行等值内连接

-- SELECT e.*,d.* FROM heros as e INNER JOIN dept AS d ON(e.deptId = d.id)  利用取别名进行等值连接,当我们的数据库名特别长的时候

-- 可以通过取别名进行

-- 外连接 报表

-- 左外连接

-- SELECT * FROM heros LEFT JOIN dept ON(heros.deptId=dept.id) 默认以heros LEFT JOIN左边的表来进行匹配

-- SELECT * FROM heros RIGHT JOIN dept ON(heros.deptId=dept.id) 默认以heros RIGHT JOIN dept的dept来进行匹配

-- 自然连接

-- SELECT * FROM heros NATURAL JOIN dept  自然连接,去掉所有的重复的数据

-- 子查询

-- SELECT * FROM deptId WHERE age=(SELECT * FROM heros WHERE id=3) 以上次的查询结果来当做下一次查询的条件

-- SELECT LENGTH("今天天气真好") # 结果18一个汉字占3个字节

-- SELECT CHAR_LENGTH("今天天气真好")#结果 6 查询字符的长度

-- SELECT TRIM(          "today is goodday        ")  # 去掉字符串的左右的空格today is goodday

-- SELECT SUBSTRING("xu gao peng", 1, 4) 1是查询的开始,4是查询的长度

-- SELECT SUBSTR("xu gao peng", 1, 4)  1是查询的开始,4是查询的长度

-- SELECT ASCII("a") a 的ascii为97

-- SELECT ASCII("A") #A 的ascii为65

-- SELECT ASCII(0)  0 的ascii为48  知道这三个其他可以推算出其他的数字和字母的ascii码

-- 日期

-- SELECT NOW() 2017-12-20 20:19:26 获取所有的时间整数

-- SELECT YEAR(now()) 获取年

-- SELECT MONTH(now()); 获取月份

-- SELECT CURDATE(); 获取当前的时间,去掉时分秒 以下两个这是SELECT NOW()的组合

-- SELECT CURTIME(); 获取当前的时间的时分秒

你可能感兴趣的:(五种多表关联查询)