MySQL

子查询练习
学生姓名
课程所属的年级名称
课程名称
考试日期
考试成绩

SELECT  `studentName` 姓名, 
#子查询嵌套在父查询的SELECT子句中,得到年纪名称。
   ( SELECT `gradeName` FROM `grade` WHERE `gradeId`=`subject`.`gradeId`  ) AS 课程所属年级 , 
   `subjectName` 课程名称, `examDate` 考试日期, `studentResult` 成绩
FROM  `result` r1
  INNER JOIN `student` ON r1.`studentNo`=`student`.`studentNo`
  INNER JOIN `subject` ON `subject`.`subjectNo`=r1.`subjectNo`
WHERE r1.`examDate` IN (
#子查询嵌套在父查询的WHERE子句中,得到每门课程最近一次考试的日期
      SELECT MAX(`examDate`) FROM `result` r2
      WHERE r1.`subjectNo` = r2.`subjectNo`    #主查询和子查询间参数值绑定
      GROUP BY r2.`subjectNo`
)
ORDER BY subject.gradeId;

分组查询
SELECT …… FROM  <表名> 
WHERE  ……
GROUP BY ……
分组筛选
SELECT …… FROM  <表名>
WHERE ……
GROUP BY ……
HAVING……
内连接(INNER JOIN)
内连接使用比较运算符根据每个表的通用列中的值匹配两个表中的行
内连接语句语法
SELECT
FORM列表1 INNER JOIN列表2 ON...   <------------->SELECT....FROM 列表1,列表2 WHERE...
外连接
左外连接   (LEFT JOIN)
左外联接是以左表为基础的,左表的记录将会全部表示出来。
右外连接   (RIGHT JOIN)
右外连接与左外连接相反,右外联接是以右表为基础的,右表的记录将会全部表示出来,右表只会显示符合搜索条件的记录,不完整的地方为NULL。


事务(TRANSACTION)是作为单个逻辑工作单元执行的一系列操作
事务必须具备以下四个属性,简称ACID 属性
原子性(Atomicity)
事务是完整的操作,事务的各步操作是不可分的(原子的),要么都执行,要么都不执行

一致性(Consistency)
当事务完成时,数据必须处于一致状态

隔离性(Isolation)
并发事务之间彼此隔离,独立,它不应以任何方式依赖于或影响其他事务

持久性(Durability)
事务完成后,它对数据库的修改被永久保留
事务是一个不可分割的工作逻辑单元 
MySQL中支持事务的存储引擎有InnoDB和BDB
开始事务
BEGIN;/START TRANSACTION;
提交事务
COMMIT;
回滚(撤销)事务
ROLLBACK
如何创建、删除索引
创建
#唯一索引,全文索引或空间索引,可选
CREATE [UNIQUE|FULL TEXT|SPATIAL]INDEX index_name
ON table_name(column_name[length]...);
删除
DROP INDEX index_name ON table_name;
查看数据库中全部索引
SHOW INDEX FROM table_name;



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值