SQL基础语句

作者&投稿:蒋功 (若有异议请与网页底部的电邮联系)

/*
语法:
select 查询列表 from 表名
特点:
1.查询列表可以是:表中的字段、常量值、表达式、函数
2.查询的结果是虚拟的表格
*/
-- 注意查询之前,要打开指定的库,use myemployees;
USE myemployees;

SELECT last_name FROM employees;

SELECT last_name,salary,email FROM employees;

SELECT*FROM employees;
-- 顺序和表中的字段一样

SELECT 100;
SELECT 'JOIN';

SELECT 100*99;

SELECT VERSION();-- 8.0.11

/*
好处:
1.便于理解
2.如果要查询的字段有重名的情况,使用别名可以区分开
*/

SELECT 100*77 AS 结果 haha;
SELECT last_name AS 姓,first_name AS 名 FROM employees;

SELECT 100*77 结果 haha;
SELECT last_name 姓,first_name 名 FROM employees;

-- SELECT salary AS OUT put FROM employees;会报错
-- 因为out是关键词,所以,如果别名里面有关键词的,请加双引号,或者单引号。
SELECT salary AS "OUT put" FROM employees;

SELECT DISTINCT department_id FROM employees;

/*
1.+号只有一个功能:运算符。
select 100+90; 这个做加法
2.SELECT NULL+10; --只要一方为NULL,则结果肯定是NULL。
*/

-- 错误❌:SELECT last_name+first_name AS 姓名 FROM employees;
SELECT CONCAT(last_name,first_name) AS 姓名 FROM employees;

DESC departments;
SELECT * FROM departments;

SELECT DISTINCT job_id FROM employees;

-- commission_pct有些值是NULL
-- 因为NULL和谁拼接都是NULL
-- 所以下面的结果可能为NULL
SELECT CONCAT(employee_id,',',first_name,',',last_name,",",commission_pct) AS "OUT_PUT" FROM employees;

SELECT IFNULL(commission_pct,0) AS 奖金率,commission_pct FROM employees;

-- 上面题的做法:
SELECT CONCAT(employee_id,',',first_name,',',last_name,",",IFNULL(commission_pct,0)) AS "OUT_PUT" FROM employees;

/*
语法:
select 查询列表 from 表名 where 筛选条件;
查询列表可以是:表中的字段、常量值、表达式、函数

分类:
一。按条件表达式筛选
条件运算符:> < = !=或者<> >= <=
二。按逻辑表达式筛选
逻辑运算符:z
作用:连接条件表达式
&& || ! 或者 and or not
三。模糊查询
like
BETWEEN AND
in
is null 或者 is not null
*/

SELECT * FROM employees WHERE salary>12000;

SELECT employee_id,department_id FROM employees WHERE department_id<>90;

SELECT last_name,salary,commission_pct
FROM employees
WHERE salary>=10000 AND salary<=20000;

SELECT * FROM employees WHERE department_id<90 or department_id >110 or salary>15000;
-- 或者写成
SELECT * FROM employees WHERE NOt(department_id>=90 AND department_id <=110) or salary>15000;

/*like 特点:
一般和通配符搭配使用,
通配符
% :任意多个字符,包含0个字符
_ :占一个字符
*/

-- %代表通配符
SELECT * FROM employees WHERE last_name LIKE '%a%';

SELECT last_name,salary FROM employees WHERE last_name LIKE '__n_l%';

-- \转义字符
SELECT last_name FROM employees WHERE last_name LIKE ' _%';
-- 或者 告诉系统
%' ESCAPE '$';

/*
1.使用between and 可以提高语句简洁度
2.包好临界值
3.前小后大,不能颠倒顺序
*/

SELECT * FROM employees WHERE employee_id>=100 AND employee_id<=120;
-- 或者
SELECT * FROM employees WHERE employee_id BETWEEN 100 AND 120;

/*
含义:判断某字段的值是否属于in列表中的某一项
特点:
1.in 比 or 简洁
2.in列表的值类型必须是相同的或者兼容的
3.in列表的值不能使用通配符
*/

SELECT last_name,job_id FROM employees WHERE job_id='IT_PROG' or job_id='AD_PRES' or job_id='AD_VP';
-- 或者
SELECT last_name,job_id FROM employees WHERE job_id IN('IT_PROG' , 'AD_PRES' ,'AD_VP');

/*
=或者<>不能用于判断null值,所以只能用 is null和 is not null
*/

SELECT last_name,commission_pct FROM employees WHERE commission_pct is null;

SELECT last_name,commission_pct FROM employees WHERE commission_pct is not null;

