sql学习查询语法与分类

本文深入探讨了SQL语言的基础,包括SELECT语句的使用、JOIN操作、子查询以及聚合函数的应用。通过实例解析,帮助读者理解不同类型的SQL查询,如简单查询、连接查询、嵌套查询和聚合查询,提升数据库查询效率。
摘要由CSDN通过智能技术生成
#DAL语言
#进阶1:基础查询
#select 查询列表 from 表名;
#System.out.println(打印东西);
/*
一、查询的列表可以是:表中字段、常量值、表达式、函数
二、查询的结果是一个虚拟表格。
*/
USE sakila;#最好在最开始指定自己要使用的库,sakila是库,address是表,phone是列名也是字段

#1.查询表中的单个字段
SELECT phone FROM address;

#2.查询表中的多个字段
SELECT phone,city_id FROM address;#没有顺序要求

#3.查询表中的所有字段(双击表可以自动识别表名,使用F12可以规范格式)
#方式一:
 SELECT
  `postal_code`,
  `phone`,
  `last_update`
FROM
  address;
#方式二:  
SELECT * FROM address;

#4.查询常数值
SELECT 100;
SELECT 'John';

#5.查询表达式
SELECT 100%98;

#6.查询函数:
SELECT VERSION();

#7.为字段起别名(便于理解,有重名时便于区分)
SELECT 100%98 AS 结果; 
SELECT phone AS 电话,city_id AS 城市 FROM address;#没有顺序要求
SELECT phone 电话,city_id 城市 FROM address;#没有顺序要求

#对于有空格有别的含义可能影响理解的使用引号
SELECT phone AS "out put",city_id 城市 FROM address;#没有顺序要求

#8.去重
SELECT DISTINCT city_id 城市 FROM address;

#9.+号的作用(只有运算符的功能,只能用于两个操作数都为数值型,或是尝试进行转换后再进行运算)
SELECT last_name+90 AS 姓名 FROM actor;

#10.concat的使用,拼接
SELECT CONCAT(last_name," ",first_name) AS 姓名 FROM actor;

#11.选择出IFNULL,存在空值的字段,可以实现将null的值使用0来替代,并输出两者对比
SELECT IFNULL(amount,0) AS 工资,amount FROM payment;

#isnull,判断是否为真,真值返回1,假值返回0
SELECT ISNULL(amount),amount FROM payment;



#进阶2:条件查询
#select 查询列表 from 表名 where 筛选条件;
/*
分类:一、按条件表达式进行筛选
	条件运算符:< > = != <> >= <=
      二、按逻辑表达式筛选
      逻辑运算符:
      && || !
      and or not
      三、模糊查询
		like
		between and
		in
		is null
*/

#一、按条件表达式查询
#1.查询payment表中amount值>7的,用于筛选出某一列符合条件的值
SELECT * FROM payment WHERE amount>7;

#2.查询city_id不等于3的城市地址address和区域district
SELECT address,district FROM address WHERE city_id <> 3;

#二、逻辑表达式筛选
#1.查询payment表中amount值在3和7之间的人员id和amount值
SELECT staff_id,amount FROM payment WHERE amount>=3 AND amount <=7;

#2.查询payment表中amount值不在3和7之间,且的人员信息
SELECT * FROM payment WHERE amount<=3 OR amount>=7 OR staff_id>1;

SELECT * FROM payment WHERE NOT (amount>=3 AND amount <=7) OR staff_id>1;

#三、模糊查询
/*
like 一般和通配符搭配使用  %表示任意多个字符,包含0个字符    _下划线表示任意单个字符(\即可进行转义)
between and 可以提高语句的整洁度,包含临界值,但两个临界值不能调换
in 用于识别字段里的值是否属于in对应的括号里的值,提高简洁度,但in中的值必须一致或兼容。
is null 
*/
#1.Like-查询演员名字中包含a的演员信息
SELECT * FROM actor WHERE last_name LIKE '%a%';
SELECT * FROM address WHERE phone LIKE '__4_%';#数值也支持通配符

#escape转义
SELECT * FROM actor WHERE last_name LIKE '_$_%' ESCAPE '$';#$可以换成任意字符,使用escap
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值