Python数据库基础 笔记4

一、笔记说明

  1. 本博客专栏《Python数据库基础》的所有笔记均为.py格式文件,复制后均可无误执行(注意修改文件路径,每个人的工作区不一样)。但鉴于数据库的特殊性,很多代码需要新建相同的本地数据库,这很耽误时间且对学习意义不大,建议对数据库类代码以借鉴为辅,自我实践为主
  2. 对数据库代码,请在Ubuntu18.04系统命令行下进行实践,可确保代码无误。《Python数据库基础》中SQL语言的编写标准是按照MySQL进行的,另外,本专栏还包含对Redis和mangoDB的基础操作介绍。
  3. 代码运行环境Python3.7.9,建议使用Pycharm2020.1作为编辑器,使用Anaconda3作为包管理器。

二、代码部分

# 04.py

print("1.表结构:"
      "1.1查看表结构:desc [表单名称]"
      "1.2重命名:alter table rename to [表单名称],在使用该命令之前,需要打开要重命名的表单"
      "1.3修改表单的字段(即修改表单中的数据变量类型/大小/名称等信息):alter table change [要修改的数据名称][修改后的名称][修改后数据类型]"
      "1.4仅修改表单某数据的类型:alter table [表单名称] modify [要修改的数据名称][修改后的数据类型]"
      "1.5添加字段:alter table [表单名称] add [column] [要修改的数据名称][修改后的数据类型]"
      "1.6删除字段:alter table [表单名称] drop [column] [要修改的数据名称]"
      "注:若要删除主键/外键,可以只写drop primary key/foreign key [主/外键名],不加要修改的数据名称"
      "若要添加外键,命令为:alter table [表单1名称,主表名称] add [column] constraint [约束名称/外键名称] foreign key(表单1对应数据名称) references [表单2名称](表单2对应数据名称))"
      "若要添加主键,命令为:alter table [表单1名称,副表名称] add [column] constraint [约束名称/外键名称] primary key(表单1对应数据名称) references [表单2名称](表单2对应数据名称))")

print("2.约束条件:用于限制数据类型的值类型,不满足关键字条件,报错"
      "2.1关键字:"
      "default[默认]              注:指定默认值,default [默认值]"
      "not null[非空]             注:值不可为空,default也不行"
      "unique key[唯一]           注:不可输入完全重复的数据或数据组"
      "auto_increment[自增长]     注:相当于链表,一般用于主键"
      "且默认每次输入时,有主键属性字段的数据仅增长1,可设置增长大小:set @@auto_increment_increment=[每次要增加的数据位数量]"
      "若第一次数据id=1,name=“njsd”,第二次输入时,id=2(自增),name=“kla”"
      "primary key[主键]          注:体现唯一性,相当于非空+唯一,主要的,必须存在的"
      "foreign key[外键]          注:保持数据一致性;我有的你有,你没有我也没有:外键设置要成对出现;为两个表单添加关联;"
      "如:表单1.create table a(id int primary key,age int(3));"
      "表单2.create table b(id int primary key,age int(3),foreign key (id) references a(id));"
      "即:表单1要设置为主键的字段添加primary key,表单2对应字段也添加primary key,但区别于表单1,要在字段声明语句最后写"
      "foreign key ([表单2的对应外键字段名称]) reference key [主键表单名称]([主键表单内主键字段名称])"
      "表单2中的id字段,只能添加表单1中的id字段中已有的数据。表单1中的id字段作为被参照的数据, 不能被修改和删除")

print("3.表关系:"
      "3.1对应关系:"
      "3.1.1一对一:用外键将两个表单的相同主键关联,参照2.1的外键举例;"
      "注:两个表的主键字段数据含义相同,名称相同"
      "3.1.2多对一:用外键将两个表单的不同主键关联;"
      "注:两个表的主键字段数据含义完全不同,名称也不相同,且两表单的字段间包含数据关联性或为有相同含义的数据(比如包含关系),故此一对多"
      "3.1.3多对多:需要创建中间表关联其他两个表,实现两个表单的关联,设置联合主键;类似于标准C语言的结构体;"
      "中间表包含3部分,中间表单关联主键表单(一个变量),中间表单关联外键表单(另一个变量),关联中间表单的两个变量;"
      "如:表单1[要关联的父类表]:create table cours(cours_id int primary key auto_increment,cours_name varchar(20) not null );"
      "表单2[要关联的子类表]:Create table student(s_id int primary key auto_increment,s_name varchar(20) not null);"
      "表单3[中间连接表]:"
      "create table  middle(s_id int,                          	 #用来记录表单2的要关联变量id"
      "cours_id int,  	                                          #用来记录表单1的要关联变量id"
      "primary key(s_id,cours_id),                               # 联合主键,即关联前面两个映射变量s_id和cours_id"
      "foreign key(s_id) references student(s_id),               # 使s_id关联表单1的id字段"
      "foreign key(cours_id) references cours(cours_id));        # 使cours_id关联表单2的id字段"
      "注:语句关键部分为设置联合主键的方式,primary key([表单1],[表单2])")

print("4.MySQL临时表:"
      "4.1创建临时表:create view [临时表名称] as select from [目标表单名称/查询结果]"
      "如:create view stu_2 as select stu.name from stu join data on data.d_id=stu.id"
      "注:若是对一个表单创建临时表,源表单更改,临时表更改:且临时表自己无法修改,只可以添加和删除,临时表是只读的")

三、转载说明

  1. 本文内容完全原创,文章完成时间2021.3.19。
  2. 若要转载本文,请在转载文章末尾附上本文链接:https://blog.csdn.net/qq_35772105/article/details/115005421
  3. 本文代码部分唯一MD5:44F9079A1070C252095526FD8B47D4B6。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

魔菲赫伯特

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值