当前位置: 首页 > 编程日记 > 正文

mysql关系表控制_mysql表关系

一、表的详细操作

1.修改表名

alter table 旧表名 rename 新表名;

​2.修改表的引擎与字符编码

alter table 表名 engine="引擎名" ch

arset="编码名";

​3.复制表 *

#结构

create table 新表名 like 旧表名;

eg:1create table nt like tt;#将tt的表结构复制到新表nt中, 约束条件一并复制

eg:2create table nt1 select* from tt where 1=2; #将tt的表结构复制到新表nt1中, 约束条件不会复制

​#结构+数据

create table 新表名 select * from旧表名;

注: 会复制表结构+数据, 但不会复制约束条件

​4.清空表

truncate 表名;

注:表被重置,自增字段重置

二、表中字段的详细操作

create table t2(

id int primary key auto_increment,

x int,

y int

);

insert into t2(x, y) values(10, 20), (100, 200), (1000, 2000);

​1.修改字段信息 #modify

alter table 表名 modify 字段名 类型[(宽度) 约束];

alter table t2 modify x bigint default 0;#模式不同, 涉及精度问题 default设置默认值

​2.修改字段名及信息 #change

alter table 表名 change 旧字段名 新字段名 类型[(宽度) 约束];

alter table t2 change y c char(10) not null; #模式不同, 涉及类型转换问题

​3.添加字段名 #alter add#末尾添加

alter table 表名 add 字段名 类型[(宽度) 约束], ..., add 字段名 类型[(宽度) 约束];

alter table t2 add age int, add gender enum("male", "female", "wasai") default "wasai";

​#首尾添加

alter table 表名 add 字段名 类型[(宽度) 约束] first;

​#指定位添加:指定字段后

alter table 表名 add 字段名 类型[(宽度) 约束] after 旧字段名;

alter table t2 add y int after x;

​4.删除字段名 #drop

alter table 表名 drop 字段名;

alter table t2 drop y;

三、特殊表(mysql.user) 用户管理

#操作前提:登录root用户

​1.重要字段

Host| User |Password

​2.新建用户

create user 用户名@主机名 identified by'密码'; #正确

create user zero@localhost identified by 'zero';

注:insert into mysql.user(Host,User,Password) values("主机名","用户名",password("密码")); #错误

​3.设置用户权限

grant 权限们 on 数据库名.表名 to 用户名@主机名 [with grant option];

grant create on db1.*to zero@localhost with grant option;

注:权限有select,delete,update,insert,drop..., all代表所有权限

注:数据库名,表名可以用*替换,代表所有

注:设置权限时如果没有当前用户,会自动创建用户,提倡使用

重点: grant all on db1.* to owen@localhost identified by 'owen'; #(创建用户)设置权限

​4.撤销权限

revoke 权限名 on 数据库名.表名from用户名@主机名;

revoke delete on db1.* fromowen@localhost;

​5.修改密码

set passwordfor 用户名@主机名 = password('新密码');

set passwordfor owen@localhost = password('123');

​6.删除用户

drop user 用户名@主机名;

四、表关系

社会中存储需要可以构建成表的数据, 它们形成的表,往往之间存储某种或某些社会关系,

mysql数据库建立表结构就是社会中产生的各种数据, 分门别类管理;

但mysql建立的(代码层次的)表之间, 同样需要处理表与表之间的关系;

形成了 多对一 | 多对多 | 一对一 三种关系

1、多对一

案例:员工employees表 |部门department表

建表规则:

先建立主表,再建立从表,在从表中设置主表的唯一字段(通常为主键)作为外键

建表语法:

create table 主表(

id int primary key auto_increment,

...

);#创建主表实例

create table dep(

id int primary key auto_increment,

name varchar(16),

work varchar(16)

);

建从表语法:

create table 从表(

id int primary key auto_increment,

...

主表_id int,#只是在从表中起了一个名字, 该名字和主表主键对应,所有起了个见名知义的名字

foreign key(主表_id) references 主表(唯一字段名id)

on update cascade

on delete cascade

);#创建从表实例

create table emp(

id int primary key auto_increment,

name varchar(16),

salary float,

dep_id int,

foreign key(dep_id) references dep(id)

on update cascade#设置级联

on delete cascade

);

插入记录规则:

先插入主表数据,再插入从表数据

insert into dep values(1, '市场部', '销售'), (2, '教学部', '授课');

insert into emp(name, salary, dep_id) values('egon', 3.0, 2),('yanghuhu', 2.0, 2),('sanjiang', 10.0, 1),('owen', 88888.0, 2),('liujie', 8.0, 1);

