建立联系表:

学院表:

create table `department`(

`id` int primary key auto_increment,

`name` varchar(20) not null

);

学生表:

create table `student`(

`s_id` int primary key auto_increment,

`name` varchar(20) not null,

`dep_id` int,

foreign key(`dep_id`) references `department`(`id`)

);

学生信息表:

create table `stu_details`(

`s_id` int primary key,

`age` int,

`sex` char(1),

foreign key(`s_id`) references `student` (`s_id`)

);

课程表:

create table `course`(

`id` int primary key auto_increment,

`name` varchar(20) not null

);

创建中间表:

create table `course_details`(

`s_id` int,

`c_id` int,

primary key (s_id,c_id),

foreign key (`s_id`) references `student`(`s_id`),

foreign key (`c_id`) references `course`(`id`)

);

查看创建的五张表:

给每个表插入数据:

表的查询操作

查询所有记录:

select * from [表名];

查询某列或者某些列的记录:将*号换成列名字[col_name],多个列用','号隔开;

查询指定条件下的记录:

模糊查询:

#逻辑运算符  or   and

判断是否为null 不能用等于符合,要用is来判断:

排序 order by:

asc升序;   desc降序

按学号升序排列输出:select * from course_details order by s_id;

不加是默认升序,加desc就是降序:

限制显示数据的数量 limit

limit后接一个数时,默认从0号位开始取对应的个数;两个参数,如3,4表示从3号位开始取4个数。

这个功能可以用于分页。

***分组查询

一般跟聚合函数一起使用:

select dep_id as 学院id, count(dep_id) as 学生个数 from student group by dep_id;

select dep_id 学院id,group_concat(s_id,name separator '  ') 学生信息 from student group by `dep_id`;

having条件

select dep_id 学院id,count(dep_id) 学生个数 from student group by dep_id having 学生个数>1;

having是在selecct返回的内容里面筛选,而where是在表中直接筛选。

子查询:出现在其他SQL语句内的SELECT字句。

嵌套在查询内部;

必须始终出现在圆括号内;

可以包含多个关键字或条件。

select * from stu_details where age>18.25;

select * from stu_details where age>(select avg(age) from stu_details);

select * from student where dep_id in (select id from department where name in ('计算机','外国语'));

***联表查询***

内连接 inner join

无条件内连接:无条件内连接,又名交叉连接/笛卡尔连接,第一张表种的每一项会和另一张表的每一项依次组合。

有条件内连接:在无条件的内连接基础上,加上一个ON子句,当连接的时候,筛选出那些有实际意义的记录行来进行拼接。

在写条件时注意两张表的列名是否一样,如果时一样的则要在前面加上表名,tb_name.colname这种形式存在。

select * from student inner join department;  无条件内连接

select * from student inner join department on dep_id=id;  有条件内连接

select s.name,d.name from student s inner join department d on dep_id=id;

查询学生姓名和对应的学院名字:

外连接  left join; right join;

左外连接: (以左表为基准)两张表做连接的时候,在连接条件不匹配的时候,留下左表中的数据,而右表中的数据以NULL填充

右外连接: (以右表为基准)对两张表做连接的时候,在连接条件不匹配的时候,留下右表中的数据,而左表中的数据以NULL填充

select * from student left join department on dep_id = id;

select * from student right join department on dep_id = id;

#需求:  作为宿管, 学生的 ( 姓名, 年龄,性别,所属学院)

事物 是数据库运行中的一个逻辑工作单位。

原子性:

事务必须是原子工作单元;对于其数据修改,要么全都执行,要么全都不执行。

一致性:

事务在完成时,必须使所有的数据都保持一致状态。

隔离性:

由并发事务所作的修改必须与任何其它并发事务所作的修改隔离。

为了保证数据库记录的更新从一个一致性状态变更为另一个一致性状态,使用事务来处理是非常必要。

案例:假设现在用户小明在商店买了500元东西,现在要转账给商店,那么就需要从小明的账户上减去500,然后在商店的用户上加

上500,但是如果在减500的过程中出现了系统故障,再重新启动后发现小明的钱扣了,但商店却没有收到,这时候就会出现数据变动不

一致。对于这种数据的修改我们需要的就是要么同时修改成功,要么同时修改失败,所以这就需要用事务来进行出来。

start transaction:开始一个新的事务

commit:提交当前事务,做出永久改变

rollback:回滚当前事务,放弃修改

先给小明和店户创建一个银行账户:

create table account(

id int not null,

name varchar(20) not null,

mony float

);

给老板和小明的账户插值,初始化账户,然后执行转账的操作:

如果转账后系统崩溃,老板没有收到钱,则用rollback还原数据:

正确的执行如下:

commit之后再rollback是没有作用的,但是不会报错!

