MySql的数据类型
MySQL数据类型
MySQL
支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。
MySQL 支持所有标准 SQL 数值数据类型。
这些类型包括严格数值数据类型(INTEGER、SMALLINT、DECIMAL 和
NUMERIC),以及近似数值数据类型(FLOAT、REAL 和 DOUBLE PRECISION)。
关键字INT是INTEGER的同义词,关键字DEC是DECIMAL的同义词。
BIT数据类型保存位字段值,并且支持 MyISAM、MEMORY、InnoDB 和
BDB表。
数值和数据类型
类型
大小
范围(有符号)
范围(无符号)
用途
TINYINT
1 Bytes
(-128,127)
(0,255)
小整数值
SMALLINT
2 Bytes
(-32 768,32 767)
(0,65 535)
大整数值
MEDIUMINT
3 Bytes
(-8 388 608,8 388 607)
(0,16 777...
MySql中的约束
约束
概述
约束(Constraints)是用于限制表中数据的规则,确保数据的完整性和一致性。
安全性约束
完整性约束:确保数据的准确和可靠
实体完整性约束(主键约束)
域完整性约束(数据类型)
引用完整性约束(外键约束)
用户自定义完整性约束(check 约束)
主键约束(PRIMARY
KEY)
作用:唯一标识表中的每一行,确保数据的唯一性
基本特性
唯一性:关系中任意元组的主键值必须唯一
主键列的值必须唯一且不能为 NULL。
一个表只能有一个主键,但主键可以由多个列组成(复合主键)。
关系中任意元组的主键值必须唯一(unique)
非空性:关系中任意元组在主键值必须非空
关系中任意元组在主键值必须非空(not null)
不可更改性:主键值一旦设定,通常不应修改
12345678910111213141516171819-- 创建表时指定主键CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, username...
结构化查询语言SQL
结构化查询语言SQL
关系数据模型
关系模型三要素:
关系数据结构
完整性约束
关系操作
image-20250512205709773
image-20250512205715465
码:关系中某些属性集合具有区分不同元组的作用,称为码
超码:如果关系的某一组属性的值能唯一标识每个元组,则称该组属性为超码(super
key)。
候选码:如果一个超码的任意真子集都不是超码,则称该超码为候选码。候选码是极小的超码。
主键:每个关系都有至少一个候选码,人为指定其中一个作为主键
外码:设 F 是关系 R 的属性子集。若 F 与关系 S 的主键 K 相对应,则称
F 是 R 的外键(foreign key)。
SQL分类
DDL:数据定义语言 定义了不同的数据库,表,视图,索引等数据库对象
还可以创建修改删除等操作数据库表的结构 CREATE ALTER DROP RENAME
TRUMCATE
DML:数据操作语言 增删改查数据库记录 INSERT DELETE...
Python面向对象之类的继承,类中封装和可管理属性
类的继承
从已有类中衍生出新的类,添加或修改部分功能,能提高代码复用。
子类是从父类派生出来的新类。
子类继承了父类的属性和方法,并且可以添加自己的属性和方法。
123456789101112131415161718192021222324class A(): def foo(self): print('A.foo') def zoo(self): print('A.zoo') class B(A): # B 类将继承 A 类的所有属性和方法。 def fooo(self): super().foo() # 使用 super() 函数调用父类 A 的 foo方法。 print('B.foo') def bar(self): print('B.bar') a = A()b = B()b.bar()a = A()b = B()# a.foo()# b.fooo()#...
Python面向对象之匿名函数,闭包与装饰器
匿名函数
lambda函数
匿名函数(也称为lambda函数)是一种可以在需要时快速定义的小型函数。
12sq = lambda x: x * xsq(2)
这里用到的 lambda
表达式与下面的函数定义有着相同的功能:
12345def sq(x): return(x * x)sq(2)print((lambda x: x * x)(2))
lambda表达式的基本语法如下:
lambda arg1,arg2,arg3...: <表达式>
其arg1/arg2/arg3为函数的参数
<表达式>相当于函数体
函数返回值:表达式的计算结果
注意:
lambda实际生成了一个函数对象。
lambda表达式只允许包含一个表达式。
lambda函数的使用:
可以作为另一个函数的参数传递,用于定制特定的行为。
123nums = [1, 2, 3, 4, 5]result = list(map(lambda x: x + 1,...
Python面向对象之对象和类
对象和类
由对象说起
对象与对象名称之间的区别
把变量理解为附加在对象上的标注。创建对象之后才会把变量分配给对象
例:变量 a 和 b 引用同一个列表,而不是那个列表的副本
1234a = [1, 2, 3]b = ab.append(4)b
image-20250514154637571
类与实例
在Python中通常使用class语句来定义一个类(类对象)
class定义的对象(类)可以用于产生新的对象(实例)。
12345class Person(): pass someone = Person()print(id(someone),...
Python面向对象之函数之函数简介与参数
函数
单一功能的封装。
实现代码复用。
Python语言中使用函数分为两个步骤:定义函数和调用函数。
定义函数,即根据函数的输入、输出和数据处理完成函数代码的编写。
定义函数只是规定了函数会执行什么操作,但并不会真正去执行。
调用函数,即真正去执行函数中的代码,是根据传入的数据完成特定的运算,并将运算结果返回到函数调用位置的过程。
定义函数
12345def functionname([parameters]): """docstring """ function_suite [return [expression]]
函数命名规范和变量命名一样
必须使用字母或者下划线_开头
仅能含有字母、数字和下划线
调用函数
语法格式:函数名称(), 括号中传入参数值。
1234def print_things(name): print(name ,...
Python面向对象之变量的作用域
变量的作用域
局部变量和全局变量。
变量的作用域是指变量的作用范围,即定义一个变量后,在哪些地方可以使用这个变量。
按照作用域的不同,Python 中的变量可分为局部变量和全局变量。
例:我们定义并测试一个函数,它读取两个变量的值。
12345678910# 读取两个变量的值。变量a是函数的参数;变量b,这个函数没有定义它。def f1(a): print(a) print(b)b = 5f1(2)# 2# 5
局部变量:在一个函数中定义的变量就是局部变量(包括形参),其作用域是从定义局部变量的位置至函数结束位置。
全局变量:在所有函数外定义的变量就是全局变量,其在所有函数中都可以使用。
123456def f1(a): print(a) print(b)b = 6 #如果先给全局变量b赋值,然后再调用f1,就不会出错。f1(3)
12345678910b = 6def f2(a): print(a) b = 7 print(b) b = 9 #...
Python常用模块之正则表达式与时间日期模块
Python的模块、包和库
模块(Module)通常以.py为扩展名,可以被其他程序通过import语句导入使用。
包(Package)包含多个模块,必须包含一个特殊的__init__.py文件,这个文件可以为空,但它的存在表明这个目录可以被作为一个包来使用。
库(Library)是一组完成特定功能的模块或包的集合,第三方库是Python强大生态系统的重要组成部分,它们提供了各种各样的工具和框架,使得Python成为一个功能丰富的编程语言。
re模块
使用 re
模块来处理正则表达式,正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。
简单的正则
.:匹配除换行符...
Python的文件操作
Python的文件操作
文件的打开与关闭
文件的读取与写入
文件的打开
内置函数:open(文件名, 模式)
os模块的函数:os.open(文件名, 模式)
with open(文件名, 模式) as file
文件的关闭
fileobject.close() fileobject是文件对象
os.close(file) 关闭文件
12345file_1 = open('F:\\file_1.txt', 'r')print('file_1---', file_1, type(file_1))#关闭文件之后,python才能释放对该文件的控制,可以去尝试删除该文件file_1.close()
默认的文件编码encoding一般依赖于系统的区域设置和Python的版本。
cp936代表GBK编码
标准编码参考:https://docs.python.org/3/library/codecs.html
123import io ...