1.group by
根据表里的字段名分类,相同字段名只显示一行记录,通常与聚集函数max、min合用选择最大值最小值,或者与having合用筛选,结果按照group by的字段排序
例:select * from examine group by e_date;
结果:
+-------------+------------+-----------+------------+---------------+
| e_id | e_name | h_id | e_date | e_teachername |
+-------------+------------+-----------+------------+---------------+
| 21500000201 | 急救学考核 | 215000002 | 2018-07-31 | 邹恩岑 |
| 21000000102 | 心理学 | 210000001 | 2018-08-20 | 陆卫忠 |
| 21500000101 | 护理学考核 | 215000001 | 2018-08-31 | 席雪峰 |
| 21000000101 | 病理学考核 | 210000001 | 2018-09-30 | 南顺丰 |
| 21500000103 | 康复学考核 | 215000001 | 2018-11-01 | 林芳 |
+-------------+------------+-----------+------------+---------------+
2.起别名
起别名分为为表起别名和为字段起别名,使用as关键字其中为字段起别名可以省略as关键字。
给字段起别名,结果中的字段名直接改为别名
例:select e_name as name
from examine group by e_date;
+------------+
| name |
+------------+
| 急救学考核 |
| 心理学 |
| 护理学考核 |
| 病理学考核 |
| 康复学考核 |
+------------+

给表起别名
例:select from examine
where examine.e_name = '心理学';和
select 
from examine e where e.e_name = '心理学';结果一样

3.连接查询
内连接
查询两张表匹配的内容 on是条件
select e.e_id ,e.e_name from examine e inner join hospital_info h on e.hid = h.h
id;
+-------------+--------------+
| e_id | e_name |
+-------------+--------------+
| 21000000101 | 病理学考核 |
| 21000000102 | 心理学 |
| 21500000101 | 护理学考核 |
| 21500000102 | 临床护理考核 |
| 21500000103 | 康复学考核 |
| 21500000201 | 急救学考核 |
+-------------+--------------+

外连接
分为左外连接和右外链接,表示以左边的表或者右边的表为基础,筛选出基准表中有的内容,非基准表里没有的内容显示为null。
交叉连接
返回两张表的笛卡尔积,效果相当于select * from table1,table2;

4.事务
事务的四个特性:
1.原子性
一组操作是一个整体,要么全部完成,要么全部放弃(回滚)
2.稳定性
操作出错时,有非法外键约束,事务撤回
3.隔离性
事务和事务相对独立
4.可靠性
事务提交后可以永久保存
提交事务 commit
回滚事务 rollback
事务自动提交autocommit = 1 0为关闭自动提交
开启事务 start transition 或者begin

5.事务的隔离级别
查看隔离级别:select @@tx_isolation
设置当前事务的隔离级别: set tx_isolation= “隔离级别”;
事务的隔离级别是为了避免出现脏读,幻读,不可重复读的问题
1.read uncommit 读未提交 什么都不能解决
2.read commit 读已提交 可避免脏读
3.repeatable read 可重复读 可避免脏读,不可重复读
4.serializable 串行化 可避免脏读,幻读,可重复读

6.乐观锁
默认数据不会出错,只有提交修改数据库时才回去判断会不会出错。底层使用version实现,比较修改的时version和取出 数据时version是否相同,另一种实现机制是时间戳。
7.聚集函数
Count()返回满足条件的列数
Max()返回最大
Min()返回最小值
Sun()返回和
Avg()返回平均值
8.索引
索引可以在创建表的时候指定,也可以使用语句创建
9.视图
视图使用create view as select创建
10.having
Where子句后面不能接聚合函数
Having后面接聚合函数
11.order by
排序

来源:https://blog.csdn.net/RobotBing/article/details/85157705