更新删除数据:

两表间相互影响,先从依赖数据入手,再进行更新删除操作

eg:1删除主表dep中一个部门

deletefrom dep where id=1; =>从表emp中属于该部门的员工都被删除了

更新从表emp中一个员工的部门

update emp set dep_id=3 where name='egon'; <=部门必须存在

insert into dep values(3, '管理部', '吃饭睡觉打豆豆, 明确团队方针');

2、多对多

案例:作者author表 |书book表

建表规则:

新建第三张表,通过两个外键形成多对多关系

建表语法:

create table 表1(

id int primary key auto_increment,

...

);

create table book(

id int primary key auto_increment,

name varchar(16),

price int

);

create table 表2(

id int primary key auto_increment,

...

);

create table author(

id int primary key auto_increment,

name varchar(16)

);

create table 关系表(

id int primary key auto_increment,

表1_id int,

表2_id int,

foreign key(表1_id) references 表1(id)

on update cascade

on delete cascade,

foreign key(表2_id) references 表2(id)

on update cascade

on delete cascade

);

create table book_author(

id int primary key auto_increment,

book_id int,

author_id int,

foreign key(book_id) references book(id)

on update cascade

on delete cascade,

foreign key(author_id) references author(id)

on update cascade

on delete cascade

);

3、一对一

案例:丈夫husband表 |妻子wife表

建表规则:

未存放外键的表被依赖,称之为左表;存放外键的表示依赖表,称之为右表;先操作左边再操作右表

建表语法:

create table 左表(

id int primary key auto_increment,

...

);

create table husband(

id int primary key auto_increment,

name varchar(16)

);

create table 右表(

id int primary key auto_increment,

...

左表_id int unique,#一对一的外键需要唯一性

foreign key(左表_id) references 左表(id)

on update cascade

on delete cascade

);

create table wife(

id int primary key auto_increment,

name varchar(16),

husband_id int unique,#一对一的外键需要唯一性

foreign key(husband_id) references husband(id)

on update cascade

on delete cascade

);

相关文章:

【Python3爬虫】常见反爬虫措施及解决办法(二)...

【Python3爬虫】常见反爬虫措施及解决办法&#xff08;二&#xff09; 这一篇博客&#xff0c;还是接着说那些常见的反爬虫措施以及我们的解决办法。同样的&#xff0c;如果对你有帮助的话&#xff0c;麻烦点一下推荐啦。 一、防盗链 这次我遇到的防盗链&#xff0c;除了前面说…

【原创】ListView快速滚动至新添加一行(自动滚动)

在C#开发中我们经常要开发一些日志系统&#xff0c;尤其是基于ListView的日志显示系统。但是当日志增多是你是否有一些困扰&#xff0c;就是它为什么不会自动滚动至最后一行。以下是一小段代码&#xff0c;希望可以帮助你. public void addLog(string logString) { lock (_lock…

MFC调用CFileDialog之后目录居然会改变,调试了好久终于发现是这个问题

MFC调用CFileDialog之后目录居然会改变&#xff0c;调试了好久终于发现是这个问题&#xff0c;上网搜了下&#xff0c;发现也有人和我出现相同的问题。他的博客如下&#xff1a; http://www.programlife.net/current-directory-changed-after-using-cfiledialog.html MFC调用C…

mysqlls_mysql基本命令

1、Mysql启动命令&#xff1a;命令行内容为&#xff1a;\>net start mysql运行情况如图1所示&#xff1a;图1(Mysql启动命令)2、连接Mysql服务器&#xff1a;命令行内容为&#xff1a;\>mysql -u root -h hostaddress -p password其中&#xff0c;root为Mysql的用户名&a…

2019年3月

分包加载 使用公众号登录微信提示  "公众号暂不支持此种登录方式" 使用已经注册过的手机号注册新的微信账号提示  "你申请注册的手机号已被其他微信号绑定,暂时不能使用该手机号注册" https://github.com/witcat/LayaWxCacheFromZip /******/ (functio…

8天学通MongoDB——第三天 细说高级操作

原文地址:http://www.cnblogs.com/huangxincheng/archive/2012/02/21/2361205.html 今天跟大家分享一下mongodb中比较好玩的知识&#xff0c;主要包括&#xff1a;聚合&#xff0c;游标。 一&#xff1a; 聚合 常见的聚合操作跟sql server一样&#xff0c;有&#xff1a;count&…

UVA 10954 Add All

