• java面试_数据库


    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
  • 相关阅读:
    快速理解Kafka分布式消息队列框架
    消息系统Kafka介绍
    使用Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境
    CSS学习笔记(10)--nth-child和nth-of-type
    CSS学习笔记(9)--详解CSS中:nth-child的用法
    CSS学习笔记(8)--纯CSS绘制三角形(各种角度)
    CSS学习笔记(7)--html页面的CSS、DIV命名规则
    CSS学习笔记(6)--浮动,三列布局,高度宽度自适应
    CSS学习笔记(5)--导航ul,li浮动问题
    Git中保存用户名和密码
  • 原文地址:https://www.cnblogs.com/qixidi/p/10189802.html
Copyright © 2020-2023  润新知