java面试_数据库的更多相关文章

  1. 【java面试】数据库篇

    1.SQL语句分为哪几种? SQL语句主要可以划分为以下几类: DDL(Data Definition Language):数据定义语言,定义对数据库对象(库.表.列.索引)的操作. 包括:CREAT ...

  2. Java面试10|数据库相关

    1.ID分配单点问题 系统使用一张表的自增来得到订单号,所有的订单生成必须先在这里insert一条数据,得到订单号.分库后,库的数量变多,相应的故障次数变多,但由于单点的存在,故障影响范围并未相应的减 ...

  3. java面试之数据库面试知识点【转】

    1. 主键 超键 候选键 外键 主 键: 数据库表中对储存数据对象予以唯一和完整标识的数据列或属性的组合.一个数据列只能有一个主键,且主键的取值不能缺失,即不能为空值(Null). 超 键: 在关系中 ...

  4. [Java面试十一]数据库总结.

    问题及描述: --1.学生表 Student(SID,Sname,Sage,Ssex) --SID 学生编号,Sname 学生姓名,Sage 出生年月,Ssex 学生性别 --2.课程表 Course ...

  5. Java面试系列

    如果你的面试简历是如下这样写的,请务必准备回答下面的所有问题. 面试职位:Java高级工程师 专业技能: (1)牢固掌握Java基础知识,如集合.并发.I/O等,并对Java源码有一定的研究. (2) ...

  6. Java 面试知识点解析(六)——数据库篇

    前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...

  7. Java面试准备十六:数据库——MySQL性能优化

    2017年04月20日 13:09:43 阅读数:6837 这里只是为了记录,由于自身水平实在不怎么样,难免错误百出,有错的地方还望大家多多指出,谢谢. 来自MySQL性能优化的最佳20+经验 为查询 ...

  8. Java面试宝典(6)混合(前端 + 数据库)

    包括html & JavaScript & Ajax部分/Java web部分/数据库部分 三. html&JavaScript&ajax部分 1. 判断第二个日期比第 ...

  9. java面试④数据库部分

    2.3.1 数据库的分类及常用的数据库 数据库分为:关系型数据库和非关系型数据库 关系数据库:mysql,oracle,sqlServer 非关系型:redis,mongoDB 2.3.2 简单介绍一 ...

随机推荐

  1. samba基本配置

    安装启动不用说了 vim /etc/samba/smb.conf workgroup = WORKGROUP server string = Samba Server %vnetbios name = ...

  2. Eclipse个最实用的快捷键

    一个Eclipse骨灰级开发人员总结了他觉得最实用但又不太为人所知的快捷键组合.通过这些组合能够更加easy的浏览源码,使得总体的开发效率和质量得到提升.     1. ctrl+shift+r:打开 ...

  3. linux之ftp命令详解

    我们在使用ftp客户端访问到ftp服务器之后,往往需要进行相关操作,比如从远程机器上下载文件,或者将文件传输到远程机器上.需要使用ftp的相关命令,本文讲述了ftp常用的一些操作. 方法/步骤     ...

  4. JavaScript的toString()

    JavaScript toString() 方法 JavaScript Boolean 对象 定义和用法 toString() 方法可把一个逻辑值转换为字符串,并返回结果. 语法 booleanObj ...

  5. (2) yum源配置-163

    1.获取yum源文件 登录http://mirrors.163.com/.help/centos.html,查看CentOS6的链接地址(右键点击“CentOS6”,选择复制链接地址),链接地址为:h ...

  6. 【BZOJ】2186 沙拉公主的困惑

    一道很有价值的题. [解析1]欧几里德算法求乘法逆元,前缀和 [Analysis]O(T n log n). [Sum] ①int运算.假设会超出界,第一个数前要加上(LL)即类型转换. ②gcd不变 ...

  7. Solr6.5查询参数说明

    q - 查询字符串,这个是必须的.如果查询所有*:* ,根据指定字段查询(Name:张三 AND Address:北京) fq - (filter query)过虑查询,作用:在q查询符合结果中同时是 ...

  8. obj-c学习笔记

    本文转载至 http://blog.csdn.net/c395565746c/article/details/7573793   当对象经过在dealloc方法处理时,该对象就已经处于已销毁状态,其它 ...

  9. EasyNVR无插件直播服务器软件如何自己更改web界面(网页的自定修改)

    背景需求 很多用户都在使用了EasyNVR,看到EasyNVR自身带有的界面后有这样的需求,就是需要更改一下web前端的一些样式,当前EasyhNVR为3.0版本,web前端为了增加前端的运行效率和减 ...

  10. Redis主从、事务、哨兵、消息、代理分片

    安装 wget http://download.redis.io/releases/redis-3.0.5.tar.gz tar -zxvf redis-3.0.5.tar.gz cd redis-3 ...