外键

MySQL数据库知识点总结

匿名 (未验证) 提交于 2019-12-02 22:02:20
DB:Database:数据库,指保存数据的文件集合。 DBMS:DataBaseManagementSystem:数据库管理系统(数据库软件),常见的数据库软件:Oracle,MySQL,SqlServer,DB2,sqlite等 SQL:StructuredQueryLanguage:结构化查询语言,用于程序员和数据库软件交互。 数据库相关SQL show databases; create database db1; show crate database db1; create database db1 character set utf8/gbk; drop database db1; use db1; 表相关SQL create table t_user(id int ,name varchar(10) ,email varchar(10)); show tables; show create table t_user; create table t_user(id int,name varchar(10),age int) engine=innodb/myisam charset=utf8/gbk; desc t_user; drop table t_user; 修改表相关 rename table t_user to t1; alter table t1

MYSQL(һ)

匿名 (未验证) 提交于 2019-12-02 22:02:20
MYSQL(һ) Ŀ¼ MYSQL(һ) 1.1数据库的操作 1.2数据表的操作 1.1数据库的操作 a.显示数据库 show databases; b.创建,删除数据库 create database db1; create database db1 default charset utf8; drop database db1 c.使用数据库 use 数据库名; d.用户管理 进入mysql,查看user,host use mysql; select user,host from user; 创建用户 create user '用户名'@'IP地址' identified by '密码'; #'alex'@'192.168.1.% 删除用户 drop user '用户名'@'IP地址'; 修改用户 rename user '用户名'@'IP地址'; to '新用户名'@'IP地址';; 修改密码 set password for '用户名'@'IP地址' = Password('新密码') e.授权管理 show grants for '用户'@'IP地址' -- 查看权限 grant 权限 on 数据库.表 to '用户'@'IP地址' -- 授权 revoke 权限 on 数据库.表 from '用户'@'IP地址' -- 取消权限 1.2数据表的操作 a.显示表 show

2019.6.11_MySQL进阶二:主键与外键

匿名 (未验证) 提交于 2019-12-02 22:02:20
通过图形界面(UI)创建外键 # 先给主表建立主键 #再给从表建立外键    ALTER TABLE emp ADD CONSTRAINT FK_deptno FOREIGN KEY(deptno) REFERENCES dept(deptno) # 删除外键    外键约束导致的主从表问题: #从表emp建立外键(deptno)时,主表dep不能删除和更新表内容 #从表emp建立外键(deptno)时,主表dept可以添加内容 #从表emp建立外键(deptno),从表emp可以删除内容。(例如公司员工的离职) #从表emp建立外键(deptno),并且dept.deptno不存在时,不能添加或更新从表emp的内容

mysql数据库专业术语说明

匿名 (未验证) 提交于 2019-12-02 21:59:42
1. 数据库简介: 数据库(database): 数据库是数据的汇集,它以一定的组织形式存于存储介质上。 补充说明: 数据库软件称为数据库管理系统(DBMS), DBMS实现数据库系统的各种功能,是数据库系统的核心。 关系型数据库: 各个数据之间存在关联是关系型数据库得名的主要原因。 当前主流的关系型数据库有Oracle、DB2、Microsoft SQL Server、Microsoft Access、MySQL等。 非关系型数据: 非关系型的,分布式的,且一般不保证遵循ACID原则的数据存储系统。 有NoSql、Cloudant等。 2.关系型数据库常见术语: 行(row): 表是一种结构化的文件,可用于存储特定类型的数据,表中的每一行,也称为一条记录。 列(column): 表中的一个字段,所有表都是由一个或多个列组成的。表中的每一列,称为属性,字段。 索引: 将表中的一个或多个字段中的数据复制一份另存,并且按特定次序排序存储。 视图: 视图是虚拟的表。与包含数据的表不一样,视图只包含使用时动态检索数据的查询。 约束(constraint)条件: 表中的数据要遵守的限制。 主键: 一个或多个字段的组合,填入的数据必须能在本表中唯一标识本行。 惟一键: 一个或多个字段的组合,填入的数据必须能在本表中唯一标识本行;允许为NULL,一个表可以存在多个 外键:

MySQL数据库---索引

