数据库学习总结-1

1.数据库介绍

关系型数据库:由数据,数据之间关系,数据约束组成的数据模型。方便数据的管理:通常是 存储,查询 统计。关系型数据库中数据是被存放与表中,以表格形式体现。目前使用SQL(结构化查询语言) 在关系型数据库中进行信息的查询,SQL 有以下几种:

①数据定义语言:DDL 用于建立、修改,删除数据库对象,包括CREATE 、 ALTER、 DROP 。 举例:

--创建学生表:包含 姓名 年龄 班级 性别 
CREATE TABLE STUDENTS ( NAME VARCHAR2(10 BYTE ), AGE NUMBER(2),CLASSNAME CHAR(4),GENDER CHAR(2))
--删除表 
DROP TABLE STUDENT 
--删除某一列 
ALTER TABLE STUDENT (AGE) 
-- 向表中添加一列 :ALTER TABLE STUDENT ADD ( AGE CHAR(2) )
--修改一列:ALTER TABLE STUDENT MODIFY (AGE CHAR(2) NOT NULL)
--修改表名字 : RENAME  STUDENT TO STUDENTS

②数据操作语言:DML   用于改变数据库数据,包括  插入数据 INSERT  、更新数据 UPDATE 、删除数据 DELETE 。 执行完后需要提交 COMMIT  才能在数据库中真正完成操作。 或者 回滚 ROLLBACK 取消操作。举例:

--向表中添加数据 
INSERT  INTO STUDENT ( NAME , AGE ,GENDER ) VALUES ( TOM ,18,F)  
COMMIT

③事物控制语言:TCL  控制数据库数据 数据操作语言 ,包括 提交 COMMIT  回滚 ROLLBACK  保存点 SAVEPOINT  可以设置保存点  退回到保存点   。举例:

--向表中添加数据 不提交 回滚 
INSERT  INTO STUDENT ( NAME , AGE ,GENDER ) VALUES ( JACK ,20,F)  
ROLLBACK  
--设置保存点
SAVEPOINT A 
--回到保存点
ROLLBACK A

④数据查询语言:TQL:  用于查询 SELECT  举例:

--查询全表数据
SELECT * FROM  STUDENT

⑤数据控制语言: DCL : 用于执行权限的 授予 和回收操作 、创建用户等 ,包括授予 GRENT 收回 REVOKE   创建用户 CREAT USER  。 语句自动提交 

定义数据表时常用数据类型 :

1。数字  number( P,S )  

其中 P 表示 数字总共 有多少位  ,S 表示 P中的小数是多少位 

数字相关 函数  ROUND (四舍五入)  ,TRUNC (截取) ,MOD (取余)  , CEIL (向上取整 ) ,FLOOR (向下取整)   

ROUND (55.234, 2)  取两位小数 四舍五入  结果 55.23   ROUND (35.789,1 )  取一位小数 结果 35.8  

TRUNC (33.674,2) 截取 使数据  剩余两位小数 结果 33.67  TRUNC (35.789, 1) 结果 35.7 

MOD(20, 3) 结果2   。 MOD(100,3) 结果 1 。   

CEIL (33.674) 结果 34   FLOOR( 33.674) 结果 33    

2. 日期 DATE    日期   占据 7个内存字节  第一字节 代表世纪   之后分别是 年月日 时分秒   显示 年月日 

timestamp 日期 包含 占据7个字节时候 包括  世纪年月日 时分秒   显示年月日时分秒  

                               占据 11个字节时候 包括 世纪 年月日 时分秒  毫秒 微秒 纳秒  

日期相关 函数 :

① 显示系统时间   SYSDATE  日期 年与日      SYSTIMESTAMP 精确到纳秒

SELECT SYSDATE FROM DUAL  
SELECT SYSTMIESTAMP FROM  DUAL

 ②  改变时间格式  TO_DATE( 需转化的字符串 ,目标格式 ,日期语言 )   , TO_CHAR ( 日期 , 日期格式 ,日期语言 ) 

--查询2012 年之后入职的员工 名字 
SELECT NAME FROM  EMP WHERE HIREDATE > TO_DATE('2012-1-1','YYYY-MM-DD') 
--将职员入职日期 以 固定格式输出 
SELECT NAME ,TO_CHAR(HIREDATE, 'YYYY-MM-DD') FROM EMP

③ 返回日期所在YUE的最后一天  LAST_DAY ( DATE)  

SELECT LAST_DAY(SYSDATE) FROM DUAL

ADD_MONTHS ( date,i) 在date 基础上增加   I个月份 

SELECT ADD_MONTHS(SYSDATE,3) FROM DUAL

⑤ 两个月份中间间隔多少月份   MONTHS_BENTWEEN(DATE1  ,DATE2 )  

SELECT MONTHS_BENTWEEN(HIREDATE, SYSDATE ) FROM EMP

⑥  返回日期列表中的最小值    LEAST ( DATE1, DATE2 ,DATE 3 ...)  

返回日期列表中的最DA值  GREATEST ( DATE1, DATE2 ,DATE 3 ...)  

返回date日期数据的下一个周几,周几是由参数char来决定的  NEXT_DAY( DATE , CHAR)。 

SELECT NEXT_DAY(SYSDATE, 4) next_wedn FROM DUAL

EXTRACT(date FROM datetime):从参数datetime中提取参数date指定的数据,比如提取年、月、日。 

SELECT EXTRACT(HOUR FROM TIMESTAMP '2008-10-10 10:10:10') FROM DUAL

3. 字符 VARCHAR ()   VARCHAR2()   CHAR  () LONG    CLOB 

 CHAR  ()固定字符 括号中填写  字节位数   最大2000字节   写多少就是多少空间 

VARCHAR2 (N) 可变字符 最大4000字节    N以下写多少都是占N个空间  

LONG 加长字符 ,最多 2G 字节 

CLOB  超长 字符  最多 4G 字节 

字符相关函数   

①连接 CONCAT  ,||  .         例 : 字符A || 字符 B    例: CONCAT(A ,B)

② 字符长度 LENGTH( 字符)  

③改变大小写 

UPPER(char)用于将字符转换为大写形式

LOWER(char)用于将字符转换为小写形式

INITCAP(char)用于将字符串中每个单词的首字符大写,其它字符小写,单词之间用空格和非字母字符分隔

④去除空白 

TRIM(c2 FROM c1) 表示从c1的前后截去c2

LTRIM(c1[, c2]) 表示从c1的左边(Left)截去c2

RTRIM(c1[, c2]) 表示从c1的右边(Right)截去c2

⑤ 补位 

LPAD(char1, n, char2) 左补位函数

RPAD(char1, n, char2) 右补位函数

⑥截取字符串 SUBSTR (字符串,number1 ,number2 ),从number1 位置截取到 number2 位置  假如 写一个就是截取到末尾 ,写大于字符串的也是 到末尾,数据库中字符串从1 开始计数 

用来返回在一个字符串中子串的位置   INSTR( CHAR1 ,CHAR2  )  

返回子串char2在源字符串char1中的位置, 从n的位置开始搜索,没有指定n,从第1个字符开始搜索, m用于指定子串的第m次出现次数,如果不指定取值1 ,如果在char1中没有找到子串char2 ,返回0.



你可能感兴趣的:(数据库,字符串,数字,函数,日期)