python学习之老男孩python全栈第九期_数据库day001知识点总结 —— MySQL操作数据库以及数据表、基本数据类型、基本增删改查、外键定义以及创建

一. 学习SQL语句规则以及外键
1. 操作文件夹
        create database db2;    创建文件夹
        create database db2 default charset utf8;    创建文件夹,且数据库是utf-8编码
        show databases;         查看文件夹
        drop database db2;      删除文件夹

2. 操作文件
        use dn2;        进入文件夹
        show tables;    查看所有文件
        create table t1(id int,name char(10));       创建一个有两列的表
        create table t1(id int,name char(10)) default charset = utf8;       创建一个有两列的表,且内容为utf8编码

        create table t1(
            列名,类型 null,     # 是否为空
            列名,类型 not null default 1,
            列名,类型 not null auto_increment,      # 自增
            id int,
            name char(10)
        ) engine = innodb default charset = utf8;
        比如:
            create table t1(
                id int not null auto_increment primary key,  # 这两个一般要一起写
                                              # auto_increment : 表示自增;一个表里面只能有一个自增列
                                              # primary key :表示 约束(不能重复,且不能为空);加速查找
                name char(10)
            ) engine = innodb default charset = utf8;

        innodb 支持事务,原子性操作
        myisam 不支持事务

        delete from t1;         # 把表里面的内容清空,且若再插入数据,自增id会继续之前的顺序,而不是从头开始自增
        truncate table t1;          # 把表里面的内容清空,且若再插入数据,自增id会从头开始自增
        drop table t1;          # 删除表
    3. 操作文件中内容

        insert into t1(id, name) values(1, 'egon');     插入一条数据

        delete from t1 where id < 6;                    删除数据

        update t1 set age =18;                          把age列 全部改成18
        update t1 set age =18 where age = 17;           把age等于17的,改成18

        select * from t1;                               查看
    外键:
        create table userinfo(
            uid bigint auto_increment primary key,
            name varchar(32),
            department_id int,
            constraint fk_user_depar foreign key ('department_id',) references department('id')         # 外键约束
        )engine = innodb default charset = utf8;

        create table department(
            id bigint auto_increment primary key,
            titlt char(32)
        )engine = innodb default charset = utf8;


二. MySQL数据表基本数据类型
数据类型:
数字:
tinyint
int
bigint
小数:
float(不太精准)
double(不太精准)
decimal(精准小数)

字符串:
char(10): (最大255字符)
如果没有10个,就会自动填充空格到10个,(root )
varchar(10): (最大255字符)
最多能写10个,不会填充(root),节省空间,但速度没有char快
创建数据表时,定长列往前放置,变长的往后放

text

上传文件:
文件存硬盘
db存路径

enum 枚举

set

时间类型:
datetime:YYYY-MM-DD HH:MM:SS


create table t1(
id int not null auto_increment primary key,
num decimal(10,5), # ()里面 第一个数是总位数,第二个数是小数点后面最多几位
name char(10)
) engine = innodb default charset = utf8;

原文地址:https://www.cnblogs.com/lpgit/p/9425590.html