-- 安全等于作用:判断是否等于,包括null,如果等于返回true。可读性较低
-- is null :仅仅判断null值,可读性较高。

-- 直接写=是不行的
SELECT last_name,commission_pct FROM employees WHERE commission_pct <=> null;

SELECT * FROM employees WHERE salary <=> 12000;

-- 注意这个IFNULL
SELECT last_name,department_id,salary 12 (1+IFNULL(commission_pct,0))
as 年薪
FROM employees
WHERE employee_id=176;

SELECT salary,last_name FROM employees WHERE commission_pct IS NULL AND salary<18000;

SELECT * FROM employees WHERE job_id<>'IT' OR salary=12000;

DESC departments;

SELECT DISTINCT location_id FROM departments;

SELECT * FROM employees WHERE commission_pct like '%%' and last_name like '%%';-- commission_pct有字段有null,and之后就是null了



~

qlsql oracle 怎么把大于某字段小于某字段的数据排成一列
答:create table mm (a number(10),b number(10));create table nn (c number(10));insert into mm values (1,3);insert into mm values (7,9);commit;declare begin for r in (select a,b from mm) loop insert into nn select * from (select row_number() over(order by a.object...

电工基础里所有的公式
答:P=UI R=U/I P=U*U/R。常用计算公式 P=U×I R=U÷I P-功率(W)。P=I2×R R=P÷I2 R-电阻()。P=U2÷R I=U÷R I-电流(A) U=I×R U-电压(V)。XC=1/2πC XL=2πL XC---容抗()。XL---感抗() QL=U2/XL QL=I2.XL。QL---无功功率(Vr)---频率...

Verilog HDL语言释义
答:reg [3:0]Qh,Ql;reg C;---声明QhQIC为寄存器变量,说明应用于时序逻辑 initial begin Qh=4'd0;Ql=4'd0;C=0;end ---从initial到end表示初始化赋值,这段语句不会被综合,用于仿真 always @ (posedge CLK)begin if(EN==1)---使能,当EN为高电平时才执行下面的程序 begin if(Rd==0...

暖通里面ql是什么意思
答:QL作为一个有效评估空气质量的指标,在暖通设计中扮演了重要的角色。根据建筑物的不同特点和使用需求,通过合理调节空气量,可以提高整个建筑的室内空气质量,避免出现空气污染和呼吸道疾病的潜在危险。新材料、新技术的不断发展带来了更多的优质暖通设备和系统,在保证QL基础上,降低能源消耗,实现“节能降耗...

...为1为一则将这条数据放到最前面 其他数据不变 ql
答:order by case when 字段名=1 then 0 else 1 end,id

建筑中QL代表什么意思?
答:QL就是圈梁 圈梁分同位圈梁和板底圈梁。同位圈梁,是指圈梁的标高和楼板的标高为统一标高,这种设计往往将圈梁和现浇板结合在一起设计。而板底圈梁,就是圈梁在现浇板或预制板的板底设置圈梁,圈梁的上面直接布置现浇板或者预制板;同时也有好些把圈梁做在门窗洞口上,用圈梁代过梁,这样圈梁上还有几皮...

解释什么是S QL数据库?
答:SQL是Structured Query Language(结构化查询语言)的缩写。SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言。在使用它时,只需要发出“做什么”的命令,“怎么做”是不用使用者考虑的。SQL功能强大、简单易学、使用方便,已经成为了数据库操作的基础,并且现在几乎所有的数据库均支持SQL。...

用一个 while循环语句把队列Q1的内容移动到队列Q2操作后队列Ql应该为...
答:Q1 = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 ]Q2 = [ ]while len(Q1) > 0: Q2.append(Q1.pop(0))print(Q1)print(Q2)

在建筑工程中L,DL,GLJL,LL,CJ,GJ,KL,SL,TJ,WJ,ZJ,QL,WL分别代表...
答:都是汉语拼音的缩写。1、梁代号 L,非框架梁。DL,暗梁。GL,过梁。JL,基础梁。LL,连梁。KL,框架梁。SL,,这个没有听说过。。QL,圈梁。WL,屋面梁。2、基础代号 CJ,承台基础。DJ,普通独立基础。BJ,杯口独立基础。GJ,TJ,条形基础。WJ,ZJ。其余的我就不清楚了 ...

建筑中“QL”代表什么意思?
答:圈梁 在建筑设计图中,l表示是梁、ll表示是连续梁、ql表示圈梁、jl表示基础梁、tl表示是梯梁、dl表示是地梁,z表示柱、gz表示构造柱、kz表示框架柱,m表示是门、c表示是窗。