CREATE TABLE STU( STUID NUMBER(10) PRIMARY KEY, //申明为主键 STUNAME VARCHAR2(20) NOT NULL , //不为null STUSEX VARCHAR2(2) DEFAULT '男' CHECK(STUSEX IN('男','女')) );
CREATE TABLE STU_COURSE( ID NUMBER(10) PRIMARY KEY, STUID NUMBER(10) REFERENCES STU(STUID), //外键 COURSEID NUMBER(10), CONSTRAINT FF_COURSEid FOREIGN KEY(COURSEID) REFERENCES COURSE(COURSEID) ON DELETE CASCADE //级联删除 )
create table test( students_id number(10) primary key , stu_n varchar2(20) not NULL , sut_ex varchar(2) default '男' ) ;
inset into STU(id,name) values(1,'张三');
insert all
into stu(sid,sname) values(ssid,ssname)
into tea(tid,tname) values(ttid,ttname)
select INITCAP(名字) AS 名字, LENGTH(名字) AS 名字 FROM 表 WHERE SUBSTR(名字,开始,截取多少位数) IN('J','H','P');
SELECT 名字 ,奖金
FROM 表
WHERE COMM IS NULL;
格式一:instr( string1, string2 ) / instr(源字符串, 目标字符串) 格式二:instr( string1, string2 [, start_position [, nth_appearance ] ] ) / instr(源字符串, 目标字符串, 起始位置, 匹配序号) 解析:string2 的值要在string1中查找,是从start_position给出的数值(即:位置)开始在string1检索,检索第nth_appearance(几)次出现string2。 注:在Oracle/PLSQL中,instr函数返回要截取的字符串在源字符串中的位置。只检索一次,也就是说从字符的开始到字符的结尾就结束。
1、substr函数格式 (俗称:字符截取函数) 格式1: substr(string string, int a, int b); 格式2:substr(string string, int a) ; 解释: 格式1: 1、string 需要截取的字符串 2、a 截取字符串的开始位置(注:当a等于0或1时,都是从第一位开始截取) 3、b 要截取的字符串的长度 格式2: 1、string 需要截取的字符串 2、a 可以理解为从第a个字符开始截取后面所有的字符串。
ROUND(数,小数位)表示四舍五入到帝即位小数
TRUNC(同上),截取小数位
M
如果员工试用期6个月,查询职位不是MANAGER的员工姓名,入职日期,转正日期,入职日期后的第一个星期一,入职当月的最后一天日期。(提示:使用add_months,next_day,last_day) SELECT ADD_MONTHS(实习日期,6),NEXT_DAY(ADD_MONTHS(入职日期,6),‘星期一’)AS 入职后第一个星期一,LAST_DAY(ADD_MONTHS(入职日期,6))AS 入职当月最有一天 from emp where job not in ('manager')
查询部门10,20的员工截止到2000年1月1日,工作了多少个月,入职的月份。(提示:使用months_between,extract) SELECT ROUND(MONTHS_BETWEEN('1-1月-2000',入职日期)) AS MONTHS ,EXTRACT(MONTH FROM 日期) AS 入职日期
OD(A,B)取m/n后的余数