mysql外键

MySQL手册

☆樱花仙子☆ 提交于 2019-12-01 04:56:52
/* 启动MySQL */ net start mysql /* 连接与断开服务器 */ mysql -h 地址 -P 端口 -u 用户名 -p 密码 /* 跳过权限验证登录MySQL */ mysqld --skip-grant-tables – 修改root密码 密码加密函数password() update mysql.user set password=password(‘root’); SHOW PROCESSLIST – 显示哪些线程正在运行 SHOW VARIABLES – /* 数据库操作 */ ------------------ – 查看当前数据库 select database(); – 显示当前时间、用户名、数据库版本 select now(), user(), version(); – 创建库 create database[ if not exists] 数据库名 数据库选项 数据库选项: CHARACTER SET charset_name COLLATE collation_name – 查看已有库 show databases[ like ‘pattern’] – 查看当前库信息 show create database 数据库名 – 修改库的选项信息 alter database 库名 选项信息 – 删除库 drop database[ if

MySQL详细知识点总结

杀马特。学长 韩版系。学妹 提交于 2019-11-30 18:33:18
1 Windows服务 -- 启动MySQL net start mysql-- 创建Windows服务 sc create mysql binPath= mysqld_bin_path(注意:等号与值之间有空格) 2 连接与断开服务器 mysql -h 地址 -P 端口 -u 用户名 -p 密码SHOW PROCESSLIST -- 显示哪些线程正在运行SHOW VARIABLES -- 显示系统变量信息 3 数据库操作 -- 查看当前数据库 SELECT DATABASE();-- 显示当前时间、用户名、数据库版本 SELECT now(), user(), version();-- 创建库 CREATE DATABASE[ IF NOT EXISTS] 数据库名 数据库选项 数据库选项: CHARACTER SET charset_name COLLATE collation_name-- 查看已有库 SHOW DATABASES[ LIKE 'PATTERN']-- 查看当前库信息 SHOW CREATE DATABASE 数据库名-- 修改库的选项信息 ALTER DATABASE 库名 选项信息-- 删除库 DROP DATABASE[ IF EXISTS] 数据库名 同时删除该数据库相关的目录及其目录内容 4 表的 操作 -- 创建表 CREATE

mysql多表关系

让人想犯罪 __ 提交于 2019-11-30 14:26:23
字段操作 create table tf1( id int primary key auto_increment, x int, y int ); # 修改 alter table tf1 modify x char(4) default ''; alter table tf1 change y m char(4) default ''; # 增加 mysql>: alter table 表名 add 字段名 类型[(长度) 约束]; # 末尾 eg>: alter table tf1 add z int unsigned; mysql>: alter table 表名 add 字段名 类型[(宽度) 约束] first; # 首位 eg>: alter table tf1 add a int unsigned first; mysql>: alter table 表名 add 字段名 类型[(宽度) 约束] after 旧字段名; # 某字段后 eg>: alter table tf1 add xx int unsigned after x; mysql>: alter table 表名 drop 字段名; # 删除字段 eg>: alter table tf1 drop a; 多表关系 """ 一对一:丈夫-妻子,用户-身份证,作者-作者详情 一对多:部门-员工,班级-学生,书

mysql 建表选项和约束

跟風遠走 提交于 2019-11-29 08:35:30
1.建表选项   指定列选项:      default :定义列的默认值       当插入一个新行到表中并且没有给该列明确赋值时,如果定义了列的默认值,将自动得到默认值 ;如果没有,则为null。              MariaDB [wxy]> create table bigcome (         -> id int not null primary key,         -> name varchar(128) not null,         -> sex varchar(2) default 'm'         -> );       在INSERT和UPDATE语句中使用 DEFAULT 关键字显式地给列赋默认值:         insert into bigcome values(1,'bigcome', default );          update bigcome set sex= default where id=1;       函数 default (column)可以得到一个列的默认值:         select default(sex) from bigcome;      comment :用来给列添加注释,最多255个字符,注释会保存到数据字典中       create table wxy ( id int

【Django】ORM操作#1

大城市里の小女人 提交于 2019-11-28 15:29:40
目录 一、介绍 概念 由来 优势 劣势 总结 二、Django中的ORM Django项目使用MySQL Model 快速入门 1. AutoField 2. IntegerField 3. CharField 4. ForeignKey 5. DateField 6. DateTimeField 7. dalate() 字段合集 ORM字段与数据库字段对应关系 自定义字段 字段参数 1. null 2. unique 3. db_index 4. default 5. DateField 与 DateTimefield 四、关系字段 一对多 ForeignKey 字段参数 一对一 OneToOneField 字段参数 多对多 ManyToManyField 字段参数 多对多关系的三种方式 元消息 原文: http://blog.gqylpy.com/gqy/260 @ 补充:数据迁移与反迁移 # 迁移: python manage.py makemigrations # 纪录变成 python manage.py migrate # 迁移到数据库 # 反迁移: python manage.py inspectdb > models.py 执行后,会在执行的文件内写入模型类(文件可随意指定) 一、介绍 概念 对象关系映射(Object Relational Mapping

mysql优化数据库方法

半腔热情 提交于 2019-11-28 15:22:31
首先声明此篇博客为转载,转载自最下方链接,为防止本人遗忘,故发布博客 第一方面:30种mysql优化sql语句查询的方法 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by涉及的列上建立索引。   2.应尽量避免在 where 子句中使用 !=或<> 操作符,否则将引擎放弃使用索引而进行全表扫描。   3.应尽量避免在 where 子句中对字段进行 null 值 判断,否则将导致引擎放弃使用索引而进行全表扫描,如:   select id from t where num is null   可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:   select id from t where num=0   4.应尽量避免在 where 子句中使用 or 来连接条件,否则将导致引擎放弃使用索引而进行全表扫描,如:   select id from t where num=10 or num=20   可以这样查询:   select id from t where num=10   union all   select id from t where num=20   5.下面的查询也将导致全表扫描:   select id from t where name like '%abc%'   对于 like '..%'

【MySQL】外键的变种

限于喜欢 提交于 2019-11-28 15:20:19
原文: http://blog.gqylpy.com/gqy/250 目录 三种关系 多对一 多对多 一对一 因为有foreign key的约束,使得两张表形成了三种关系: 多对一 多对多 一对多 重点理解如何找出两张表之间的关系 现在有A、B两张表 分析步骤: 1. 先站在A表的角度去找 :是否A表的多条记录可以对应B表的一条记录,如果是,则证明A表的一个字段 foreign key B表的一个字段(通常是id). 2. 再站在B表的角度去找 :是否B表的多条记录可以对应A表的一条记录,如果是,则证明B表的一个字段 foreign key A表的一个字段(通常是id). 3. 总结: 多对一 如果是步骤1成立,则是A表多对一B表 如果是步骤2成立,则是B表多对一A表 多对多 如果步骤1和步骤2同时成立,则证明这两张表是一个双向的多对一,即多对多,需要定义一个这两张表的关系表来专门存放二者的关系. 一对一 如果1和2都不成立,而是A表的一条记录唯一对应B表的一条记录,反之亦然。这种情况很简单,就是在A表 foreign key B表的基础上,将A表的外键字段设置成unique即可 三种关系 多对一 或者说是一对多 举例:书和出版社 一个出版社可以出版多本书,请看图: ![在这里插入图片描述](http://blog.gqylpy.com/media/ai/2019-03

【Django】ORM操作#1

99封情书 提交于 2019-11-28 08:05:45
目录 一、介绍 概念 由来 优势 劣势 总结 二、Django中的ORM Django项目使用MySQL Model 快速入门 1. AutoField 2. IntegerField 3. CharField 4. ForeignKey 5. DateField 6. DateTimeField 7. dalate() 字段合集 ORM字段与数据库字段对应关系 自定义字段 字段参数 1. null 2. unique 3. db_index 4. default 5. DateField 与 DateTimefield 四、关系字段 一对多 ForeignKey 字段参数 一对一 OneToOneField 字段参数 多对多 ManyToManyField 字段参数 多对多关系的三种方式 元消息 原文: http://blog.gqylpy.com/gqy/260 @ 补充:数据迁移与反迁移 # 迁移: python manage.py makemigrations # 纪录变成 python manage.py migrate # 迁移到数据库 # 反迁移: python manage.py inspectdb > models.py 执行后,会在执行的文件内写入模型类(文件可随意指定) 一、介绍 概念 对象关系映射(Object Relational Mapping

mysql 常见错误码,解决办法收录

℡╲_俬逩灬. 提交于 2019-11-28 05:47:54
本文只是记录mysql 常见错误码的解决办法 1064   出现这个状态吗的原因是,sql语句的语法错误,仔细检查语句 1701   执行truncate 操作表时,该表有外键约束   解决办法:     1.关闭外键约束       SET foreign_key_checks=0;     2.执行你需要执行的truncate 操作     3.开启外键约束       SET foreign_key_checks=1; 持续更新... 来源: https://www.cnblogs.com/makalochen/p/11395231.html

mysql 复习

假如想象 提交于 2019-11-28 03:31:07
关系型数据库核心元素 数据行(一条记录) 数据列(字段) 数据表(数据行的集合) 数据库(数据表的集合,一个数据库中能够有n多个数据表) 为什么学习数据库 测试工程师的目的是找出软件的不足,并告诉开发工程师,出现问题的环境,操作步骤和输入输出的数据.而优秀的测试工程师,当测出问题后,还可以告诉开发团队,问题的原因和解决方案. 常用数据类型 整数,有符号范围(-2147483648 ~ 2147483647) ,无符号范围(0 ~ 4294967295) 小数: decimal, 如 decimal(5,2)表示共存 5位数,小数占2位,整数占3位. 字符串:varchar,范围(0~65533),如 varchar(3) 表示最多存3个字符,一个中文或一个字母都占一个字符 日期时间:datetime,范围(1000-01-01 00:00:00~ 9999-12-31 23:59:59), 如'202-01-01 12:29:59' 约束 主键(primary key):物理上存储的顺序,int类型,无符号,自动递增的,唯一的标识,其中数据不可重复 非空(not null): 此字段不允许填写空值 唯一(unique):此字段的值不允许重复 默认值(default):当不填写此值时会使用默认值,如果填写时以填写为准 外键(foreign key):维护两个表之间的关联关系 基础知识