一内容回顾

  存储引擎:主要描述的是数据存储的不同方式

  innodb 支持事务\支持外键\行级锁\聚焦索引

  myisam 不支持事务\不支持外键\表级锁\非聚焦索引

  memory 只能在内存中存储表数据\存取速度快\断电数据丢失

  blackhole 无论写入什么数据都不存储在表中\但是照常生成binlog日志\用于数据的分流

  

  表结构的增删改查

  创建表结构

    create table 表名 (字段名  字段类型[(宽度) 约束条件],...)

  查看表结构

    desc  表名;

    show create table 表名\G

  mysql 中的数据类型

    数字

      有多种表示数字的数据类型,分为小数和整数

      整数根据不同的数据类型,能表示的数据范围也不同

      小数根据不同的数据类型,对数据小数位的精准控制不同

      定义整数类型的时候,后面的宽度,约束的不是数字的位数,而是显示的宽度

     # int(11)
# float(7,2),一共7位数,小数部分占2位,整数部分占5位
# bigint 能放更大的数据
# double 比float更精准(255,30)
# decimal 超级精准,默认为整数,(65,30)
 # 字符串
# char(11) 定长 \浪费空间\存取速度快\(用户名\性别\手机号\银行卡号\身份证\密码\车牌号)
# varchar(11) 不定长\节省空间\存取速度慢\(地址\评论)
 # 时间
# date 年月日
# datetime 年月日时分秒 可以为空
# timestamp 年月日时分秒 不能为空 默认值是当前时间 update的时候更新时间字段 能表示的时间范围短
# insert into 表 values ('2018-12-18 09:06:23')
# insert into 表 values ('2018/12/18 09+06+23')
# insert into 表 values ('20181218090623')
# insert into 表 values (20181218090623)
# 集合和枚举
# set 多选 自动去重,不在set中的不写入表
# enum单选 不在enum单选中的不写入表

二今日内容

# 一 表结构操作
# 表结构的操作
# 修改表结构
# 删除表结构 # create table 表名 (字段名 字段类型[(宽度) 约束条件],...)
# 约束条件 # 二 数据操作
# 增 insert数据
# 删 delete数据
# 改 update数据
# 查 select数据
# 单表查询
# 连表查询

表的操作

一\修改表结构
# 增加字段
# 1. alter table 表名 add 字段 新的数据类型 ;
# 2. alter table 表名 add 字段 新的数据类型 first;
# 3. alter table 表名 add 字段 新的数据类型 after 某字段; # 删除字段
# 1. alter table 表名 drop 字段; # 修改字段
# 1. alter table 表名 modify 字段 新的数据类型;
# 2. alter table 表名 modify 字段 数据类型 first;
# 3. alter table 表名 modify 字段 数据类型 after 某字段; # 1. alter table 表名 change 旧字段 新字段 数据类型;
# 2. alter table 表名 change 字段 字段 数据类型 first;
# 3. alter table 表名 change 字段 字段 数据类型 after 某字段; # 二\删除表结构
# drop table 表名;

约束条件

