表單查詢 約束 運算子

2021-09-08 05:26:59 字數 3523 閱讀 2441

1.dual表常用在沒有查詢目標的select語句塊中,它只包含一行資料

查詢當前日期       select sysdate from dual;

在當前日期的基礎上加3天  select sysdate+3    

from dual;

2.約束,保證資料的完整性

--約束分類:  1.primary key ,2.unique  3.not null  4. default  5.check  6. foreign key  

--語法:  alter table 表名  add constraint 約束名 約束型別(primary key/unique/check/foreign key)(字段)

-- references 表名(欄位名)

-- notnull  default 

-- create table (id int, s_name varchar2(20)  not null default 預設值 )  

--級聯刪除外來鍵對應的資料行

--create table course (  c_id int , c_name varchar2(20)  );

--alter table course add constraint pk_c_id primary key(c_id);  

--create table student (s_id int,s_name varchar2(20),c_id int ) 

--alter table student add constraint fk_c_id foreign key(c_id) references course(c_id) on delete cascade; 

--當主表中資料刪除,子表中的行就刪除

on delete set null 

--刪除約束: 

alter table 表名 drop constraint 約束名 

3.關於表單查詢相應操作

別名查詢 select sal as "員工工資"  from emp;

使用運算子查詢  select sal,sal+500 as "加薪後的" from emp;

查詢員工的ename+」職位是:」+job

select ename||『 的職位是'||job as "employees details" from emp;

--查詢員工編號不等於7369的員工資訊  !=  <>

select empno,ename  from emp  where empno<>7369 

--查詢員工表,要求 員工編號 大於如下列表中的任意乙個值即可  7369,7521,7499  

select empno,ename from emp where empno>all(7369,7521,7499)

any 列表中任意乙個   all 列表中所有的。

--表示什麼範圍內,between ... and 

select empno,ename,sal  from emp  where sal between 1800 and 3000; 

--查詢沒有福利的員工

select empno,ename,sal,comm from emp  where comm is null;

--列出員工編號不是數字的員工資訊  

select empno,ename  from emp where empno is not nan

like:匹配字串

in:匹配列表值

between:匹配範圍值

is null:匹配空值

is nan:匹配非數字值

--匹配'_m%',表示第乙個是任意字母,第二個是m,%表示最後可以是任意字母

select *from emp where ename like '_m%';

--列出姓名中有%的員工資訊 

(escape選項告知資料庫如何區分萬用字元和要匹配的字元,可以使用反斜槓(\))

select empno,ename from  emp where job like '%\%%' escape '\'; 

--查詢emp表中入職日期大於1982-1-1 ,同時工資大於900的員工資訊

select empno,ename,hiredate,sal from  emp where hiredate>'01-1月-1982'  and sal>900

--刪除表中所有記錄 delete from t1;

--消除重複  distinct,消除重複的job值 

select distinct job from e***;

order by是按照公升序(asc)排序,也可以使用desc指定為降序排序

例如,查詢emp表,先按empno公升序排列,再按ename降序排列(如果第乙個相同,再按第二個排序)

select *from emp order by empno asc, ename desc;

--處理null值,null值被查詢出來的時候沒有顯示資訊,如何告知使用者這是空字串還是null,這可以通過nvl()函式來進行處理

select empno,ename ,nvl(comm, 0) from emp;

--使用&+引數名(手工輸入啦)

例如:查詢員工編號為某數值的員工

select * from emp where empno=&arg;

4.綜合查詢

--檢索員工表中員工姓名和僱傭時間  ,要求是年-月-日形式,中文顯示

--函式 to_char 轉換函式字元格式  日期--字串   to_char(時間字段,轉換格式)  

select ename 員工姓名, to_char(hiredate,'yyyy-mm-dd') 僱傭時間   from emp;

--檢索員工表中員工的姓名及全年的收入  

select ename 員工姓名, (sal+nvl(comm,0))*12 全年收入  from  emp;

--檢索emp表中部門編號是30的員工姓名,月收入及提成,並要求結果按月收入公升序,然後按提成降序顯示

select ename,deptno,sal,comm from emp where deptno=30 order by 3,4 desc;

--選擇公司中沒有管理者的員工姓名及工作  

select  ename,job from emp  where mgr is null;

--找出部門10中的所有經理和部門20中的所有辦事員的詳細資料

select * from emp where (deptno=10 and job='manager')  or

(deptno=20 and job='clerk') ;

--找出在(任何年份的)2月受聘的所有員工 

--取到月份,hiredate,  靠to_char(日期字段,轉換格式) 

select ename,hiredate from emp where to_char(hiredate,'mm')='02';

--對於每個員工,顯示其加入公司的天數  

select ename,sysdate-hiredate 天數差 from emp;

MySQL約束 運算子相關

約束 目的 使得資料更完整,更準確。實體完整性 域的完整性 引用完整性 使用者自定義完整性 一 約束的分類 1.鍵約束 1 主鍵約束 primary key 2 唯一鍵約束 unique 3 外來鍵約束 foreign key 2.非空約束 not null 3.預設值約束 default 4.自增...

(運算子) 運算子

運算子既可作為一元運算子也可作為二元運算子。備註 unsafe context data guid 00bf87717d88a9fac1afadb796c675da 一元 運算子返回運算元的位址 要求 unsafe 上下文 bool data guid 9efd189df2cfb88799dca08...

JS運算子 算術運算子 比較運算子 賦值運算子

兩邊的變數都是number型別 則是單純的加法運算 當字串出現時 結果是字串型別 字串之後的內容 不論什麼型別 都會被作為字串進行拼接 例子 var num1 10 var num2 20 num num1 num2 var result num1 num2 num1 false console.l...