基础查询
查询表
SELECT * FROM <表名>
条件查询
SELECT * FROM <表名> where <条件><br>
投影查询
SELECT 列1, 列2, 列3 form <表名> where <条件>
排序
selecet 列名称 from 表名称 where 条件 order by 列名称 desc(降序);
分页查询
SELECT 列名<br>FROM 表名<br>ORDER BY 列名 <br>DESCLIMIT 每页展示 OFFSET 开始显示条数;<br><span class="uk-icon-play" style="font-family: FontAwesome; display: inline-block; line-height: 1; -webkit-font-smoothing: antialiased; color: rgb(255, 255, 255); font-size: 14px; text-align: center;"></span><span class="uk-icon-play" style="font-family: FontAwesome; display: inline-block; line-height: 1; -webkit-font-smoothing: antialiased; color: rgb(255, 255, 255); font-size: 14px; text-align: center;"></span><br>
聚合查询
查询表格记录数量
SELECT COUNT(*) FROM 表名;<br>
SELECT COUNT(*) 自定义列名 FROM 表名<br>
聚合+条件查询
SELECT COUNT(*) 表名 FROM 列名 WHERE 条件;<br>
聚合函数
SUM
AVG
MAX
MIN
SELECT AVG(列名) 自定义列名 FROM 表名 WHERE 条件;<br>
分组
select class_id , gender, #查询列<br>round(AVG(score),2) a #平均数 <br>from students #表<br>group by class_id , gender; #分组<br>
多表查询
SELECT<br>列名 列别名<br> s.name,<br> s.gender,<br> s.score,<br> c.id cid,<br> c.name cname #<br>FROM 表名 表别名, 表名 表别名;<br>
连接查询
SELECT ... FROM tableA ??? JOIN tableB ON tableA.column1 = tableB.column2;<br>
修改数据
<i>insert</i>
INSERT INTO <表名> (字段1, 字段2, ...) VALUES (值1, 值2, ...);<br>
update
UPDATE <表名> SET 字段1=值1, 字段2=值2, ... WHERE ...;<br>
delete
DELETE FROM <表名> WHERE ...;<br>
事务
定义
多条语句作为一个整体进行操作的功能,被称为数据库事务
关系模型
关系模型本质就是若干个存储数据的二维表
主键
不使用任何业务相关的字段作为主键。
作为主键最好是完全业务无关的字段,我们一般把这个字段命名为id
自增整数类型
全局唯一GUID类型
如果使用INT自增类型,那么当一张表的记录数超过2147483647(约21亿)时,会达到上限而出错。使用BIGINT自增类型则可以最多约922亿亿条记录。<br>
主键也不应该允许NULL
联合主键
外键
通过一张表的字段,可以把数据与另一张表关联起来,这种列称为外键。
外键约束
由于外键约束会降低数据库的性能,大部分互联网应用程序为了追求速度,并不设置外键约束,而是仅靠应用程序自身来保证逻辑的正确性。这种情况下,class_id仅仅是一个普通的列,只是它起到了外键的作用而已。
多对多
多对多关系实际上是通过两个一对多关系实现的,即通过一个中间表,关联两个一对多关系
一对一
一对一关系是指,一个表的记录对应到另一个表的唯一一个记录。<br>
索引
索引是关系数据库中对某一列或多个列的值进行预排序的数据结构<br>
缺点
索引越多,插入、更新、删除记录的速度越慢(因为在做 以上操作时也需修改索引)<br>
唯一索引
创建唯一索引,可以保证某一列的值具有唯一性
也可以不创建索引,对某一字段保证唯一性