SQL基础
Oracle中常用的数据类型
1.字符型
数据类型 | 取值范围(字节) | 说明 |
varchar2 | 0-4000 | 可变长度的字符串 |
nvarchar2 | 0-1000 | 用来存储Unicode字符集的变长字符型数据 |
char | 0-2000 | 用来描述定长的字符型数据 |
nchar | 0-1000 | 用来存储Unicode字符集的定长字符型数据 |
long | 0-2GB | 用来存储变长的字符串 |
2.数字型
数据类型 | 取值范围 | 说明 |
number(p,s) | p最大精度是38位(十进制) | p代表的是精度,s代表的是保留的小数位数,可以用来存储定长的整数和小数 |
float | 用来存储126位数据(二进制) | 存储的精度是按二进制计算的,精度范围为二进制的1-126,在转化为十进制时需要乘以0.20103 |
3.日期类型
数据类型 | 说明 |
date | 用来存储日期和时间,范围在公元前4712年1月1日到公园999年12月31日 |
timestamp | 用来存储日期和时间没和date类型的区别就是在显示日期和时间需要更精确,date类型的时间精确到秒,而timestamp的数据类型可以精确到小数秒。能够显示上午和下午 |
4.其他数据类型
数据类型 | 取值范围(字节) | 说明 |
blob | 最多可以存放4gb | 存储二进制数据 |
clob | 最多可以存放4GB | 存储字符串数据 |
bfile | 大小与操作系统有关 | 用来把非结构化的二进制数据存储在数据库以外的操作系统文件中 |
SQL-数据库沟通的语言标准
SQL(结构化查询语言)是每一个数据库都通用的访问数据库的语言,主要功能就是在各种数据库之间建立联系,进行沟通。使用SQL语言可以在数据库中创建表、检索数据、操作系统,并对权限进行控制。
几乎所有的数据库都支持SQL语言,但是这些数据库各自又对SQL语言进行了改进,如SQL Server数据库使用Transact-SQL语言,而Oracle使用的是PL/SQL语言。
SQL语言可以分为四类:
数据定义语言(DDL):定义要在数据库存储哪些信息的数据定义语言。主要包括数据库对象的创建、删除和修改的操作。
1.使用create创建表
2.使用Alter语句修改表
alter table table_name add column_name|modify column_name|drop column column_name;
add:增加
modify:修改
drop column:删除表中的列,在删除表中的列时经常要加上cascade constraints,删除约束。
3.使用Drop语句删除表
数据操纵语言(DML):对数据库中的表进行操作的数据操纵语言。是对数据库中的数据使用的语言。如增删改查。
1.增加数据用Insert
insert into table_name(column_name1,column_name2...) values(data1,data2...);
又分为直接添加数据:
通过其他数据表向表中添加数据
如果在数据库中需要新创建一个数据表,但是这个表中的数据又与其他表中的数据有些相似,那么就可以直接把其他表中的数据添加到新创建的数据表中。
insert into table_name1(column_name1,column_name2...) select column_name1,column_name2...from table_name2;
一定要确保两个表的猎德个数和列的数据类型都一致。
如果想不创建表就直接通过源数据表在添加数据的同时创建表也是可以实现的
create table table_name as select column_name1,column_name2...from source_table;
2.修改数据用update
修改表中指定字段的全部值,不带where子句的语句完成。
update table_name set column_name1=data1;
根据条件修改表中执行字段的值。
update table_name set column_name1=data1,column_name2=data2..[where condition];
3.删除数据用delete
根据条件删除表中的记录
delete from table_name [where condition];
删除表中的全部记录
delete from table_name;
5.truncate
无条件删除全部记录。
6.merge 可以同时对数据表进行增加和修改的操作
merge [into] table_name1 using table_name2 on (condition) when matched then merge_update_clause when not matched then merge_insert_clause;
table1是要修改或添加的表,table2是参照表,condition是条件,如果成立执行更新操作,不匹配执行增加操作。
增加和修改操作可以省略其中之一。
数据查询语言(DQL):对数据库中的表进行检索的数据查询语言。
4.查询数据用select
以后再说
数据控制语言(DCL):对数据库中对象进行权限管理的数据控制语言。
主要是授予权限使用的grant和收回权限的revoke。