UVA_10954 看了别人解题报告之后发现累加的过程可以这样操作&#xff0c;每次取最小的两个元素加和&#xff0c;然后把和当作一个新元素放进集合&#xff0c;直到剩下一个元素&#xff0c;然后把中间结果加起来就是要求的结果。实际上这个题目就是哈弗曼编码&#xff0c;在LRJ树…

Java将mysql输出csv,如何从Java中的Access数据库导出表并将其保存到.csv

I am trying to export a lot of large tables from a MS Access db with java using the jdbc:odbc bridge. I wanted to save these tables to a CSV file first was wondering what would the best way to do this would be? any help would be appreciated.解决方案Fetch …

windows下nodejs express安装及入门网站,视频资料,开源项目介绍

windows下nodejs express安装及入门网站,视频资料&#xff0c;开源项目介绍&#xff0c;pm2,supervisor,npm,Pomelo,Grunt安装使用注意事项等总结 第一步&#xff1a;下载安装文件下载地址&#xff1a;官网http://www.nodejs.org/download/ 第二步&#xff1a;安装nodejs下载完…

python 之 pip、pypdf2 安装与卸载

pip是个啥&#xff1f; pip 是一个现代的&#xff0c;通用的 Python 包管理工具。提供了对 Python 包的查找、下载、安装、卸载的功能。 第一步&#xff1a;pip 下载&#xff1a;https://pypi.org/project/pip/#files 第二步&#xff1a;解压&#xff0c;进入目录python pip\pi…

eclipse 3.55安装j2ee开发工具

选择help--->install new software -->work width --选择下拉框选择要安装插件转载于:https://www.cnblogs.com/yjhrem/articles/2309602.html

mysql中没有内置函数_[mysql]MySQL中的内置函数

用在select 语句&#xff0c;以及子句where order by hacing 中 update delete函数中可以将字段名作为字段来用&#xff0c;变量的值就是这个列对应的每一行记录。一、字符串函数php中用到的函数&#xff0c;mysql中大部分也提供了1、CONCAT(”字符串”,字段&…

tiny210V2 Uboot kernel filesystem 烧写和启动

1.sd启动 将u-boot镜像写入SD卡 将SD卡通过读卡器接上电脑&#xff08;或直接插入笔记本卡槽&#xff09;&#xff0c;通过"cat /proc/partitions"找出SD卡对应的设备&#xff0c;我的设备节点是/dev/sdb.执行下面的命令$sudo dd iflagdsync oflagdsync iftiny210-ub…

Linux下Shell日期的格式

2019独角兽企业重金招聘Python工程师标准>>> 不管是哪种语言&#xff0c;日期/时间都是一个非常重要的值。比如我们保存日志的时候&#xff0c;往往是某个前缀再加上当前时间&#xff0c;这样日志文件名称就可以做到唯一。在Shell环境里&#xff0c;我们获取时间的命…

usaco 6.1

6.1.2 rectbarn 首先要注意空间的消耗,3000*3000 大概10m的样子(最多16m),只够开个char,本想套用big barn的dp方法,定义struct [i,j]{int l;int h}来表示以(i,j)为右上顶点的矩形,貌似这样会爆,只好考虑其它解法(参考wc2003王知昆的论文). 大概思路: 定义h[i,j],l[i,j],r[i,j]分…

docker mysql详解_Docker轻松入门(详解)

一 Docker简介Docker 是一个开源的应用容器引擎&#xff0c;基于 Go 语言 并遵从Apache2.0协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中&#xff0c;然后发布到任何流行的 Linux 机器上&#xff0c;也可以实现虚拟化。容器是完全使用沙…

[恢]hdu 2014

2011-12-12 05:46:08 地址&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid2014 题意&#xff1a;中文题。 mark&#xff1a;wa了3次&#xff01;&#xff01;&#xff01;因为敲错变量&#xff01;&#xff01;&#xff01;min敲成了num&#xff0c;各种二。可能是困了…

java在继承中父类的成员变量是否会被子类所覆盖

假如 父类 int num 7&#xff1b;子类 int num 9&#xff1b;父类是否会被子类所覆盖? 给你看两个例子&#xff1a; 第一个例子&#xff1a; 第二个例子&#xff1a; 这两个例子的区别只有一句话 由此证明了子类从父类继承的时候 如果有同名的成员变量 默认情况下 父类的成…

长连接及在Node中的应用——HTTP/1.1 keep-alive

HTTP请求都要经过TCP三次握手建立连接&#xff0c;四次分手断开连&#xff0c;如果每个HTTP请求都要建立TCP连接的话是极其费时的&#xff0c;因此HTTP/1.1中浏览器默认开启了Connection: keep-alive。 请求头中的这个属性的作用可以在请求完成后&#xff0c;保持TCP连接一段时…

