ParisGabriel

每天坚持手写  一天一篇  决定坚持几年 为了梦想为了信仰

 开局一张图

今天接着昨天的说

索引有4种:

普通 索引 :index

唯一索引:unique

主键索引:primary key

外键索引:foreign key

索引查询命令:

show index from 表名\G;

Non_Unique:1   :index

Non_Unique:0  :unique

外键索引(foreign key):

定义:让当前字段的值在另一个表的范围内选择

语法:

foreign key(参考字段名)

references主表(被参考字段名)

on delete 级联动作

on update 级联动作

使用规则:

主表、从表字段数据类型要一致

主表被参考字段一般是:主键

删除外键:

alter table 表名 drop foreign key 外键名;

外键名查询:show create table 表名;

级联动作:

cascade

级联删除、更新(只限于参考字段)

restrict(默认)

从表有相关记录,不允许主表操作

set NULL

主表删除、更新,从表关联记录字段值为NULL

已有表添加外键:

alter table 表名 add

foreign key(参考字段)reference主表(被参考字段)

on delete ...

on update ...

表的复制

复制表:

create table 表名 select... from where 表名;

表结构:

create table 表名 select * from 表名 where false;

注意:

复制表的时候不会把原表的 键(key)属性复制过来

SQL 查询(高级)

嵌套查询(子查询):

定义:把内层查询结果作为外层的查询条件

语法格式:

select ...from 表名 where 条件(select...);

多表查询:

两种方式

1.

select 字段名列表 from 表名列表;(笛卡尔积)

select * from t1,t2

select t1.name,t2.name from t1,t2;

2.

select t1.name,t2.name from t1,t2

where条件

链接查询:

1.内链接

select 字段名 from 表1

innerjoin 表2 on条件

innerjoin 表3 on 条件...;

2.外链接

1.左链接

以左表为主显示查询结果

select 字段名 from 表1

leftjoin 表2 on 条件

leftjoin 表3 on 条件...;

2.右链接

以右表为主显示查询结果

select 字段名 from 表1

rightjoin 表2 on 条件

rightjoin 表3 on 条件...;

数据备份:

mysqldump 在Linux终端操作

完全备份:

mysqldump -u用户 -p源库名 > ~/xxx.sql

--all-databases  备份所有库

库名             备份单个库

-B 库1 库2..     备份多个库

库名 表1 表2...  备份指定库指定表

数据恢复:

恢复单个库

mysql -uroot -p < 目标库名 xxx.sql

从所有库备份中恢复某一个库(-one-database)

mysql -uroot -p --one-database 目标库名 < xxx.sql

注意:

1.恢复库时如果恢复到原库会将表中的数据覆盖,新增表不会删除

2.数据恢复时如果恢复的库不存在,则必须先创建空库

MySQL的账户管理:

1.开启mysql的远程连接

sudo -i

cd /etc/mysql/mysql.conf.d/

subl mysql.cnf

#bind-address = 127.0.0.1  注释掉

/etc/init.d/mysql restart

2.添加授权用户

用root用户登录mysql

mysql -uroot -p123456

授权:

grant授权列表 on库.表 to[email protected]%”

identified by “密码” with grant option

权限列表:

all privileges、select、insert

库.表: *.*  所有库所有表

示例:

1、添加授权用户tiger,密码123,对所有库的所有表有所有权限

grant all privileges on *.* to "tiger"@"%" identified by "123" with grant option;

综合性练习:

综述:两张表,一张顾客信息表customers,一张订单表orders

1、创建一张顾客信息表customers,字段要求如下:

c_id 类型为整型,设置为主键,并设置为自增长属性

c_name 字符类型,变长,宽度为20

c_age 微小整型,取值范围为0~255(无符号)

c_sex 枚举类型,要求只能在(‘M‘,‘F‘)中选择一个值

c_city 字符类型,变长,宽度为20

c_salary 浮点类型,要求整数部分最大为10位,小数部分为2位

在表中任意插入3条记录,c_name为"Zhangsan","Lisi","Wangwu", c_city尽量写"Beijing","Shanghai" ......

insert into customers values

(1,"Zhangsan",25,"M","Beijing",8000),

(2,"Lisi",30,"F","Shanghai",10000),

(3,"Wangwu",27,"M","Shenzhen",3000);

2、创建一张订单表orders,字段要求如下:

o_id 整型

o_name 字符类型,变长,宽度为30

o_price 浮点类型,整数最大为10位,小数部分为2位

设置此表中的o_id字段为customers表中c_id字段的外键,更新删除同步

在表中任意插入5条记录(注意外键限制)

o_name分别为"iphone","ipad","iwatch","mate9","r11",其他信息自己定

insert into orders values

(1,"iphone",5288),

(1,"ipad",3299),

(3,"mate9",3688),

(2,"iwatch",2222),

(2,"r11",4400);

3、返回customers表中,工资大于4000元,或者年龄小于29岁,满足这样条件的前2条记录

4、把customers表中,年龄大于等于25岁,并且地址是北京或者上海,这样的人的工资上调15%

5、把customers表中,城市为北京的顾客,按照工资降序排列,并且只返回结果中的第一条记录

6、选择工资c_salary最少的顾客的信息

7、找到工资大于5000的顾客都买过哪些产品的记录明细

