1--增删插改
增加oracle的用户, 并给用户授权
举例:
SVRMGR>create user newuser identified by userpasswd default tablespace application temporary tablespace tmp8;
SVRMGR>grant connect to newuser;
SVRMGR>grant resource to newuser;
SVRMGR>grant update on emp to newuser;
将一张表删除语句的格式如下:
DORP TABLE 表名;
例:表删除将同时删除表的数据和表的定义
sql>drop table test
INSERT (往数据表里插入记录的语句)
INSERT INTO 表名(字段名1, 字段名2, ……) VALUES ( 值1, 值2, ……);
INSERT INTO 表名(字段名1, 字段名2, ……) SELECT (字段名1, 字段名2, ……) FROM 另外的表名;
UPDATE (修改数据表里记录的语句)
UPDATE表名 SET 字段名1=值1, 字段名2=值2, …… WHERE 条件;
update empset salary=(salary+bonus)*1.1
这个语句中,雇员的工资和奖金都将更新为一个新的值,但是如果没有奖金,即 salary + null,那么就会得出错误的结论,这个时候就要使用nvl函数来排除null值的影响。
所以正确的语句是:
update empset salary=(salary+nvl(bonus,0)*1.1
ALTER (改变表, 索引, 视图等)
改变表的名称
RENAME表名1 TO 表名2;
表的后面增加一个字段
ALTER TABLE表名 ADD (字段名 字段名描述);
修改表里字段类型
ALTER TABLE表名 MODIFY(字段名 字段名描述);
修改表中的某列
Alter table 表名 rename column 字段1 to 字段2
删除表中的某个字段:
alter table xxx drop comumn (comumn_name);
如果不能刪除,要修改INITSID.ORA OR SPFILE.ORA中的COMPTABILE的數值加大。
在某些低版本的oracle中,想达到删除字段的结果,只能是先建后删!
先观察表有无索引、触发器等信息,记录下来。
然后:
create table newtablename as select fieldlist from yourtablename
fieldlist是你想保留的所有字段。
drop table yourtablename;
rename newtablename to yourtablename;
然后再重建相应的索引和触发器信息。
给表里的字段加上约束条件
ALTER TABLE 表名 ADD CONSTRAINT 约束名 PRIMARY KEY (字段名);
ALTER TABLE 表名 ADD CONSTRAINT 约束名 UNIQUE (字段名);
//创建表时可以给字段加上约束条件
//例如 不允许重复 UNIQUE, 关键字 PRIMARY KEY
TRUNCATE (清空表里的所有记录, 保留表的结构)
TRUNCATE 表名;
添加主键:Alter table tabname add primary key(col)
删除主键:Alter table tabname drop primary key(col)
说明:几个简单的基本的sql语句
选择:select * from table1 where 范围
插入:insert into table1(field1,field2) values(value1,value2)
删除:delete from table1 where 范围
更新:update table1 set field1=value1 where 范围
查找:select * from table1 where field1 like ’%value1%’ ---like的语法很精妙,查资料!
排序:select * from table1 order by field1,field2 [desc]
总数:select count * as totalcount from table1
求和:select sum(field1) as sumvalue from table1
平均:select avg(field1) as avgvalue from table1
最大:select max(field1) as maxvalue from table1
最小:select min(field1) as minvalue from table1
2--把用户对象从一个表空间gaojf导入到另外一个表空间gaojf1步骤:
1:REVOKE UNLIMITED TABLESPACE FROM "GAOJF1";#在gaojf1的系统权限中取消掉 unlimited tablespace
2:ALTER USER "GAOJF1" QUOTA 20 M ON CICRO1; 给用户gaojf1资源限额20m
或者是
ALTER USER "GAOJF1" QUOTA UNLIMITED ON CICRO1;给用户gaojf1资源限额为无限制使用.(非无)
3:然后用导出语句:
imp gaojf1/gaojf1 file=cicrotablestest.dmp fromuser=gaojf touser=gaojf1 ignore=y tablespaces=cicro1;
或者
imp gaojf1/gaojf1 file=cicrotablestest.dmp full=y,ignore=y;
3--:更改sys和sysem的密码
Alter user sys identified by 新的密码
Alter user system identified by 新的密码
4--增加一个表空间
当我们要开发某个大型的应用程序时,最好建立一个相应的表空间。
命令示例:
SVRMGR>create tablespace application datafile
‘/usr/oracle/dbs/application.dbf’ size 3M
针对具体情况增加回滚和临时表空间
命令示例:
SVRMGR>create rollback tablespace rbs8 datafile
‘/usr/oracle/dbs/rbs8.dbf’ size 4M
SVRMGR>create tablespace tmp8 datafile
‘/usr/oracle/dbs/tmp8.dbf’ size 550K
回滚和临时表空间用完后,可删除或使它offline
SVRMGR>drop tablespace rbs8;
SVRMGR>drop tablespace tmp8;
SVRMGR>alter tablespace rbs offline;
SVRMGR>alter tablespace tmp8 offline;
建立回滚段举例:
SVRMGR>create rollback segment rs11 tablespace tmp8 ;
SVRMGR>alter rollback segment rs11 online;
SVRMGR>alter rollback segment rs11 offline;
5--把两个字符连接起来
eg:select game_card_type_id||name from game_card_type;
6--order by desc(降序)
order by asc(升序)
7--like ‘_a%’ _表示一个字符。%表示多少字符
like ‘%x/_y%’ escape ‘/’:显示包括x_y的字符
8--SQL*PLUS的环境(可以在glogin.sql中定义初始参数)
1) start 命令用以执行一个已储存的文件,等同于@
2) SAVE命令用以创建一个文件(保存当前执行的一个命令)
3) EDIT命令用以调用编辑器编辑已存文件的内容
4) CHANGE 是SQL*Plus的编辑命令,用于在当前一行把旧文段转换为新文段
5) DEL 命令用以删除文本中一行或多行文字
6) SPOOL命令用以把查询结果储存在一个已有文件中,注意与SAVE区别
7) GET命令用以一个文件的内容写进一个SQL块中
8) SPOOL OUT命令用以把文件的结果发送到系统打印机。
9) DESCRIBE :用于显示表和视图的结构,同义词,或指定函数和过程的详述。
10) Timing:可以看到语句执行的时间
11) 在各种数据类型中,只有NUMBER数据类型的默认显示是靠右对齐的,而CHAR, DATE和VARCHAR2是靠左对齐的