常用sql语句整理

这学期的数据库实验做完了,是时候应该把用到的sql整理一下。平台是oracle

oracle的一个特点是重命名不需要写as关键字,下面就不再赘述了。


1.建表:

create table teacher (

id varchar(10),name varchar(20),salary numeric(2,0))

用逗号将几列隔开,格式为属性名+类型+限制(可选),这里varchar是变长字符串,括号中的数字表示最大位数。numeric是数字,括号中两个参数分别表示最大长度和保留的小数位数(默认四舍五入)。要求存入表中的数据四舍五入保留小数几位的时候 需要在建表的时候就定义好,这样系统会对插入的数据自动进行处理。

这是普通的建表,还可以在select基础上建表:

create table teacher as(

select name teacher_name 

from myteacher)

如上,表中的属性和名称就是查询结果,当然也可以在表名后面指定属性名称和类型,和查询结果一一对应,查询中重命名省略as。

删除表的时候直接drop teacher

同样的规则也适用于view


2.查询:

select *

from A

where name=  '张三 '

比较简单,注意在语句中进行相等判断的时候等号后面要有一个空格。

运算顺序为from---where---group by---having---select----order by

另外,有分组时,查询的对象必须是分组属性或者是聚集函数。去重在select后加distinct,默认不去重

判断是否为null不用等号,而是用is null和is not null

得到属性长度:length(name)

in和exists关键字就不提了


3.删除:

delete from A where....会把A中所有符合条件的元组删除


4.插入:

insert into A 

values('name','age','salary');

只写出表名的话默认是插入一个完整的元组,也可以在A后用括号指出属性名只插入一个含有几列属性的元组,没有值的属性置null。只能一条一条插

也可以直接把一个查询结果插入:

insert into A

select *

from B


5.更新:

update A

set salary = salary*2

where name='张三'

修改特定属性的值,也比较简单。


6.二元运算:运算关键字两边用括号包起来,两边的属性必须完全对应。

并:union   自动去重,如果不想去重使用union all  

交:intersect

差:except


7.字符串处理:

剪切属性字符串:substr(name,0,1,)    第一个参数是原始字符串,二三分别是起点和剪切长度,第一个字就从1开始。返回值就是剪出的字符串

替换字符串:replace(name,'a','b')参数一仍然是原始值,二是目标字符串,三是替换的字符串。返回值是替换后的字符串

正则表达式:oralce上有几个用于正则表达式的函数,比较复杂,只是进行格式判断的话可以直接用 属性+like+ ‘正则表达式’


8.with

with用于为查询提供一个临时表,注意只能用于查询,而且可以建不止一个临时表,用逗号隔开即可。

with A(name) as

(select name  from B)

select ....

这里的with语法和create table相同。


9.在表中加入一个字段:

alter table T add 字段名 varchar(10);




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值