8、删除外键限制

9、删除customers主键限制

1、删除自增长属性

2、删除主键限制

原文:https://www.cnblogs.com/ParisGabriel/p/9410701.html

mysql cascade 查询_Python全栈 MySQL 数据库 (SQL查询、备份、恢复、授权)相关推荐

  1. python全栈工程师证书查询_Python全栈工程师(字符串/序列)

    字符串:str 用来记录文本信息 字符串的表示方式: 在非注释中凡是用引号括起来的部分都是字符串 '' 单引号 "" 双引号 ''' ''' 三单引 ""&qu ...

  2. 视频教程-数据库SQL查询,最佳案例讲解-SQL Server

    数据库SQL查询,最佳案例讲解 教学风格独特,以学员视角出发设计课程,难易适度,重点突出,架构清晰,将实战经验融合到教学中.讲授技术同时传递方法.得到广大学员的高度认可. 王进 ¥19.00 立即订阅 ...

  3. koa+mysql+vue+socket.io全栈开发之web api篇

    原文地址:koa+mysql+vue+socket.io全栈开发之web api篇 目标是建立一个 web QQ的项目,使用的技术栈如下: 后端是基于koa2 的 web api 服务层,提供curd ...

  4. mysql数据库备份注意,Tips: MySQL数据库使用mysqldump备份恢复时的注意事项

    Tips: MySQL数据库使用mysqldump备份恢复时的注意事项背景mysqldump采坑点1. -E, -R, --triggers2. drop table3. --set-gtid-pur ...

  5. Python学习日志16 - 数据库SQL查询

    Python学习日志 RBHGO的主页欢迎关注 温馨提示:创作不易,如有转载,注明出处,感谢配合~ 目录 文章目录 Python学习日志 目录 Python学习日志16课 - 数据库SQL查询 DQL ...

  6. oracle并行查询结果不唯一,Oracle数据库并行查询出错的解决方法

    Oracle的并行查询是使用多个操作系统级别的Server Process来同时完成一个SQL查询,本文讲解Oracle数据库并行查询出错的解决方法如下: 1.错误描述 sql;"> ...

  7. Python全栈 MySQL 数据库 (索引、数据导入、导出)

    ParisGabriel 每天坚持手写  一天一篇  决定坚持几年 为了梦想为了信仰  开局一张图 表字段重命名(change) alter table 表名 change 原名 新名 数据类型: S ...

  8. koa2 mysql增删改查_react+koa2+mysql零门槛的全栈体验,附上完整项目分享

    写在前面 本文适用于对后端开发领域较为陌生的初级前端开发小伙伴,如果你想一个人搞定一整个项目(服务端接口定义开发+前端页面渲染+数据库搭建+服务器搭建+部署上线),希望这篇文章能给你带来一点点参考价值 ...

  9. 利用dao传值给mysql_koa+mysql+vue+socket.io全栈开发之数据访问篇

    后端搭起大体的框架后,接着涉及到的就是如何将数据持久化的问题,也就是对数据库进行 CURD 操作. 关于数据库方案, mongodb 和 mysql 都使用过,但我选用的是 mysql,原因: 目前为 ...

最新文章

  1. 简单电商购物程序(续1)
  2. 大剑无锋----SpringMVC原理详细解析
  3. 学习笔记DL007:Moore-Penrose伪逆,迹运算,行列式,主成分分析PCA
  4. 配置java ee_Java EE中的配置管理
  5. tailwind css_什么是Tailwind CSS,如何将其添加到我的网站或React App中?
  6. twisted 安装时,安装顺序为 zope.interface -twisted
  7. php计划任务 框架,计划任务的使用 ThinkCMF内容管理框架,做最简约的ThinkPHP开源软件...
  8. vrep中remoteAPI 编程中遇到的没有预留命令执行时间遇到的问题
  9. 项目介绍star原理_这个 Python 项目厉害了!多个实战案例教你分析时空数据处理...
  10. 计算机电子书 2019 归档
  11. Free Pascal初次体验(有亮点哦)
  12. 大话西游各服务器位置,《大话西游Ⅱ》服务器合并一览表
  13. 如何查看Windows 桌面壁纸的位置
  14. 超级会员创作者收益说明
  15. NeurIPS 2022 | 何恺明团队新作:MAE扩展到视频!学习时空表示,最优Mask比例高达90%!...
  16. 路飞学城结算中心实现
  17. C++基础 Data类的实现
  18. weui实例:城市便民自行车查询
  19. 使用pypinyin将汉字转换为全拼
  20. 图书管理系统需求规格说明文档目录_软件需求分析教与学(教学大纲)

热门文章

  1. mysq数据库管理工具navicat基本使用方法
  2. 微信支付二维码显示(二)
  3. 计算机桌面点不进系统,电脑开机进不了桌面,小编教你电脑开机进不了桌面怎么办...
  4. 使用 Powerapps 过程中解决过的问题 - 4 - 根据在搜索框中输入文本自动对数据源中不同的字段进行过滤和显示
  5. 什么叫侧链_什么是侧链基团?
  6. 国内10大github开源产品(前端)
  7. 在手机上,可以把微信图片中的文字给识别出来吗?
  8. Fabric 系统链码
  9. JAVA中的Map集合
  10. Eureka Client 注册报 registration status: 204