![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/fc40b362e6fd2feb7e20a3a82f280a8d.png)
-- 选取主键的一个基本原则是:不使用任何业务相关的字段作为主键。
-- 作为主键最好是完全业务无关的字段,我们一般把这个字段命名为id。
常见的可作为id字段的类型有:
1.自增整数类型:数据库会在插入数据时自动为每一条记录分配一个自增整数,
这样我们就完全不用担心主键重复,也不用自己预先生成主键;
2.全局唯一GUID类型:使用一种全局唯一的字符串作为主键,
类似8f55d96b-8acc-4636-8cb8-76bf8abc2f57。GUID算法通过网卡MAC地址、
时间戳和随机数保证任意计算机在任意时间生成的字符串都是不同的,
大部分编程语言都内置了GUID算法,可以自己预算出主键。
-- 索引的优点是提高了查询效率,缺点是在插入、更新和删除记录时,需要同时修改索引,
因此,索引越多,插入、更新和删除记录的速度就越慢。
-- 注:摘廖
2.Pandas
3.math & time & datetime & random & os
import math
math.e
math.pi
math.ceil(3.6)
math.floor(3.6)
math.sin(x), math.sinh(x),
math.degrees(3.14) # 角度转换为弧度
math.radians(180) # 弧度转换为角度
import os
os.getcwd()
os.chdir(newdir)
os.rename(current_file_name, new_file_name)
os.remove(file_name)
os.mkdir(newdir)
os.rmdir(dirname)
os.path.join() # 连接目录与文件名
os.path.split() # 分割文件名与目录
os.path.abspath() # 获取绝对地址
os.path.dirname() # 获取路径
os.path.basename() # 获取文件名或文件夹名
os.path.splitext() # 分离文件名与扩展名
os.path.isfile() # 判断是否为文件
os.path.isdir() # 判断是否为文件夹
os.walk() # 返回(dirpath, dirnames, filenames)
eg.
for root, dirs, files in os.walk(os.getcwd()):
print(root)
print(dirs)
print(files)
from datetime import date
from datetime import time
tm = time(23, 20, 35)
from datetime import datetime
dt = datetime.now()
print(dt.strftime('%a, %b %d %Y %H:%M))
dt = datetime(2019, 4, 22, 15, 51, 20)
ts = dt.timesamp()
print(datetime.fromtimestamp(ts))
import random
random.choice(['a', 'b', 'c'])
random.randint(1, 100)
random.randrange(0, 10, 2)
random.random()
random.uniform(5, 10)
random.sample(range(100), 10) # range(100)中抽样10个
random.shuffle(list) # 随机排序
# 拓展并增强datetime
import datetime
from dateutil.relativedelta import relativedelta
from dateutil import parser
datetime.date.today()
Out[6]: datetime.date(2019, 5, 20)
today = datetime.date.today()
today + relativedelta(years=-1)
Out[8]: datetime.date(2018, 5, 20)
today + relativedelta(months=-1)
Out[9]: datetime.date(2019, 4, 20)
today+relativedelta(weeks=1)
Out[10]: datetime.date(2019, 5, 27)
a = '2018-01-09'
datetime.datetime.strptime(a, '%Y-%m-%d')
Out[15]: datetime.datetime(2018, 1, 9, 0, 0)
parser.parse(a)
Out[17]: datetime.datetime(2018, 1, 9, 0, 0)