数据库(mysql命令3及pymsql的使用)---12.20

链接

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()


你可能感兴趣的:(数据库(mysql命令3及pymsql的使用)---12.20)