匿名 (未验证) 提交于 2019-12-02 21:59:42
索引的作用就是快速找出在一个列上用一特定值的行。如果没有索引,MySQL不得不首先以第一条记录开始并然后读完整个表直到它找出相关的行。 索引的类型: 先写一个建表语句: CREATE TABLE `t_order` ( PRIMARY KEY (`id`), ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='订单信息表'; 1.常规索引 index或key,就是所谓的常规索引,也叫作普通索引。 主键索引(Primary Key),也简称主键。它可以提高查询效率,并提供唯一性约束。 一张表中只能有一个主键 。 3.唯一索引 唯一索引(Unique Key),可以提高查询效率,并提供唯一性约束。 一张表中可以有多个唯一索引 。 4.全文索引 全文索引(Full Text),可以提高全文搜索的查询效率,一般使用Sphinx替代。但Sphinx不支持中文检索,Coreseek是支持中文的全文检索引擎,也称作具有中文分词功能的Sphinx。实际项目中,我们用到的是Coreseek。 5.外键索引 外键索引(Foreign Key),简称外键,它可以提高查询效率,外键会自动和对应的其他表的主键关联。外键的主要作用是保证记录的一致性和完整性。 文章来源: MySQL数据库---索引

MySQL主从 常见的错误及解决方案

匿名 (未验证) 提交于 2019-12-02 21:59:42
一、错误日志解析: (1) 【ERROR】1452:无法在外键的表插入参考主键没有的数据 1452:无法在外键的表插入或更新参考主键没有的数据。由于item_discovery.itemid字段(外键)参考了items.itemid字段(主键),当要在item_discovery表插数据时,如果items表的主键没有对应的数据,则无法插入,报1452错误。此时可以检查参考的表的主键是否有主库对应的数据,如果有,则插入参考的表相应的数据,再开启复制恢复SQL线程。 (2) 【ERROR】1032:删除或更新数据,从库找不到记录 1032:删除或更新从库的数据,从库找不到记录。此时,主库的数据是比从库新的,可以采取从库添加相同的数据在开启复制恢复SQL线程。 (3) 【ERROR】1062:从库插入数据,发生唯一性冲突 1062:从库插入数据,发生唯一性冲突。此时从库已经有相同主键的数据,如果再插入相同主键值的数据则会报错。可以查看主库的改行数据与从库的要插入数据是否一致,如一致则跳过错误,恢复SQL线程,如不一致,则以主库为准,将从库的该行记录删除,再开启复制。 如果当前高可用架构为Master-Master,则以下均在从库的操作都必须set sql_log_bin=0,避免从库执行的语句同步到主库(恢复时以主库的数据为准)。 二、怎么解决问题: 1.临时解决方案

java-数据库――外键约束

匿名 (未验证) 提交于 2019-12-02 21:53:52
外键约束 是很常用的一种保证数据完整性的约束 具体表现是: 在从表中保存主表的主键 先有的是主表 后有的是从表 实例 创建 部门表 create table dept ( dept_id int primary key auto_increment, dept_name char(10), dept_manager char(10) ); insert into dept values (null,"财务部","张有钱"), (null,"行政部","王大力"), (null,"市场部","牛大迈"); 创建员工表emp 编号 姓名 性别 部门编号 CREATE table emp( emp_id int primary key auto_increment, emp_name char(10), emp_gender char(1), dept_id int ); insert into emp values (null,"老王","男",1), (null,"老李","男",2), (null,"老菜","男",3); insert into emp values (null,"小王","女",1), (null,"小李","女",2), (null,"小菜","女",1); 此时两个表之间没有任何联系 通常情况 只有存在响应的部门才能在部门中添加员工 一个部门被解散了

django 外键使用select html

匿名 (未验证) 提交于 2019-12-02 20:32:16
1.HTML代码: <td> <select id="depend_case" name="depend_case"> <option value="" {% if clickandback.depend_case_id == None %} selected="selected" {% endif %}> ---请选择 </option> {%for cab in clickandback_all%} <option value={{forloop.counter}} {% if cab.id == clickandback.depend_case_id%} selected="selected" {% endif %}> cab.test_case_title <!--[{{ cab.test_project }}]-[{{ cab.test_module }}]-[{{ cab.test_page }}]_{{cab.test_case_title }}--> </option> {%endfor%} </select> </td> 2.为外键时,value需要为外键的id,代码如下: <td> <select id="depend_case" name="depend_case"> <option value="" {% if clickandback.depend

jango 模型管理数据model,数据库外键主键与一对一,一对多,多对多关系

核能气质少年 提交于 2019-12-02 18:24:10
四.models.py 定义和管理模型: 4.1模型class的属性就映射与数据库的字段参数 继承models.Model class TestClass(models.Model): 4.2在数据库生成数据表: #django默认在makemigrations会为表对象创建主键id,id = models.AutoField(primary_key=True) 你也可以自定义一个主键对象: 4.2.1: 生成迁移文件python manage.py makemigrations 4.2.2执行迁移python manage.py migrate show tables; 检查数据库mysql mysql> desc app_grade; +------------+------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------+------------+------+-----+---------+-------+ | grade_id | int(11) | NO | PRI | NULL | | | grade_good | int(11) | NO | | NULL | | | grade_bad | int(11) | NO

ORM聚合分组查询及优化

一笑奈何 提交于 2019-12-02 16:40:43
1. 聚合查询 Copy# 聚合函数: aggregate from django.db.models import Max,Min,Sum,Count,Avg # 统计所有书的最高价格 res1 = models.Book.objects.all().aggregate(Max('price')) print(res1) # {'price__max': Decimal('199.00')} # 统计所有书的最低价格 res2 = models.Book.objects.all().aggregate(Min('price')) print(res2) # {'price__min': Decimal('88.88')} # 统计所有书总价格 res3 = models.Book.objects.all().aggregate(Sum('price')) print(res3) # {'price__sum': Decimal('511.10')} # 统计所有书的数量 res4 = models.Book.objects.all().aggregate(Count('price')) print(res4) # {'price__count': 4} # 统计所有书平均价格 res5 = models.Book.objects.all().aggregate(Avg(