数据库

1.MySQL

show databases;显示数据库

1.1 DQL 查询语言

1.1.1 基础查询

select 查询列表 from 表名
特点:
1、查询列表可以是:表中的字段、常量值、表达式、函数
2、查询的结果是一个虚拟的表格
3、查询多个字段时用,隔开


 - 查询单个字段
 select 字段 from 表
 
 - 查询多个字段
select 字段1,字段2.....from 表

- 查询所有的字段
select * from 表

- 查询常量值
SELECT 100;
SELECT ‘asdd’;

- 查询表达式
SELECT 100%98- 查询函数
SELECT 函数名();

- 别名
//便于理解
//如果查询的字段有重名情况,使用别名可以区分
起别名的两种方法:
SELECT 字段 AS 别名
SELECT 字段 别名

别名中有空格时建议添加双引号

- 去重
SELECT DISTINCT 字段

-加号+
两个操作数都为数值型,做加法运算
其中一方为字符型,试图将字符型数值转换成数值型,如果转换成果,继续做加法运算,转换失败,字符型数值转换为0 ,如果一方为null,+的结果为null
CONCAT(字段1,字段2//连接两个字段

1.1.2 条件查询

SELECT 
       查询列表
 FROM
      表名
WHERE 
       筛选条件


分类
1、按条件表达式筛选
条件运算符 > < = != >= <=
2、按逻辑表达式筛选
&& || 
AND OR NOT
3、模糊查询
like 
between and
in 
is null
#1 like
①一般和通配符搭配使用
	通配符:
	% 任意多个字符,包含0个字符
	_ 任意单个字符

select 
	*
from
	employees
where
	last_name like '%a%';
	
#2.between and
/*
①使用between and 可以提高语句的简洁度
②包含临界值
③两个临界值不要调换顺序

*/

#3.in
/*
含义:判断某字段的值是否属于in列表中的某一项
特点:
	①使用in提高语句简洁度
	②in列表的值类型必须一致或兼容
	③in列表中不支持通配符
*/

#4、is null

=或<>不能用于判断null值
is null或is not null 可以判断null值


1.1.3 排序查询


语法:
select 查询列表
from 表名
【where  筛选条件】
order by 排序的字段或表达式;


特点:
1、asc代表的是升序,可以省略
desc代表的是降序

2、order by子句可以支持 单个字段、别名、表达式、函数、多个字段

3、order by子句在查询语句的最后面,除了limit子句


1.1.4 常用函数

概念:类似于java的方法,将一组逻辑语句封装在方法体中,对外暴露方法名
好处:1、隐藏了实现细节  2、提高代码的重用性
调用:select 函数名(实参列表) 【from 表】;
特点:
	①叫什么(函数名)
	②干什么(函数功能)

分类:
	1、单行函数
	如 concat、length、ifnull等
	2、分组函数
	
	功能:做统计使用,又称为统计函数、聚合函数、组函数
	
常见函数:
	一、单行函数
	字符函数:
	length:获取字节个数(utf-8一个汉字代表3个字节,gbk为2个字节)
	concat:拼接字符串
	substr:截取字符
	instr:返回子串第一次出现的索引,如果没有,返回0
	trim:去除字符串前后空格,或去除字符串前后前后特定字符,字符串中间的不去除
	upper:变大写
	lower:变小写
	lpad:用指定字符,左填充到指定长度,若字符串超过指定长度,则从右侧删除
	rpad:右填充,其他同上
	replace:用指定字符1替换字符串中的特定字符2
	
	数学函数:
	round 四舍五入,可指定小数点后保留位数
	ceil:向上取整,返回大于等于参数的最小整数
	floor:向下取整
	truncate:截断,小数点后保留位数
	mod:取余
	
	日期函数:
	now:返回当前系统日期和时间
	curdate:返回当前系统日期,不包括时间
	curtime:返回当前系统时间,不包括日期
	year:返回指定时间的年
	month:返回月
	monthname:返回英文月
	day:日
	hour:小时
	minute:分钟
	second:秒
	str_to_date:日期格式的字符,转换成日期
	date_format:日期转换成字符
	其他函数:
	version:版本
	database:当前数据库
	user:当前用户
	控制函数
	if: 实现 if else 的效果 IF(表达式,语句1,语句2)表达式为真执行1,为假执行2
	caseswitch case效果
	    case 要判断的字段或表达式
	    when 常量1 then 语句1;
	    when 常量1 then 语句2...
	    else 语句n;
#二、分组函数

功能:用作统计使用,又称为聚合函数或统计函数或组函数

分类:
sum 求和、avg 平均值、max 最大值 、min 最小值 、count 计算个数

特点:
1、sum、avg一般用于处理数值型
   max、min、count可以处理任何类型
2、以上分组函数都忽略null值

3、可以和distinct搭配实现去重的运算

4、count函数的单独介绍
一般使用count(*)用作统计行数

5、和分组函数一同查询的字段要求是group by后的字段


1.1.5 分组查询

语法:

select 查询列表
from 表
【where 筛选条件】
group by 分组的字段
【order by 排序的字段】;

特点:
1、和分组函数一同查询的字段必须是group by后出现的字段
2、筛选分为两类:分组前筛选和分组后筛选
		    针对的表		     	  位置		   连接的关键字
分组前筛选	原始表				group by前	     where
	
分组后筛选	group by后的结果集  	group by后	    having

问题1:分组函数做筛选能不能放在where后面
答:不能

问题2:where——group by——having

一般来讲,能用分组前筛选的,尽量使用分组前筛选,提高效率

3、分组可以按单个字段也可以按多个字段
4、可以搭配着排序使用

1.1.6 连接查询


含义:又称多表查询,当查询的字段来自于多个表时,就会用到连接查询

笛卡尔乘积现象:表1 有m行,表2有n行,结果=m*n行

发生原因:没有有效的连接条件
如何避免:添加有效的连接条件

分类:

	按年代分类:
	sql92标准:仅仅支持内连接
	sql99标准【推荐】:支持内连接+外连接(左外和右外)+交叉连接
	
	按功能分类:
		内连接:
			等值连接
			非等值连接
			自连接
		外连接:
			左外连接
			右外连接
			全外连接
		
		交叉连接

1.2 DML

2 数据库创建

//创建数据库
CREATE DATABASE selectTest;
use selectTest;
//创建表
CREATE TABLE student(
    s_no VARCHAR(20) PRIMARY KEY COMMENT'学生学号',
    s_name VARCHAR(20) NOT NULL COMMENT'学生姓名 不能为空',
    s_sex VARCHAR(10) NOT NULL COMMENT'学生性别',
    s_birthday DATETIME COMMENT'学生生日',
    s_class VARCHAR(20) COMMENT'学生所在的班级'
);

2.Oracle

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值