mysql的基础查询

一、SQL语言 的分类
DQL语言:Data Query Language 数据查询语言
select
DML语言:Data Manipulate Language 数据操纵语言
insert、update、delete
DDL语言:Data Define Language 数据定义语言
create、alter、drop
DCL语言:Data Control Language 数据控制语言
commit、rollback

二、Mysql 语法规范
(1)不区分大小写
(2)每句话用;或\g结尾
(3)MySQL的注释:
单行注释:#
单行注释:–
多行注释:/* */
(4)sql语句可以写在一行或多行,各子句一般分行写
(5)关键字不能缩写也不能分行
(6)用缩进提高语句的可读性

三、查询的一些技巧和操作
1.基础查询
select:查看、选择、显示
语法:
select 要显示的东西
类似于 System.out.println(要打印的东西);
要显示的东西:
①常量
②表达式
③函数
④字段,但要显示字段必须添加from 表名
语法:
select 字段 from 表;

2.条件查询
概念:根据指定的条件过滤出数据
语法:
select 字段 from 表名
where 条件;
分类:
1)按条件表达式查询
条件运算符:

、< 、>=、 <=、 =、 !=、 <>、 ,<=>安全等于,用于判断是否为null
2)按逻辑表达式查询
逻辑运算符:
and、&& 两个条件都为true,结果为true,反之为false
or、|| 两个条件只要有一个为true,结果为true,反之为false
not、! 如果连接的条件本身为false,结果为true,反之为false
优先级:
not > and > or

3.模糊查询
1)like
一般搭配着通配符使用,用作字符型的判断
通配符:
% 任意多个字符
_ 任意单个字符 1
2)between and
特点:在…之间
①等价于 使用 字段>=值1 and 字段<=值2
②两个临界值是包含的 [1,10]
③两个临界值不能颠倒顺序
3)in
特点:判断某个字段的值是否在某个列表内
in(值1,值2,…)
等价于 or
4)is null/is not null

4.排序查询
语法:
select 字段|表达式|常量
from 表
【where 条件】
order by 排序的字段;
1) 升序 asc
降序 desc
默认是 升序asc
2)可以按表达式、函数、别名、多个字段进行排序
3)一般来讲order by放到查询的语句的最后,在不使用分页的情况下

5.分组函数与查询
1)函数,类似java中的方
叫什么?方法名或者函数名
干什么?函数功能
分组函数,又称为统计函数或聚合函数。
length(‘john’) //传入一个值,返回一个值,一对一,像这种函数,就不是分组函数,叫做单行函数,分组函数表示这个函数给出一组值,最后返回一个值。
max(salary) // 分组函数,给它一组值,比如说给它一列值。
分组函数的分类
max():最大值
min():最小值
sum():和
avg():平均值
count():计算非空的个数
这些是通用的,sqlserver、oracle、mysql 都是一样的。
特点:
①sum、avg只支持数值型,count、max、min支持任何类型
②这几个分组函数,都忽略null值
③count()分组函数,支持以下写法
count(*) 建议使用
count(1)
表示 查询结果集的行数
2)分组查询
和分组函数一起搭配使用的查询,我们叫做分组查询,换句话说,分组查询一般都会用到分组函数
#引入:查询各部门的最高工资
SELECT MAX(salary) FROM employees WHERE department_id IN(20,90,30);
SELECT MAX(salary) FROM employees GRO UP BY department_id;

6.等值连接查询
概念:查询的字段来自于多个表
语法:
select 字段1,字段2
from 表1,表2
【where 连接条件】
笛卡尔乘积:
产生原因:没有加连接条件,导致结果为 表1 的行数*表2 的行数
解决方法:添加上有效的myemployees
分类:
1.传统模式的多表连接
等值连接(where)——非等值连接
2.sql99推出的标准,使用join关键字实现连接
内连接——外连接
3.自连接
传统模式的多表连接也叫等值连接
特点有
①表的顺序没有要求
②n表连接,至少需要n-1个连接条件
③一般需要为表起别名,这样可以提高语句简洁度,并且防止字段有歧义
④可以添加分组、排序、筛选,一起混合使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值