# 什么是约束
# not null 不能为空的
# unique 唯一 = 不能重复
# primary key 主键 = 不能为空 且 不能重复
# foreign key 外键约束 # 为什么要约束
# 是因为一个表中的数据要想完整规范,就必须对一些字段有基础的约束
# 一般情况下,我们都会根据程序的需求个特点对数据库进行约束
# 在你的开发生涯中,你应该对数据有一个基础的判断 # 在mysql中不区分大小写
# 一个关键字 :NULL null关键字 表示 空(相当于PYTHON中的None) # 创建表
# create table 表名 (字段名 数据类型(宽度) 约束条件,) # 约束一 not null
# create table t (id int not null,
# sex enum('male','female') not null default 'male') # 约束二 unique 唯一,允许多个字段为null
# 设置某一个字段的内容必须是唯一的
# create table t3 (id int unique); # 你设置了唯一,就不能插入两个相同的内容 测试:除了null之外
# create table t3 (id int not null unique); # 你设置了唯一+非空,就不能插入两个相同的内容,也不能插入NULL,就相当于设置了一个主键primary key
# create table t3 (id int, name char(12), unique(id),unique(name));
# create table t4 (pid int, pname char(12),ip char(15),port int,unique(ip,port));
# create table t4 (pid int, pname char(12),
# ip char(15) not null,
# port int not null ,
# unique(ip,port)); # 记录每一个程序的信息
# pid 程序名 ip地址 端口号
# 111 pycharm
# 123 pycharm
# 234 mysqld 192.168.11.44 3306
# 234 mysqld 192.168.11.22 3306
# 235 kugou 192.168.11.44 8000 # 两个或者多个字段的内容 = 联合唯一 # 约束三
# 主键 每一张表只能有一个主键
# primary key = not null + unique
# create table t5 (id int primary key);
# 能设置多个主键么 ? 不能
# create table t5 (id int primary key,name char(12) primary key);
# 能不能设置多个非空 + 唯一 ? 能
# create table t6 (id int not null unique,name char(12) not null unique);
# 联合主键
# create table t7 (pid int, pname char(12),
# ip char(15),
# port int,
# primary key(ip,port)); # auto_increment 自增
# create table t8 (id int unique auto_increment,name char(12));
# create table t9 (id int primary key auto_increment,name char(12));
# 对于自增id来说,删除数据并不会影响自增
# 设置为自增,用户最好不要自己插入这个字段 # 约束四 外键
# 部门id 部门名称 部门办公室号
# create table department (id int unique,dep_name char(20),dep_num int);
# alter table department modify id int unique; # 员工id name 年龄 工资 部门id(外键)
# create table employee (id int,name char(12),age int,salary int,dep_id int,
# foreign key(dep_id) references department(id)); # insert into department (id,dep_name) values
# (1,'教质部'),
# (2,'技术部'),
# (3,'人力资源部'); # 如果添加了外键约束,外键是employee(dep_id),那么employee(dep_id)和department (ide)都会受到约束
# update department set id = 3 where id = 2; # create table employee2 (id int,name char(12),age int,salary int,dep_id int,
# foreign key(dep_id) references department(id) on delete cascade on update cascade ); # insert into department (id,dep_name) values
# (3,'人力资源部');
#
# insert into employee2 (id,name,dep_id) values
# (1,'yuan',1),
# (2,'nezha',2),
# (3,'egon',2),
# (4,'alex',2),
# (5,'wusir',3),
# (6,'李沁洋',3),
# (7,'皮卡丘',3),
# (8,'程咬金',3),
# (9,'程咬银',3)
# ; # 约束 4个
# not null # 不允许为空
# default # 设置默认值
# unique # 唯一,不能约束null
# 联合唯一
# auto_increment # 自增
# primary key # 主键 = not null + unique (同一张表不能有两个主键)
# 联合主键
# foreign key # 本表中的字段关联另一张表中的"唯一"字段 ,本表中的字段是 外键,外表中的字段必须唯一/主键 # create table 表名 (
# 字段名1 字段类型(宽度) not null default 默认值,
# 字段名2 字段类型(宽度) not null unique,
# 字段名3 字段类型(宽度) primary key,
# 字段名4 int(宽度) unique auto_increment,
# ) # create table 表名 (
# 字段名1 字段类型(宽度) not null,
# 字段名2 字段类型(宽度) not null,
# 字段名3 字段类型(宽度),
# 字段名4 int(宽度),
# unique(字段名2),
# primary key(字段名3),
# unique(字段名4) auto increment,
# ) # create table 表名 (
# 字段名1 字段类型(宽度) not null,
# 字段名2 字段类型(宽度) not null,
# 字段名3 字段类型(宽度),
# 字段名4 int(宽度) auto increment,
# unique(字段名1,字段名2),
# primary key(字段名3,字段名4),
# ); # create table 表名(
# 字段名1 字段类型(宽度) not null,
# 字段名2 字段类型(宽度) not null,
# 外键名 字段类型(宽度),
# foreign key (外建) references 外表(外表中的字段)
# on delete cascade
# on update cascade,
# primary key(字段名1)
# ) # 添加主键
# alter table 表名 modify 字段名 类型(宽度) primary key;

