《oracle基本语法(增删改查)》由会员分享,可在线阅读,更多相关《oracle基本语法(增删改查)(7页珍藏版)》请在金锄头文库上搜索。
1、安装 PL/SQL Developer前提:必须安装 Oracle 的客户端卸载:-Command Window SQLPLUSSQL Window 用来开发 SQL 程序-数据库增删改 0%查 70%-创建表:create table 表名(列 1 类型,列 2 类型);字符类型char 定长字符串name char(10)保存一个值到 name abc -实际存储后的结果是 abc varchar2 变长字符串name varchar2(10)保存一个值到 name abc -实际存储后的结果是 abcclob 保存超大文本 4G-数字类型所有的数字(整数,浮点数)都是 number定义一
2、个工资的保存列sal number(5,2)-999.99 999.99年龄age number(2)-99 99-日期类型date 保存年月日,时分秒-二进制类型BLOB 最大不能超过 4G;-表结构的基本操作:0、查看表结构desc 表名 1、添加一个字段alter table 表名 add(列 类型);2、修改字段类型alter table 表名 modify(列 类型 );、删除一个字段alter table 表名 drop column 列名;4、修改表的名字rename student to stu5、删除表drop table 表名* 如果需要修改列的名字新增一个字段,然后迁移数
3、据,最后删除原字段或者使用图形化工具如果有值,这种删除,是没有办法恢复的。 。上述修改表结构相关的语句 叫做 DDL ,修改,是没有办法恢复的-插入数据create table test(id number,name varchar2(20),age number(2);1) insert into 表名 values(所有列的值);insert into test values(1,zhangsan,20);2)insert into 表名(列) values(对应的值);insert into test(id,name) values(2,lisi);insert into test(na
4、me,age) values(wangwu,20);-更新语句update 表 set 列= 新的值 where 条件 -更新满足条件的记录update test set name=zhangsan2 where name=zhangsanupdate 表 set 列= 新的值 - 更新所有的数据update test set age =20;-*删除数据:几种删除方式:1)delete from 表名 where 条件 删除满足条件的记录delete from test where id = 1;delete from test ; 删除所有commit; 提交数据rollback; 回滚数
5、据delete 方式可以恢复删除的数据,但是提交了,就没办法了delete 删除的时候,会记录日志 -删除会很慢很慢2)truncate table 表名删除所有数据 ,不会影响表结构,不会记录日志,数据不能恢复 -删除很快)drop table 表名删除所有数据,包括表结构一并删除,不会记录日志,数据不能恢复删除很快-如何查看一个 SQL 执行了多长时间?set timing on小技巧:如何快速的复制数据?1、 insert into test select * from test;2、 create table 表名 select * from test;-查询:基本查询,复杂查询1、导
6、入数据sqlplus 状态下:文件名基本查询select 列 from 表名select * from 表名 - 所有列-1、去除重复的显示select distinct 列 from 表名2、 算术运算,不能把 NULL 参与运算nvl(列,值) -如果列为空,则用“值” 替换 NULLnvl(comm,0) - 如果 comm 为空,返回 0每一个列都可以取别名、如何连接字符串 | -日期类型:to_date(字符串 1,字符串 2) 字符串 1 是日期的字符串 ,字符串 2 是格式 ,返回一个日期类型。to_date(1990-1-1,yyyy-mm-dd) 返回日期类型的 1990-1
7、-1to_date(1990-1-1 1:0:10,yyyy-mm-dd hh24:mi:ss) 返回日期类型的 1990-1-1 1:0:10SQL 的模糊查询:like :匹配字符 % :0 到多个字符 _ :表示单个字符如果涉及到 NULL判断 is NULL , is not null查询结果需要排序order by 字段select * from emp order by sal -order by 后面,默认升序asc 升序desc 降序-Oracle 的复杂查询,统计函数,分组sum, count ,avg, max, min-分组:studentname sex class s
8、corezhangsan 男 10 90李四 男 10 60zhang 女 10 86王五 女 20 90统计每个班的最高分max(score)10zhangsan 男 10 90 90李四 男 10 6020王五 女 20 90 90-统计每个班的男生和女生分别的最高分分组:class sexmax(score)10 男zhangsan 男 10 90 90李四 男 10 6010 女zhang 女 10 86 8620 女 王五 女 20 90 90统计函数不能跟在 where 条件后面-group by 和 having 子句group by 字段 按照指定的字段进行分组having 字句 - 对分组后的结果进行筛选输出-一般来说,group by 后面的字段,最好出现在 select 后面统计函数统计的是每一个分组的结果!-关键字出现的顺序select ? from . where . group by . having . order by .-笛卡尔积两个集合相乘的结果14* 4 =56有对的记录,有错的记录,必须加条件筛选正确的记录-