MySQL入门基础(2)

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执行的顺序

  1. FROM子句组装数据(包括通过ON进行连接);
  2. WHERE子句进行条件筛选;
  3. GROUP BY分组 ;
  4. 使用聚集函数进行计算;
  5. HAVING筛选分组;
  6. 计算所有的表达式;
  7. SELECT 的字段;
  8. ORDER BY排序;
  9. 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
posted @ 2022-09-05 12:28  Destiny233  阅读(24)  评论(0)    收藏  举报