1.oracle 基本语法

1.数据库:存放数据的仓库;
2.常见的数据库:Access、Sql Sever、Oracle、DB2、Mysql(免费)
3.字段:表中的列;
   实体:表中的一行对于一个实体,或者叫做一条记录;
4.数据类型

     1.Varchar2 (length)----String:可变字符串,不会用空格填充至最大长度;

     2.Char(length)--------String: 定长字符串,当位数不足自动用空格填充来达到其最大长度;

      汉字:每个汉字占多少字节,要看具体的编码方式,如UTF-8(1-3字节)、
      GB2312(2字节)、GBK(2字节)、GB18030(1、2、4字节)

  3.Number(length,小数位数)-----Integer/Double/Float    :NUMBER( p,s ) p表示精度(总长度) s表示小数位置且四舍五入

  4.Date-------Date:日期类型 ;

  5.TIMESTAMP:日期类型

  6.BLOB:二进制(电子表格、字处理文档、图像文件等)

  7.CLOB:大文本数据(4G)
5.约束

   1.主键约束  primary key(字段)   非空+唯一

   2.唯一约束 unique(字段)

   3.非空约束 not null

   4.检查约束 check(约束)

   5.外键约束 

   constraint FK_外键字段_主键表 foreign key(外键列) references 主键表(主键)

6.建表语法

create table 表名(

列名   数据类型 字段名 约束,

列名   数据类型 字段名 约束

7.创建约束的的两种方式

    1.在创建表的时候创建约束(不推荐)

    2.创建表之后单独创建约束;(但是主键在创建表的时候创建一般)
8.增删改查的基本语法
  新增语法:
     insert into 表名 values('值1','值2',...);
     insert into 表名(列1,列2,...)values('值1','值2',...);
 修改的语法:
   update 表名 set 列=值 [where 条件];
删除的语法:
  delete from 表名 [where 条件];
查询的语法:
  select * from 表名 [where 条件]

删除表的语法:

    drop table  表名

在A和B之间(包含A和B):between...and...
为空:is null;
不为空:is not null;
不在...当中:not in
在...当中:in
排序:order by 列名 asc/desc(升序/降序)默认升序

模糊查询:列名 like '包含通配符的字符串';
9.通配符
   1._:一个字符;
   2.%:任意个字符;
   3.[-]:表示某一个范围;
   4[^]:表示不在某一个范围:
10.聚合函数(分组函数)
    max():最大值
     min():最小值
    avg():平均值
    sum():求和
   count:统计(统计有多少条数据)
11.group by 分组
  根据什么分组就只能显示什么,其他的所以信息都要通过聚合函数来查询;
  select 分组字段 聚合函数 from 表名
  where 分组前条件(没有使用聚合函数的条件)
  group by 分组字段
  having 分组后条件(使用集合函数的条件);
12.日期函数
--获取当前日期
select sysdate from dual;
--日期的运算
--1.10天后的日期
select sysdate+10 from dual;
13.转换函数
--trunc(日期)函数
select trunc(sysdate) from dual;---2018/10/15
select trunc(sysdate ,'dd') from dual; ---2018/10/15
select trunc(sysdate ,'yyyy') from dual;---2018-1-1
select trunc(sysdate ,'mm') from dual; ---2018-10-1
---to_char(日期,'日期部分')把日期或数字转换为字符串 
select to_char(sysdate,'yyyy-MM-dd HH24:mi:ss D DDD WW W') from dual;--2018-10-15 22:13:18 2 288 42 3
select to_char(sysdate,'yyyy-MM-dd HH24:mi:ss') from dual;--2018-10-15 22:13:18
select to_char(sysdate,'YYYY') FROM DUAL; --2018
--to_char('数字',frm)
select to_char(88.86,'$9999.99') from dual;

---to_date('字符串','日期部分')把字符串转换为数据库中得日期类型 
select to_date('2004-05-07 13:23:44','yyyy-mm-dd hh24:mi:ss') from dual

select to_date(to_char(sysdate,'yyyy-MM-dd'),'yyyy-MM-dd') from dual;
日期部分: 
   年:yyyy
   月:MM 
   日:dd 
   时:HH24/HH
   分: mi 
   秒:ss
   星期:D  星期日=1;星期一=2;...
   一年之中第几天:DDD
   一年之中第几周:WW
   一月之中第几周:W
14.字符串函数:
length();
substr(str,index);
replace(str,oldstr,newstr);
instr();--返回下标(从1开始)
select instr('abc','b')from dual;
concat();
select concat('b','cc') from dual;
Lower();upper();
select Lower('GSDS'),upper('aabc') from dual;

15.数学函数
ceil()向上取整;
floor()向下取整
round()四舍五入;
16.分析函数
over(order by 列名 asc/desc)
row_number()排序从1开始
rank()如果值相等,会排同名次,但会跳跃
dense_rank() 如果值相同,会排同名词,不会跳跃;
17.其他函数
nvl(列名,0)空值替换函数
nvl2(列名,非空值,空值)
decode()相当于 case when the end;

猜你喜欢

转载自blog.csdn.net/qq_29393273/article/details/83582368