现在IT技术笔试题中90%多会涉及数据库,因此掌握基本的数据库语法,并能熟练使用,对于面试,甚至将来的工作都会有巨大作用。
这是考的最多,平时使用最多的sql语句,也是最复杂的,我所说的复杂,是指那些需要很多嵌套或者连结等才能得到结果的语句。
增加数据:
insert into table(a1,a2,a3,a4) values(b1,b2,b3,b4);
insert into table set a1=b1;
删除数据:delete from table where ...
修改数据:
update table a1=b1 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>
example: grant select on view to `root`;
revoke <privilege list> on <relation name or view name> from <user/role list>example: revoke select on view from `root`;
5)数据库备份(oracle命令行)
导出:
将数据库TEST完全导出,用户名system 密码passwd 导出到D:\daochu.dmp中
exp system/passwd@TEST file=d:\daochu.dmp full=y(所有数据,不加只导出连接数据库的用户数据对象)
将数据库中system用户与sys用户的表导出
exp system/passwd@TEST file=d:\daochu.dmp owner=(system,sys)
exp system/passwd@TESTDB2 file= d:\data\newsmgnt.dmp tables=(testA,testB)
将数据库中的表table1中的字段filed1以"A"打头的数据导出
exp system/passwd@TEST file=d:\daochu.dmp tables=(table1) query=\" where filed1 like 'A%'\"
导入:
imp system/passwd@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)
6)数据库备份(mysql)
导出:
格式:mysqldump -h主机名 -P端口 -u用户名 -p –database 数据库名 > 文件名.sql (-p 后面不需要加密码,这个命令输入后,会提示我们输入密码)
导入:
格式:mysql -h主机名 -P端口 -u用户名 -p –database 数据库名 < 文件名.sql (-p 后面不需要加密码,这个命令输入后,会提示我们输入密码)
use database; source 文件名.sql