python 桑基图 地理坐标_【转载】Python数据可视化-实现Sankey桑基图

根据不完整统计&#xff0c;90%想用sankey图的朋友都是因为被它炫酷的外表所吸引&#xff0c;举个例子&#xff1a;在这里插入图片描述关于sankey图的定义是这样描述的&#xff1a;即桑基能量分流图&#xff0c;也叫桑基能量平衡图。它是一种特定类型的流程图&#xff0c;图中延…

[恢]hdu 2015

2011-12-14 05:49:09 地址&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid2015 题意&#xff1a;中文&#xff0c;忒麻烦了。 代码&#xff1a; # include <stdio.h>int main (){int n, m, flag ;int i, sum, cnt ;while (~scanf ("%d%d", &n, &a…

http://www.shanghaihaocong.com-WORDPRESS开发的企业主题站

wordpress是世界上使用最多的php开源博客系统&#xff0c;功能强大&#xff0c;而且拥有众多的插件&#xff0c;可扩展性强。 最近&#xff0c;我也用它做了一个企业网站&#xff0c;欢迎浏览&#xff1a;http://www.shanghaihaocong.com&#xff0c;上海灏璁实业有限公司转载于…

蓝桥杯 扑克序列(全排列)

扑克序列 A A 2 2 3 3 4 4&#xff0c; 一共4对扑克牌。请你把它们排成一行。要求&#xff1a;两个A中间有1张牌&#xff0c;两个2之间有2张牌&#xff0c;两个3之间有3张牌&#xff0c;两个4之间有4张牌。 请填写出所有符合要求的排列中&#xff0c;字典序最小的那个。 例如&a…

tensorflow with求导_3.4tensorflow2.x自动求导原理函数详解

自己开发了一个股票智能分析软件&#xff0c;功能很强大&#xff0c;需要的点击下面的链接获取&#xff1a;1.1 tensorflow2.x自动求导1.1.1 自动求导GradientTape类GradientTape的作用就是用于自动求导&#xff0c;需要有自变量x和因变量y&#xff0c;调用gradient(y…

WinRAR也能实现智能备份

日志 唐山郎&#xffe5; 一切随缘,顺其自然.加博友 关注他 最新日志 2012年意味着机会还是灾难墙壁网线插座的接法佛度有缘人我~想~你&#xff0c;但不。会找你asp.net"服务器应用程序不可超惊艳! 古装美女超精美剪辑该作者的其他文章 博主推荐 相关日志 随机阅读 首页推…

MediaCodeC解码视频指定帧,迅捷、精确

原创文章&#xff0c;转载请联系作者 若待明朝风雨过&#xff0c;人在天涯&#xff01;春在天涯 原文地址 提要 最近在整理硬编码MediaCodec相关的学习笔记&#xff0c;以及代码文档&#xff0c;分享出来以供参考。本人水平有限&#xff0c;项目难免有思虑不当之处&#xff0c;…

threejs 绘制球体_ThreeJs 绘制点、线、面

所有的三位物体都是由点构成&#xff0c;两点构成线&#xff0c;三点构成面&#xff0c;ThreeJs又如何绘制出点、线、面呢 &#xff1f;在ThreeJs中&#xff1a;模型由几何体和材质构成模型以何种形式(点、线、面)展示取决于渲染方式1. 几何体首先我们来创建一个自定义的几何体…

model多表操作

一. 创建模型 from django.db import models# Create your models here.#比较常用的作者信息放到这个表里面 class Author(models.Model): id models.AutoField(primary_keyTrue)namemodels.CharField(max_length32)agemodels.IntegerField()authorDetailmodels.OneToOneField…

cocos2d-x注意事项(十)Lua发展飞机战争-4-创建主角

二战中被称为二战飞机飞机&#xff0c;当然&#xff0c;以飞机作业。这是一个游戏&#xff0c;我们必须加入一个飞机——这是我们的英雄。 首先创建一个层&#xff08;PlaneLayer&#xff09;要显示飞机。然后&#xff0c;create飞机初始化方法 module("PlaneLayer",…

.PHONY makefile中的伪目标

拿clean举例&#xff0c;如果make完成后&#xff0c;自己另外定义一个名叫clean的文件&#xff0c;再执行make clean时&#xff0c;将不会执行rm命令。 为了避免出现这个问题&#xff0c;需要.PHONY: clean所谓伪目标就是这样一个目标&#xff0c;它不代表一个真正的文件名&…