链接
1.内链接 (A:等值链接 B:非等值连接)
左侧或者右侧出现没有对应的内容就不会被显示出来
A
第一种写法 select * from hulu,xizhi where (hulu.xizhi=xizhi.id)
第二种写法
SELECT hulu.*,xizhi.name as descname FROM hulu INNER JOIN xizhi on(hulu.xizhi=xizhi.id)
2.外链接(A :左链接 B:右链接)
A:把join左侧的表的内容全部显示出来 尽管右侧没有对应的内容
SELECT hulu.*,xizhi.name as descname FROM hulu left JOIN xizhi on(hulu.xizhi=xizhi.id)
B:把join右侧的表的内容全部显示出来 尽管左侧没有对应的内容
SELECT hulu.*,xizhi.name as descname FROM hulu right JOIN xizhi on(hulu.xizhi=xizhi.id)
3.交叉连接(笛卡尔积连接)
缺点:会出现大量的冗余
SELECT * from hulu,xizhi
4.自连接 5.自然连接
(二)显示长度
#一个汉字三个字节--所以答案为9
SELECT LENGTH("崔仙女")
(三)日期
-- 获取当天的时间 -- select NOW()
-- 只获取年 -- select YEAR(now()) --
获取当天的日期 -- select CURDATE() --
把获取的年与日按照自己给定的方式格式化 --
SELECT DATE_FORMAT(now(),"%Y年%m月%d日")
(四)去重
SELECT DISTINCT sex FROM hulu
#DISTINCT--去重
(五)下载pymsql
第一步:查看是否只下载一个python软件
第二步:如果是一个的话 就接着打 pip install pymysql
python3前安装的 使用 pip install mysqldb
(六)
import pymysql
#创建连接对象
cont=pymysql.connect(host="localhost",port=3306,db="heros",user="root",password="root",charset="utf8")print(cont)
#获取游标对象
curson=cont.cursor()
#4执行sql
count=curson.execute("select * from hulu")
print("数据库受影响的行数:%s",[count]) if count>0: print('成功') else: print("失败")
#获得里面所有的数据,并且返回为元组
users=curson.fetchall() print("数据库的数据为:%s",[users])
#获取单个
count=curson.execute("select * from hulu where id=5")
user=curson.fetchone() print("id=5的用户的信息为:%s",(user,))
#一定要绑定事务 增删改才能生效
#增
count=curson.execute("insert into hulu (name,age,wuqi,zhanduli,xizhi,sex) VALUES (%s,%s,%s,%s,%s,%s)",\ ["张三",22,"刀",70,2,"男"])
#改
count=curson.execute("update hulu set name=%s where id=%s",["橙娃",2])
#删
count=curson.execute("delete from hulu where id=5")
#绑定事务
cont.commit()
cont.close()