首页 > 数据库 >Mysql数据库设计和事务

Mysql数据库设计和事务

时间:2023-04-28 16:56:32浏览次数:44  
标签:事务 数据库 t1 dept job emp Mysql id select

一对一 在任意一方建立外键,关联另一方主键
一对多 在多的一方建立外键关联另一方的主键
多对多 1.建立中间表 2.中间表至少包含2个外键,分别关联双方主键

内连接 1. 隐式连接 select * from emp,dept where emp.dep_id=dept.did
   2.显式连接 select * from emp(inner)join dept on emp.dep_id=dept.did
外连接 1. 左外连接 select * from emp left join dept on emp.dep_id=dept.did
   2.右外连接 select * from emp right join dept on emp.dep_id=dept.did

子查询

  1. 单行单列 select 字段列表 from 表名 where 字段名=(子查询)
  2. 多行单列 select 字段列表 from 表名 where 字段名 in (子查询)
  3. 多行多列 select 字段列表 from (子查询) where 条件

  1. select emp.id,emp.ename,emp.salary,job.jname,job.description from emp,job where emp.job_id=job.id
  2. select emp.id,emp.ename,emp.salary,job.jname,job.description,dept.dname,dept.loc from emp,job,dept where emp.job_id=job.id and emp.dept_id=dept.id
  3. select emp.ename,emp.salary,t1.grade,t1.losalary,t1.hisalary from emp,salarygrade t1 where emp.salary>=t1.losalary and emp.salary<t1.hisalary
  4. select t1.ename,t1.salary,t1.jname,t1.description,t1.dname,t1.loc,t2.grade from (select emp.ename,emp.salary,job.jname,job.description,dept.dname,dept.loc from emp,job,dept where emp.job_id=job.id and emp.dept_id=dept.id) t1,salarygrade t2 where t1.salary>=t2.losalary and t1.salary<t2.hisalary

先查询部门编号,名称,位置,再子查询部门人数人数
5. select dept.id,count(*) from emp,dept where emp.dept_id=dept.id GROUP BY dept.id
6. select dept.id,dept.dname,dept.loc,t1.count from (select dept_id,count(*) count from emp GROUP BY dept_id) t1,dept where t1.dept_id=dept.id

事务 一组数据库操作命令(同时成功或同时失败)
  一个不可分割的工作逻辑单元

开启事务 Begin
提交事务 commit
回滚事务 rollback

四大特征:(ACID)
原子性:事务要么同时成功,要么同时失败
一致性:事务完成时,所有数据保持一致状态
隔离性:多个事务之间,操作的可见性
持久性:事务一旦提交或回滚,对数据的改变是永久的

标签:事务,数据库,t1,dept,job,emp,Mysql,id,select
From: https://www.cnblogs.com/llg-/p/17362614.html

相关文章

  • python之cx_Oracle实现本地exe连接oracle数据库执行命令
    代码实现#-*-coding:GBK-*-importosimportcx_Oracle#导入cx_Oracle模块importtimedefgetData():conn=cx_Oracle.connect('username/password@ip:port/orcl')cur=conn.cursor()sql="SELECT*fromUSERwhereUSER_ID=\'......
  • mysql创建索引三种方式
    1.新建表中添加索引①普通索引createtablet_dept(nointnotnullprimarykey,namevarchar(20)null,sexvarchar(2)null,infovarchar(20)null,indexindex_no(no))②唯一索引createtablet_dept(nointnotnullprimarykey,......
  • oracle 数据库事务,提交,回滚,保存点,表的锁定,隐式锁,显示锁,写锁,读锁,排他锁,共享
    [color=red]数据库事务的概念[/color]事务是由相关操作构成的一个完整的操作单元。两次连续成功的COMMIT或ROLLBACK之间的操作,称为一个事务。在一个事务内,数据的修改一起提交或撤销,如果发生故障或系统错误,整个事务也会自动撤销。比如,我们去银行转账,操作......
  • Python: MySQL
     Pool   使用pool正确方法:从pool取connection,使用完close(),底层CMySQLConnection会return到deque,此时从pool中得到的PooledMySQLConnection底层_cnx变为None ......
  • double转为整型intValue()及sha1在线文件获取,文件都有一个唯一的sha1;jQuery事件方法;
    double转为整型intValue()及sha1在线文件获取,文件都有一个唯一的sha1Doubleindust=RankConstant.INIT_RADIO;indust.intValue()double由100.0---->100整型1.intValue()是java.lang.Number类的方法,Number是一个抽象类。Java中所有的数值类都继承它。也就是说,不单是Integer有int......
  • JAVA+MySQL做一个图书信息管理系统【二次开发】【更新版2.0】【纯java】、Java技术分
    JAVA+MySQL做一个图书信息管理系统【二次开发】【更新版2.0】【纯java】Java技术分享Java技术er集合啦!大家可分享关于Java技术知识,包括但不限于微服务,分布式等前沿技术,快来沉淀自己的技术,一起写出未来吧!你可以从以下几个方面着手(不强制),或者根据自己对话题主题的理解进行创作,参考如......
  • 【第31天】MYSQL进阶-写优化- 插入优化(SQL 小虚竹)
    回城传送–》《100天精通MYSQL从入门到就业》文章目录零、前言一、练习题目二、SQL思路:SQL进阶-写优化-插入优化解法插入优化禁用索引语法如下适用数据库引擎非空表:禁用索引禁用唯一性检查语法如下适用数据库引擎禁用外键检查语法如下适用数据库引擎批量插入数据语法如下适用数据库......
  • AntDB数据库再获奖,亚信安慧被评为“2022PostgreSQL中国最佳创新企业”
    “中国PostgreSQL数据库生态大会”由中国开源软件推进联盟PostgreSQL分会&中科院软件所&CSDN联合举办,旨在引入更多技术资源、人才资源及校企合作资源,推进PostgreSQL在各行业和区域的推广与应用能力。本次榜单评选表彰了对PostgreSQL中国生态起到重大推动与贡献作用的企业与技术专家......
  • pymysql常用的游标类型
    #导入pymysql库importpymysql#连接数据库connection=pymysql.connect(host="10.83.0.83",#数据库主机名port=31379,#数据库端口号user="root",#数据库用户名password="weshare123",#数据库密码database="acc_cu......
  • 关于MySQL8.0 访问账户登录的先关问题汇总
    背景介绍:接到其它开发团队小伙伴的反馈,说我们线上的测试的MySQL无法访问了,随展开问题查询。查询流程和用到的命令:1.自己分别使用Windows的Navicat、Linux的mysql命令行链接测试。确实有链接不通的问题。1.排查了当前ECS的网络链接的状态,数据库运行的状态,包括端口绑定的状态......