day46 Pyhton 数据库Mysql 03的更多相关文章

  1. day45 Pyhton 数据库Mysql 02

    一.前期回顾 数据库 mysql的安装 配置环境 为什么要用数据库? 稳定性 一致性 并发 存取数据效率高 数据库的分类 关系型数据库 mysql oracle sqlserver 非关系型数据库 r ...

  2. day49 Pyhton 数据库Mysql 06

    多表查询 连表查询 要进行连接,那一定涉及两个表,两个表中要有关联条件才能进行连接 内连接 只有表一和表二中的连接条件都满足的时候才能显示出来 inner join on /where 条件 sele ...

  3. day44 Pyhton 数据库Mysql

    内容回顾 什么是进程? 就是为了形容执行中的程序的一种称呼 它是操作系统中资源分配的最小单位 进程之间是数据隔离的,占用操作系统资源相对多 独立存在的 谈谈你对并发的理解 同时有多个任务需要执行,但是 ...

  4. day48 Pyhton 数据库Mysql 05

    一内容回顾 insert insert into 表名 (字段名)  values (值) insert into 表名 values (有多少个字段写多少个值) insert into 表名 val ...

  5. day47 Pyhton 数据库Mysql 04

    # 表结构 # 建表 - 表的增加 # create table # 删表 - 表的删除 # drop table # 改表 - 表的修改 # alter table 表名 # rename 新表名 ...

  6. 数据库mysql的常规操作

    1. 什么是数据库? 数据库(Database)是按照数据结构来组织.存储和管理数据的建立在计算机存储设备上的仓库. 简单来说是本身可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进 ...

  7. 数据库MySQL经典面试题之SQL语句

    数据库MySQL经典面试题之SQL语句 1.需要数据库表1.学生表Student(SID,Sname,Sage,Ssex) --SID 学生编号,Sname 学生姓名,Sage 出生年月,Ssex 学 ...

  8. MYSQL添加新用户 MYSQL为用户创建数据库 MYSQL为新用户分配权限

    1.新建用户 //登录MYSQL @>mysql -u root -p @>密码 //创建用户 mysql> insert into mysql.user(Host,User,Pas ...

  9. Robot Framework-DatabaseLibrary数据库(MySql)

    Robot Framework-Mac版本安装 Robot Framework-Windows版本安装 Robot Framework-工具简介及入门使用 Robot Framework-Databa ...

随机推荐

  1. Redis windows版安装测试

    1.下载 下载地址是 https://github.com/microsoftarchive/redis/releases/tag/win-3.2.100 ,我选择的是Redis-x64-3.2.10 ...

  2. C#开发PACS医学影像处理系统(三):界面布局之工具栏

    工具栏布局采用WPF中Grid作为容器,按钮采用自定义样式和图标,并采用Separator分割线: XAML设计器代码: 其中  Style="{StaticResource ButtonS ...

  3. flutter driver 集成测试

    最近一直断断续续的学习flutter,今天跟大家介绍一下flutter driver测试. flutter测试基础 Flutter的测试遵循Android的测试规范进行了分层. 单元测试:测试单一功能 ...

  4. 老男孩教育python全栈第22期Day15笔记

    day15 今日内容大纲 昨日内容回顾作业讲解 装饰器:完美的呈现了开放封闭原则.装饰器的本质:闭包. def wraper(f): def inner(*args, **kwargs): " ...

  5. HA切换失败原因分析

    1. 问题描述 redhat在进行HA切换时,需要先停止service,并释放调当前主机占有的资源,比如说IP Address和Filesystem,但今天我在验证HA切换时,发现service一直停 ...

  6. Magicodes.IE 2.3重磅发布——.NET Core开源导入导出库

    在2.3这一版本的更新中,我们迎来了众多的使用者.贡献者,在这个里程碑中我们也添加并修复了一些功能.对于新特点的功能我将在下面进行详细的描述,当然也欢迎更多的人可以加入进来,再或者也很期待大家来提is ...

  7. (专题四)05 matlab视角处理

    方位角 视角 子图一 子图二,视点设置在图形的正上方 子图三,视点设置在图形侧面时的效果 子图四,十点设置在图形斜下方的效果 \circ用于输出符号° view函数的其他用法 视点在笛卡尔坐标中的位置 ...

  8. iOS多线程之超实用理论+demo演示(可下载)

    目录 背景简介 GCD.OperationQueue 对比 核心理念 区别 GCD 队列 串行队列(Serial Queues) 并发队列(Concurrent Queues) 串行.并发队列对比图 ...

  9. pytest封神之路第四步 内置和自定义marker

    可以通过命令行查看所有marker,包括内置和自定义的 pytest --markers 内置marker 内置marker本文先讲usefixtures .filterwarnings .skip ...

  10. js实现表单验证

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...