外键

MySQL实用基本操作

淺唱寂寞╮ 提交于 2019-12-25 10:33:41
本博客写是装好Mysql并配好环境变量后的基本操作(windows10系统下)且都是黑框内的操作。 一、登陆MySQL 首先启动服务,在桌面左下角图标处点击右键Windows PowerShell(管理员)(A),然后会出来个蓝框,在蓝框内输入 net start mysql80 (80是对应的MySQL版本如果是其他版本则输入对应的版本号,如5.7版本输入net start mysql57),然后按回车键,若显示服务已启动,则服务启动成功。 在搜索框内输入cmd则会弹出命令提示符点击进去,所谓的黑框就弹了出来,黑框不一定是黑的,可以通过右键点击左上角改变其属性,接着在黑眶内输入 mysql -u root -p ,按回车键,输入你的密码,敲回车,登陆成功进入MYSQL。 二、对数据库的操作 (1)查看数据库: show databases; (2)创建数据库: create database 数据库名; (3)使用数据库: use 数据库名; (4)删除数据库: drop database 数据库名; 部分实例 三、对表的操作 (1)创建数据表 : create table 数据表名 ( 属性1 类型, 属性2 类型,); 类型后边可以加限定条件:primary key(主键)、not null(不能为空)、unique(唯一的)、foreign key(外键)、default

数据库的备份,迁移

拥有回忆 提交于 2019-12-25 00:44:09
MYSQL数据库约束类型 一.主键约束(primary key) 主键约束要求主键列的数据唯一,并且不能为空。主键分为两种类型:单字段主键和多字段联合主键。 1.单字段主键 写法 创建列表数据时 create table a( ​ name char(9) primary key, ​ age int ); 创建列表数据结束后完毕后 create table a( ​ name char(9) , ​ age int, ​ primary key(name) ) 创建表格完后 alter table test add primary key (name); 推荐Python大牛在线分享技术 扣qun:855408893 领域:web开发,爬虫,数据分析,数据挖掘,人工智能 零基础到项目实战,7天学习上手做项目 2.多字段联合主键 主键由多个字段联合组成。语法规则:Primary Key[字段1,字段2,…,字段n] 2.自动增长 只能与primary key 联用 语法:字段 数据类型 primary key auto_increment n #n为起始位置,可以不填不填默认从1开始 二.外键约束(foreign key) 外键用来在两个表的数据之间建立连接,它可以是一列或者多列。一个表可以有一个或者多个外键。一个表的外键可以为空,若不为空

django数据库迁移时候异常

