oracle数据库问题集

Oracle中的sql语句, 
1.where/group by/having子句中只能直接使用列名或者常量,而不能使用列名的别名,除非这个别名来自子查询之中,如:select .... from (select col1 ccc from table) where ccc >

2.而order by 则可以直接使用别名,如select col1 ccc from table order by ccc 这和sql 的执行顺序是有关的,where中的部分先执行 -> 如果有group by,接着执行group by -> select中的函数计算、别名指定再运行-> 最后order by 因此,字段、表达式的别名在where子句和group by子句都是不能使用的,而在order by中不仅可以使用别名,甚至可以直接使用列名的下标来进行排序,如:order by 1 desc,2 asc

3.为列名声明别名时可以使用AS,也可以省略;而为表名声明别名时,则不能使用A


二.select  * into newtable from table      oracle支持这种语法表示复制表到新创建的表中,在plsql中不支持提示报错:缺失关键字  可以用create table nbw as select * from innert来替代上面的语句


三.在创建表的时候元素用primary key限制的是主键,系统会自动为这个主键创建索引,查询速率更快,不能为空,同时另一个表也可以使用这个主键,这个主键就成了外键

primary  key修饰后的主键必须有不同的唯一的值

在创建表的时候所有的出了主键所有的值都默认为null,    当使用not null时就是指:在增删改查时,这个值不能为空,必须为这个元素赋值。

unique修饰的列内容不能相同


四.select * from product left join products on product.id = products.id;连接的语法select * from (product left join products on product.id = products.id)将两个表先按照某种方式连接后然后在select from连接后的两个表,当选择具体的列时必须加上表名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值