结构化查询语句SQL
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SQL语言基础,一次只能执行一条命令
oracle临时表,表的别名去掉as,列名不要
oracle 不支持主键自增,用 序列 和 触发器 来完成主键的递增
where不能和聚合函数一起用
oracle不支持select top 语句,where rownum=1;取第一行,select * from (select rownum as num,dept.* from dept) a where a.num between 2 and 3
rename students to class; //表重命名
truncate table class; //快速删除表的内容,不可回滚
select 'id'||id from students; //oarcle字符串连接用"||",不能给所有*的加,
select xm from table1 where soundex(xm)=soundex('weather');//返回一个与给定的字符串读音相同的字符串
-------伪列,以下的效果都是会显示行号---------
select rownum,a.* from students a; //返回的结果集中行的序号a是别名
select rowid,a.* from students a;
select NVL(price,1) from scott.book;
--------定义语言
constraints fk_classid foreign key(classid) references class(classid) //建表时设置外键约束
alter table students drop constraints fk_classid; //删除外键约束
alter table students modify sex number; // 修改列的数据类型
alter table students add constraints sex_check check(sex='男' or sex='女'); //给字段加check约束
create table newtable as select * from students; //复制表
create table newtable as select * from students where 1=2;//复制表结构
---------日期----------------
Sysdate 获取日期和时间
select months_between(Sysdate,startdate) from dual //获取两个日期之间的月份间隔
select Add_months(Sysdate,1) from dual // 在指定日期上添加月份
select next_day('18-5月-2001','星期五') next_day from dual; //指定日期的下一个时间
select last_day(sysdate) from dual; //当月的最后一天
列:select months_between('6-5月-1991','6-5月-1992') from dual;
insert into dt values('06-10月-1991'); //期数据类型的默认格式为“DD-MON-YY”
----------类型转换函数----------
insert into dt values(to_date('1991-10-06','yyyy-MM-dd')); //使用TO_DATE函数转换
SELECT TO_CHAR(SYSDATE,'YYYY/MON/DD DY AM HH:MI:SS') FROM dual;//日期转换函数,默认格式为DD-MON-YY
select to_number('28966') from dual //字符串转换为数值
-------多条SQL语句集合操作---------
注:SQL语句的查询结果,要有相同数量的列和类型
UNION 合并,去除重复
UNION ALL 合并,不去除重复
INTERSECT 取交集
MINUS 取非交集
列:select * from students INTERSECT select * from person;
-----事物语言---------
SAVEPOINT aa; //标记事务中可以回滚的点
ROLLBACK aa; // 撤销事务中已完成的工作
COMMIT ; //提交并结束事务处理
----------字符串函数-----
CONCAT(s1,s2): //对字符串s1和s2进行连接
SUBSTR(s,m,[n])://取子串函数,从s串中第m个字符起,取长度为n的一个子串,如果n省略,一直到s串的尾部;
LENGTH(s)://返回字符串s的
长度;
LOWER(s)://将字符串s中的所有字母变为小写;
UPPER(s)://将字符串s中的所有字母变为大写;
LTRIM(s)://移走左边的空格字符;
RTRIM(s)://移走右边的空格字符;
REPLACE(s1,s2,[s3])://字符串s1中查找s2字符串,并用s3字符串代替,如果s3省略,删除s1中所有的s2串;
INSTR(s1,s2)://s1串中查找s2串出现的位置,并作为函数返回值,如果未查到返回0;
列:select CONCAT('lo','ve') from dual;
---------------