一增加[插入]数据
1.单行插入
Insert into 表名(字段1,字段2, ……) values (‘v1’,’v2’,……)
如果仅仅有表名则依次插入所有字段
2.多行插入
Insert into 插入表(字段1,字段2, ……)子查询
二修改[更新]数据
Update 表名set 字段1=’value’, 字段2=’value’, …… [where 条件]
三删除数据
Delete from 表名[where 条件]
四查询数据
先放出数据库关系图,方便阅读理解。[tx:用命令行的方式创建数据库太累了]
dos下不支持UTF8的显示,所以没办法只能改用数据库管理工具
1)简单查询
1.select子句from 选择表
Select <字段> from <表>
[别名列] <目标列> as<别名>:as可以省略
[取消重复行] select distinct <目标列>:大多数是在投影的条件下产生重复元素
2.where选择行
Select <字段> from<表> where <条件>
行选择中常用的运算符:
---------------------------------------------------------------
比 较 | =, >, <, >=, <=, <> , !=
---------------------------------------------------------------
范 围 | between and, not between and
---------------------------------------------------------------
集 合 | in, not in
---------------------------------------------------------------
匹配模式 | like, not like
---------------------------------------------------------------
空 值 | is null, is not null
---------------------------------------------------------------
逻辑运算 | not, and ,or
--------------------------------------------------------------
@@比较运算
<>和!=都代表不等于
between and代表在什么范围内/notbetween and相反
@@逻辑运算
not 取反(非) | and 并且(与) | or 或者(或)
@@空值运算
空值null是一个特殊的数据,判断时不能用=和<>。
is null | isnot null
@@集合运算
<表达式> [not]in <集合> —元素间用逗号隔开
@@字符串匹配运算
[not] like <匹配的字符串>
通配符:% ++++++++++> 代表任意的长度的字符串
_ ++++++++++> 代表任意的单个字符
@@orderby排序
orderby 列名1[asc|desc], 列名2[asc|desc],……
asc:升序 | desc:降序
2)多表查询
1.连接查询
Ø 等值连接
Ø 非等值连接
Ø 无条件连接[笛卡儿积运算]
Ø 内连接
用内连接可以取代上面的所有连接操作。
innerjoin <连接表> on 条件 [inner可以省略]
2.自身连接
顾名思义就是自己和自己连接
3.外连接
Ø 左外连接[left out…… join……]
左向外联接的结果集包括leftouter子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中
右表的所有选择列表列均为空值。
Ø 右外连接[rightout …… join …….]
右向外联接是左向外联接的反向联接。将返回右表的所有行。
Ø 全外连接[fullouter join]
完整外部联接返回左表和右表中的所有行。
3)聚合分组
聚合函数对一组值计算后返回单个值
1.聚合函数
# count 统计列中的个数
# avg 求某列的平均值
# sum 求某列的总和
# min 求列中的最小值 max 求列中的最大值
2.分组统计
# group by 分组
筛选出选课的学生:
#having 统计筛选 [需要和group by一起使用 ]
3.子查询
#in运算符
#使用比较运算符
可以得比较运算符有:>、<、=、>=、<=、<>等
# 使用any 或者all运算符
any表示至少有一个 | all表示所有或者每个
any和all使用时必须使用比较运算符
比如: >any | 大于子查询中某一个值[就成立]
>all | 大于子查询中所有值[才成立]
=any | 等于子查询中某一个值[就可以]相当于in
=all | 等于子查询中所有值[就可以]无意义
<>any | 不等于子查询中某一个值[就可以]
<>all | 不等于子查询中任何值[就可以]