回眸只為那壹抹淺笑 提交于 2019-12-25 00:05:56
django数据库迁移时候异常 一.错误信息 Django在根据models生成数据库表时报 init () missing 1 required positional argument: ‘on_delete’ 二.原因 在django2.0后,定义外键和一对一关系的时候需要加on_delete选项,此参数为了避免两个表里的数据不一致问题,不然会报错: TypeError: init () missing 1 required positional argument: ‘on_delete’ 推荐Python大牛在线分享技术 扣qun:855408893 领域:web开发,爬虫,数据分析,数据挖掘,人工智能 零基础到项目实战,7天学习上手做项目 三.解决方法 加上字段 举例 举例说明: user=models.OneToOneField(User) owner=models.ForeignKey(UserProfile) 需要改成: user=models.OneToOneField(User,on_delete=models.CASCADE) --在老版本这个参数(models.CASCADE)是默认值 owner=models.ForeignKey(UserProfile,on_delete=models.CASCADE) --在老版本这个参数(models.CASCADE

MYSQL 语法大全自己总结的

两盒软妹~` 提交于 2019-12-24 09:44:51
mysql语法大全 --------数据链接------------------- --数据库服务启动 net start mysql --关闭服务 net stop mysql --登录 -u,-p后面不需要空格 mysql -uroot -p[密码] --退出 exit; ----MySql用户管理--------- --数据库root密码修改 操作系统:windows操作系统,xp或win7. 1.dos命令行窗口 进入e:\mysql5.5\bin ,停止mysql 服务 e:\mysql5.5\bin>net stop mysql 注意:看看那任务管理器中是否有mysqld.exe进程,如有,kill them all. 2. 以不检查权限的方式启动mysql e:\mysql5.5\bin>mysqld.exe --skip-grant-tables 你会看到窗口光标在下一行的第一个位置闪烁,这说明已经启动了,不需要管。 3. 新建一个命令行窗口同样进入到e:\mysql5.5\bin目录,启动mysql e:\mysql5.5\bin>mysql 4. 修改root密码 mysql>use mysql mysql>update user set password=PASSWORD('new_password') where user='root'; mysql

数据库的几个概念:主键,外键,索引,唯一索引

蓝咒 提交于 2019-12-24 05:57:59
主键: 主键是数据表的唯一索引,比如学生表里有学号和姓名,姓名可能有重名的,但学号确是唯一的,你要从学生表中搜索一条纪录如查找一个人,就只能根据学号去查找,这才能找出唯一的一个,这就是主键;如:id int(10) not null primary key auto_increment ;自增长的类型 ; 外键: 定义数据表   假如某个电脑生产商,它的数据库中保存着整机和配件的产品信息。用来保存整机产品信息的表叫做 Pc;用来保存配件供货信息的表叫做Parts。   在Pc表中有一个字段,用来描述这款电脑所使用的CPU型号;   在Parts 表中相应有一个字段,描述的正是CPU的型号,我们可以把它想成是全部CPU的型号列表。   很显然,这个厂家生产的电脑,其使用的CPU一定是供货信息表(parts)中存在的型号。这时,两个表中就存在一种约束关系(constraint)——Pc表中的CPU型号受到Parts 表中型号的约束。   首先我们来创建 parts 表: CREATE TABLE parts ( ... 字段定义 ..., model VARCHAR(20) NOT NULL, ... 字段定义 ... );   接下来是Pc表: CREATE TABLE pc ( ... 字段定义 ..., cpumodel VARCHAR(20) NOT NULL, ...

数据库的几个概念:主键,外键,索引,唯一索引

烈酒焚心 提交于 2019-12-24 05:57:33
主键: 主键是数据表的唯一索引,比如学生表里有学号和姓名,姓名可能有重名的,但学号确是唯一的,你要从学生表中搜索一条纪录如查找一个人,就只能根据学号去查找,这才能找出唯一的一个,这就是主键;如:id int(10) not null primary key auto_increment ;自增长的类型 ; 外键: 定义数据表   假如某个电脑生产商,它的数据库中保存着整机和配件的产品信息。用来保存整机产品信息的表叫做 Pc;用来保存配件供货信息的表叫做Parts。   在Pc表中有一个字段,用来描述这款电脑所使用的CPU型号;   在Parts 表中相应有一个字段,描述的正是CPU的型号,我们可以把它想成是全部CPU的型号列表。   很显然,这个厂家生产的电脑,其使用的CPU一定是供货信息表(parts)中存在的型号。这时,两个表中就存在一种约束关系(constraint)——Pc表中的CPU型号受到Parts 表中型号的约束。   首先我们来创建 parts 表: CREATE TABLE parts ( ... 字段定义 ..., model VARCHAR(20) NOT NULL, ... 字段定义 ... );   接下来是Pc表: CREATE TABLE pc ( ... 字段定义 ..., cpumodel VARCHAR(20) NOT NULL, ...

主键,外键,自然主键,代理主键,关系型数据库及非关系型数据库

懵懂的女人 提交于 2019-12-24 05:44:20
关系型 数据库 : 将复杂的数据结构转换为一个二维表格 即利用 关系模型把数据组织到 一个二维数据 表, 通过 SQL 即结构化查询语句去操作数据 :后期学习Jpa面向对象查询语句jpql语句操作数据 Oracle Oracle( 甲骨文 / 神域 ) 运行稳定,可移植性高,功能齐全,性能超群!适用于大型企业领域。对企业收费。 DB2 IBM 速度快、可靠性好,适于海量数据,恢复性极强。适用于大中型企业领域。 SQL SERVER 微软 全面,效率高,界面友好,操作容易,但是不跨平台。适用于于中小型企业领域。 MYSQL AB-->SUN-->Oracle 开源免费,体积小,速度快。适用于于中小型企业领域。 非关系型数据库(Not Only SQL)   是在关系型数据库上提升 高性能、高并发而生 ; ①  键值存储( key-value ): redis , Memcached -- 内存数据库(快) ②  列存储: Hbase ③  文档型数据库: mongodb ④  图形数据库: Graph 主键: 关系型数据库一张表中 唯一 的且 非空 称之为主键 (比如id,用户名不重名那种)   后期会称它用来保证记录(记录就是一张表一行数据,又称一个对象)的唯一性。简单来说,就是 同一张数据库表中,不允许存在多条相同主键的记录。 外键:   外键用于一张表与另一张表的关联

python Django 外键和表关系

我的未来我决定 提交于 2019-12-24 05:38:01
python Django 外键和表关系 一、外键 1. 两个模型之间的引用 2. 引用另一个app的模型 3. 外键引用自身 4. 外键删除操作 (1) CASCADE :级联操作 (2)2. PROTECT :受保护 (3)SET_NULL :设置为空 (4)外键数据删除,空 (5)SET_DEFAULT :设置默认值 (6) SET() :外键删除,set函数 (7) DO_NOTHING :不采取任何行为 二、表关系 1. 一对多 2. 一对一: 3. 多对多 一、外键 在 MySQL 中,表有两种引擎,一种是 InnoDB ,另外一种是 myisam 。如果使用的是 InnoDB 引擎,是支持外键约束的。外键的存在使得 ORM 框架在处理表关系的时候异常的强大。因此这里我们首先来介绍下外键在 Django 中的使用。 1. 两个模型之间的引用 类定义为 class ForeignKey(to,on_delete,**options) 。第一个参数是引用的是哪个模型,第二个参数是在使用外键引用的模型数据被删除了,这个字段该如何处理,比如有 CASCADE 、 SET_NULL 等。 这里以一个实际案例来说明。 比如有一个 User 和一个 Article 两个模型。一个 User 可以发表多篇文章,一个 Article 只能有一个 Author ,并且通过外键进行引用。

SQL级联更新,级联删除

亡梦爱人 提交于 2019-12-24 04:09:52
SQL级联更新,级联删除 今天做了个测试,搞清楚了级联更新,级联删除 级联删除:当我们没有对键加级联删除的时候,删除主键表中的数据(外键表有引用的数据)时,会报错,不能删除,必须先把相关联的外键数据 删除了,才能删除主键表的数据,但如果新建外键的时候设置了级联删除,那么当我们删除主键表的数据时,数据库就会自动帮我们把相 关联的外键表数据删除掉,这个好理解 级联更新:一直困扰我,级联更新有什么用,是更新什么东西呢,今天做了个测试(mssql),终于搞清楚了一点,我们修改主键表中和外键表进 行关联的字段(一般是主键表的主键,mssql好像必须是主键),如果我们没有设置级联更新,那么这个时候会提示不能更新,因为外键表 还有数据正在和这条数据进行关联,但是如果设置了级联更新,那么外键表的数据会自动帮我们更新 今天做了个测试,搞清楚了级联更新,级联删除 级联删除:当我们没有对键加级联删除的时候,删除主键表中的数据(外键表有引用的数据)时,会报错,不能删除,必须先把相关联的外键数据 删除了,才能删除主键表的数据,但如果新建外键的时候设置了级联删除,那么当我们删除主键表的数据时,数据库就会自动帮我们把相 关联的外键表数据删除掉,这个好理解 级联更新:一直困扰我,级联更新有什么用,是更新什么东西呢,今天做了个测试(mssql),终于搞清楚了一点,我们修改主键表中和外键表进 行关联的字段

MySQL数据约束

北慕城南 提交于 2019-12-23 13:11:46
定义:建表时在各字段类型后设置,用来对用户操作表的数据进行约束。 代码: 1.默认值 : default ' ' 作用:当用户对使用默认值的字段 不插入值 的时候,就使用默认值(自动填充)。 注意: (1) 对默认值字段 插入null 是可以的    (2) 对默认值字段可以 插入非null create table student( id int, name varchar(20), address varchar(20) default '山东淄博' /*默认值*/ ); 2.非空 : not null 作用: 限制字段 必须赋值, ' ' 空字符也是值 注意 : (1) 非空 字符 必须赋值 (2) 非空 字符 不能赋null create table student( id int, name varchar(20), address varchar(20) not null /*非空*/ );/*非空字段必须赋值*/insert into student(id,name)values(1,'张三') /*添加失败,因为没有赋值*//*非空字符不能插入null*/ insert into student values(1,'张三',NULL) /*添加失败,因为赋值NULL*/ 3.唯一 : unique 作用: 对字段的 值不能重复 注意:(1)唯一字段可以插入null