数据库——操作数据库语句(select单表查询)

2022-09-05 09:59:52 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

前两天又装了oracle,开始再次学习数据库,希望这次可以系统的学习,主要是语句的学习。

数据库操作语句SQL

一、select 查询语句

二、DDL 数据 定义 语句(create、drop、alter)

三、DML 数据 操作 语句(insert delect update)

四、TCL 事务 控制 语句(commit 提交、rollback 撤销 、savepoint 保存)

一、SELECT 1、select 字段名1,字段名2,字段名3 from 表名; 2、*代表所有的字段名,不推荐。(效率差一点) 3、字段或者表达式 – * / select salary,14*salary from s_emp; 一个月涨500之后,再显示: select salary 500,14*(salary 500)from s_emp; 4、不让显示——起别名 空格。 select salary 500 sal,14*(salary 500) Y_sal from s_emp; 5、字符串怎么解决:单引号

6、把两个字符拼接起来:|| select first_name || last_name name from s_emp;

用下划线隔开:

select first_name || ‘_’ || last_name name from s_emp;

7、特殊拼接:拼接一个单引号(转义的思想)

select first_name || ‘‘’’ || last_name name from s_emp;

拼接两个单引号?? select first_name || ‘‘’’ ||‘‘’’ || last_name name from s_emp;

select first_name || ‘‘‘‘’’ || last_name name from s_emp;

两种方法都是对的。

7、空值(null)的处理:(空值和任何值做运算 都是空值) select salary sal , salary*12(1 commission_pct)/100 from s_emp; nvl(part1,part2) null值处理函数 当part1为空值,就返回part2 若part1不为空,就返回part1 NULL要早点处理 select salary sal , nvl(salary*12(1 commission_pct)/100, 100) from s_emp;

8、把s_emp表中的manager_id查询出来,如果manage_id是空 就显示成-1; select nv1(manager_id,-1) from s_emp;

9.数据的排重:distinct select salary from s_emp; select distinct salary from s_emp;

二、where 语句 1、作用:限制表中的行数剧,返回。 2、两个 from 表名 where 1=1; from 表名 where 1=2; — 代表单行注释

把s_emp表中salary大于1400员工信息显示出来 select * from s_emp where salary>1400; 把s_emp表中salary大于1400员工信息显示出来 select * from s_emp where salary=1400; 把s_emp表中name叫CAI员工信息显示出来 select * from s_emp where name=’CAI’; 3、常见的条件运算符: = > <

4、sql提供的运算符: 4.1 表达式表达一个闭区间;[a,b] between a and b; 把s_emp表中工资在1000到1500之间的员工信息 显示出来 select * from s_emp where salary between 1000 and 1500; 4.2 表达式表示一个范围的取值:in where id in(2,5,7); 4.3 模糊查询 like where name like ‘李%’; where name like ‘%小%’; 4.4 特殊的转义处理: _和% where name like ‘S_%’ escape ‘’; 找出所有__开头的表名 where name like ‘S__%’ escape ‘’;

三、空值的判断: is NULL 1、找出提成是10的员工: select id from s_emp where commission_pct = 10; 2、找出提成不是10的员工: select id from s_emp where commission_pct != 10; 3、找出提成是NULL的员工: select id from s_emp where commission_pct is NULL;

总结;模糊查询 、空值的判断、。。。

7.7 逻辑条件: and where salary >=1400 and salary <=2500; or not 八、数据的排序: order by 排序标准 排序方式(desc); 按照一定的排序标准把数据按照升序或者降序的次序进行排序 升序:默认 asc 降序:desc 排序中的NULL是如何处理的 :作为最大值。

查询的第四部分

一、单行函数 特点:针对SQL语句的每一行,都返回一个结果。 多行函数(组函数): 特点:针对SQL语句的一组数据,都返回一个结果。 eg:upper(part1) 字母变大写(单行函数) select first_name,upper(first_name) from s_emp where id = 1; 一行 select first_name,upper(first_name) from s_emp where id < 1; 无结果 select first_name,upper(first_name) from s_emp where id > 1; 24个结果 count(part1) 统计函数(组函数) select first_name,count(first_name) from s_emp where id = 1; 出现错误 select count(first_name) from s_emp where id = 1; 正确 1 select count(first_name) from s_emp where id < 1; 0 select count(first_name) from s_emp where id > 1; 24

1.3 测试表:dual

单行单列的表

select * from dual;

select upper(‘hello’) from dual;

1.4 处理字符串的单行函数

大写 upper(part1) select upper(‘hello’) from dual;

小写 lower(part1) select upper(‘HELLO’) from dual;

首字母大写 initcap(part1) select initcap(‘hello world’) from dual;

长度 length(part1) select length(‘hello’) from dual;

连接 concat(part1,part2) select concat(‘hello world’) from dual;

|| 作为连接更加方便 select first_name||last_name name from s_emp; 截取函数 substr(part1,part2,part1) part1:字符串

part2:数字,从哪位开始截取,编号从1开始截取(C中是从0开始)

part2:截取长度

替换 replace(part1,part2,part1)

part1:要处理的字符串

part2:要被替换的内容

part2:被替换成的内容 to_char(part1,part2)

part1:要处理的数字

part2: 格式

‘格式’:

fm:格式的开头

0:小数点前代表前置导零

9:0到9数字

,:分隔符 千位

.:小数点

¥:rmb

$:美元

    eg:select  to_char(12345,’fm$099,999.99′) from dual;

select  to_char(12345.23,’fm$099,999.00′) from dual;

按照如下格式显示工资:

     ‘fm$099,999.00’

select  id,first_name,to_char(salary,‘fm$099,999.00’)  from  s_emp;

1.8 处理数字函数: round(part1,part2) 四舍五入 part1:要处理数字 part2:默认0代表取整 1代表保留小数点后一位 -1代表对小数点前一位进行 四舍五入 select round(2.54) from dual; select round(2.54,1) from dual; select round(2.54,-1) from dual;

trunc 截取函数(用到的更多) trunc(part1,part2) 截取(数字,字符串等等) part1:要处理数字 part2:默认0代表取整 1代表保留小数点后一位 -1代表对小数点前一位进行 截取 select trunc(2.54) from dual; select trunc(2.54,1) from dual; select trunc(2.54,-1) from dual; 1.9函数嵌套:把一个函数的返回值作为另一个的嵌套。 select concat (concat(‘a’,’b’),concat(‘c’,’d’)); 显示first_name 的后三个字符 length substr select first_name,substr(first_name,length(first_name)-2,3) from s_emp;

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/137438.html原文链接:https://javaforall.cn

0 人点赞