mysql数据库参数查询_mysql数据库查询相关推荐

  1. mysql数据库参数配置_MySQL数据库配置参数优化及参数对应的解释

    Mysql参数优化对于新手来讲,是比较难懂的东西,其实这个参数优化,是个很复杂的东西,对于不同的网站,及其在线量,访问量,帖子数量,网络情况,以及机器硬件配置都有关系,优化不可能一次性完成,需要不断的 ...

  2. mysql php 缓存机制_mysql数据库查询缓存原理是什么

    mysql数据库查询缓存原理是:1.缓存SELECT操作的结果集和SQL语句,key为sql,value为查询结果集:2.如果新的SELECT语句到了,以这个sql为key去缓存中查询,如果匹配,就把 ...

  3. mysql 关联查询_mysql数据库调优(二)

    第五.查询优化 1.查询慢的原因:网络因素.CPU.IO.上下文切换.系统调用.生成统计信息.锁等待时间等 2.优化数据库访问:查询性能地下的原因是访问的数据太多,某些查询不可避免的需要筛选大量的数据 ...

  4. MySQL数据库应用 多表查询_mysql数据库-多表查询

    今日任务 完成对MYSQL数据库的多表查询及建表的操作 教学目标 掌握MYSQL中多表的创建及多表的查询 掌握MYSQL中的表关系分析并能正确建表 昨天内容回顾: ​ 数据库的创建 : create ...

  5. mysql数据库的查询_mysql数据库查询

    查询数据指从数据库中获取所需要的数据.查询数据是数据库操作中最常用,也是最重要的操作.用户可以根据自己对数据的需求,使用不同的查询方式.通过不同的查询方式,可以获得不同的数据.MySQL中是使用SEL ...

  6. mysql 查找数据过程_mysql数据库查询过程探究和优化建议

    查询过程探究 我们先看一下向mysql发送一个查询请求时,mysql做了什么? 如上图所示,查询执行的过程大概可分为6个步骤: 客户端向MySQL服务器发送一条查询请求 服务器首先检查查询缓存,如果命 ...

  7. mysql数据库实验3查询_MySQL数据库实验:任务三 数据库的单表查询设计

    任务三 数据库的单表查询设计 文章目录任务三 数据库的单表查询设计[实训目的与要求][实训原理][实训步骤]一.简单查询二.按条件查询1.比较大小查询2.带in关键字的查询(确定集合)3.带BETWE ...

  8. mysql客户端查询_MySQL数据库之利用mysql客户端查询UCSC数据库

    本文主要向大家介绍了MySQL数据库之利用mysql客户端查询UCSC数据库 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. UCSC Genome Browser是由Unive ...

  9. mysql 脏数据查询_MySQL数据库02

    MySQL数据库 前言: 前面我们了解了什么是数据库,什么是MySQL数据库以及如何运用,接下来我们接着深入学习MySQL. (提前声明,以下所提供的事例不标准,仅供参考) 数据库的备份与还原: 备份 ...

  10. mysql 查找小写字母_MYSQL数据库MySQL中查询的有关英文字母大小写问题的分析

    <MYSQL数据库MySQL中查询的有关英文字母大小写问题的分析>要点: 本文介绍了MYSQL数据库MySQL中查询的有关英文字母大小写问题的分析,希望对您有用.如果有疑问,可以联系我们. ...

最新文章

  1. 微软拼音输入法2007状态栏无法显示!
  2. ajax只能用get吗,基本的Ajax,但无法使用GET或POST方法
  3. java 值类型与引用类型_JAVA 关于值类型和引用类型的区别
  4. html5知识总结,HTML5初级知识总结
  5. Django的电子商务网站的调研
  6. EasyUI实现工地领款单项目
  7. 同步电脑与手机,让手机变身无线Modem
  8. LeetCode 769. Max Chunks To Make Sorted
  9. 随机取出若干条记录的SQL语句
  10. 基于JavaEE的网吧自动计费管理系统设计与实现_信息管理__JSP网站设计_SQLServer数据库设计
  11. 流程图,NS图,伪代码
  12. 【IoT】创业:产品雷达图 - 如何明智地权衡产品?
  13. 【网络安全】DRIDEX木马巧用VEH混淆API调用流程
  14. 服务注册eureka上显示ip地址出现的问题
  15. Greedy Gift Takers
  16. 安卓全屏显示创建activity-land资源找不到的问题
  17. Spring——Bean的自动装配
  18. DateUtils 工具类:获取指定月份第一天时间,最后一天时间
  19. 五、TDDI 触控、显示驱动一体化技术
  20. ubuntu 小米笔记本wifi问题

热门文章

  1. 巧妙的实现点阵图形显示可视化编程(C语言)
  2. ssm上传图片文件到ftp(图片压缩处理)
  3. 墨竹:黄金空头落入帷幕,短线多头仍是最佳抉择!
  4. android常用系统服务,安卓系统小众软件分享,让你的手机比电脑更实用
  5. 教你如何在window服务器上快速部署SpringBoot web项目
  6. MT5 中文版财经日历,主标不可或缺
  7. 计算机科学技术常见英语词汇
  8. Mac 版64位 Chrome 浏览器进入 Canary 和 Dev 分支
  9. 深度学习深度前馈网络_深度学习前馈网络中的讲义第4部分
  10. Homebrew安装慢,解决方案