distinct 去重
- 必须出现在字段最前面
- 如果有多个字段,表示这多个字段联合去重
连接查询
SQL92
select e.ENAME, d.DNAME
from emp e, dept d
where e.DEPTNO = d.DEPTNO
SQL99
select e.ENAME, d.DNAME
from emp e join dept d
on e.DEPTNO = d.DEPTNO
SQL92 把表的连接和筛选条件杂糅到一块
内连接
- 等值连接
- 非等值连接
- 自连接 一张表看成两张表
外连接
- 左连接
- 右连接
全连接
两个表都有
两个以上的表怎么连接
select xx
from xx
join xx
on condition
join xxx
on condition
...
子查询
子查询可以出现的位置
- select(select)
- from (select)
- where (select)
from 后面的子查询将子查询的结果,当作一个临时表
select 后面的子查询,需要把两个表连接成一个表的时候(但其实可以直接join,没必要这么麻烦)
Union
合并两个查询结果,效率高。
union要求两个结果列数相同
Limit
- 用法 limit startIndex length
- 起始下标为0
- limit在order by之后执行
- limit (pageNo - 1) * pageSize, pageSize
DQL执行的顺序
- FROM子句组装数据(包括通过ON进行连接);
- WHERE子句进行条件筛选;
- GROUP BY分组 ;
- 使用聚集函数进行计算;
- HAVING筛选分组;
- 计算所有的表达式;
- SELECT 的字段;
- ORDER BY排序;
- LIMIT筛选。
建表
create table 表名(
字段名1 数据类型,
字段名2 数据类型
)
MySQL数据类型
- varchar 可变长度字符串,省空间,最长255
- char 定长字符串
- int Java中的int
- bigint Java中的long
- float
- double
- date 短日期
- datetime 长日期
- clob 字符大对象超过255字符,可存储4g
- blob 二进制大对象,图片,视频,声音
删除表
drop table 表名;
drop table 表名 if exits 表名;
插入数据
insert into 表名(字段名1, 字段名2) values(值1, 值2)
insert插入日期
mysql的日期格式
- %Y 年
- %m 月
- %d 日
- %h 时
- %i 分
- %s 秒
两个转化函数
-
str_to_date 字符串转date,str_to_date('字符串日期', '日期格式')。默认''%Y-%m-%d'
-
date_format 日期转换格式 date_format(日期数据,‘日期格式’)
date和datetime的区别
- date只包含年月日,默认格式'%Y-%m-%d'
- datetime还包含时分秒,默认格式'%Y-%m-%d %h:%i:%s'
now()函数
Update
# 没有条件默认修改整张表的字段
update 表名 set xx = xx where xxx
Delete
delete from 表名 where xxx
标签:-%,入门,MySQL,基础,日期,表名,date,连接,select
From: https://www.cnblogs.com/destinyzk/p/16657695.html