日期:2014-05-16  浏览次数:20573 次

数据库sql一些常考基础命令
[此贴原创,欢迎转载,但不能用于商业用途。联系邮箱:fujia0@126.com]


现在IT技术笔试题中90%多会涉及数据库,因此掌握基本的数据库语法,并能熟练使用,对于面试,甚至将来的工作都会有巨大作用。
1)增删改查
这是考的最多,平时使用最多的sql语句,也是最复杂的,我所说的复杂,是指那些需要很多嵌套或者连结等才能得到结果的语句。
增加数据:
insert into table(a1,a2,a3,a4) values(b1,b2,b3,b4);
删除数据:
delete from table where ...
修改数据:
update table a1=x where...
查找数据:
select * from table where ....
查找是数据库学习的核心,也是难点,有很复杂的语句都是查找语句,比如like语句,group by语句,top语句等等。


2)操作数据库
添加数据库:
create database dbname;
删除数据库:
drop database daname;


3)表的操作
create table tbname (a1 type,a2 type...[not null][primary key]);
create table newtabel as select * from oldtalbe where..//新旧表字段个数一致。
drop table tbname;
alter table tbname add colume col type;
select *from table1 into table2;
truncate table tablename;
以及索引,视图,序列等。


4)权限赋予语句
grant <privilege list> on <ralation name or view name> to <user/role list>
revoke <privilege list> on <relation name or view name> from <user/role list>


5)数据库备份(oracle命令行)
将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中
  exp system/manager@TEST file=d:\daochu.dmp full=y


将数据库中system用户与sys用户的表导出


  exp system/manager@TEST file=d:\daochu.dmp owner=(system,sys)
将数据库中的表inner_notify、notify_staff_relat导出
  exp aichannel/aichannel@TESTDB2 file= d:\data\newsmgnt.dmp tables=(inner_notify,notify_staff_relat)
将数据库中的表table1中的字段filed1以"00"打头的数据导出
  exp system/manager@TEST file=d:\daochu.dmp tables=(table1) query=\" where filed1 like '00%'\" 上面是常用的导出,对于压缩,既用winzip把dmp文件可以很好的压缩。
 也可以在上面命令后面 加上 compress=y 来实现。


数据的导入:
将D:\daochu.dmp 中的数据导入 TEST数据库中。
  imp system/manager@TEST  file=d:\daochu.dmp
  imp aichannel/aichannel@HUST full=y  file=file= d:\data\newsmgnt.dmp ignore=y
上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。在后面加上 ignore=y 就可以了。


将d:\daochu.dmp中的表table1 导入
  imp system/manager@TEST  file=d:\daochu.dmp  tables=(table1)
 基本上上面的导入导出够用了。不少情况要先是将表彻底删除,然后导入。 


其实,数据库的操作远不止这些,还有很多需要我们去探索,这里只是抛砖引玉,更多经典需要我们去不断积累摸索。