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;