Oracle数据库概念和一些基本的SQL语句
1、数据
定义:描述事物的符号。例如:文本、音频、视频都是数据。
2、数据库
存放数据的仓库,存放在计算机中,按照一定格式存放,可以为用户共享。
3、数据库的发展阶段
1、网状数据库
2、层次数据库
3、关系数据库(目前主流数据库)
4、对象数据库
4、NOSQL数据库
4、Oracle数据库系统用户(管理员)
scott账户:测试账户,练习账户
登录方式:dos命令行---->sqlplus--->输入账户:scott--->输入密码---->(登录成功)
如果该账户被锁定,需要在sysdba超级账户解锁
sysdba账户:超级账户,拥有最高权限,Oracle默认的系统管理员。在该账户下把别的账户加锁或解锁。
登录方式:直接在dos命令行输入sqlplus / as sysdba(注意空格)即可
加锁:alter user 账户名 account lock;
解锁:alter user 账户名 account unlock;
查看当前账户:show user;
5、表名和列名命名规范和数据类型
1、必须以字母开头
2、只能包含字母、数字、_#$
3、不能使用保留字oracle
4、不能与用户定义的其他对象重名
数据类型见表
类型 |
含义 |
存储描述 |
备注 |
CHAR |
固定长度字符串 |
最大长度2000bytes |
|
VARCHAR2 |
可变长度的字符串, |
最大长度4000bytes |
可做索引的最大长度749 |
NCHAR |
根据字符集而定的固定长度字符串 |
最大长度2000bytes |
|
NVARCHAR2 |
根据字符集而定的可变长度字符串 |
最大长度4000bytes |
|
DATE |
日期(日-月-年) |
DD-MM-YY(HH-MI-SS),经过严格测试,无千虫问题 |
|
TIMESTAMP |
日期(日-月-年) |
DD-MM-YY(HH-MI-SS:FF3),经过严格测试,无千虫问题 |
与DATE相比较,TIMESTAMP有小数位秒信息 |
LONG |
超长字符串 |
最大长度2G,足够存储大部头著作 |
|
RAW |
固定长度的二进制数据 |
最大长度2000bytes |
可存放多媒体图象声音等 |
LONG RAW |
可变长度的二进制数据 |
最大长度2G |
可存放多媒体图象声音等 |
BLOB |
二进制数据 |
最大长度4G |
|
CLOB |
字符数据 |
最大长度4G |
|
NCLOB |
根据字符集而定的字符数据 |
最大长度4G |
|
BFILE |
存放在数据库外的二进制数据 |
最大长度4G |
|
ROWID |
数据表中记录的唯一行号 |
10bytes |
********.****.****格式,*为0或1 |
NROWID |
二进制数据表中记录的唯一行号 |
最大长度4000bytes |
|
NUMBER(P,S) |
数字类型 |
P为整数位,S为小数位 |
|
DECIMAL(P,S) |
数字类型 |
P为整数位,S为小数位 |
|
INTEGER |
整数类型 |
小的整数 |
|
FLOAT |
浮点数类型 |
NUMBER(38),双精度 |
|
REAL |
实数类型 |
NUMBER(63),精度更高 |
6、建表语法以及常见SQL语句
(1)、建表:create table 表名(列名 数据类型,列名 数据类型,...);
例:create table stus(stu_id number(10), stu_name varchar2(20));
(2)、查看表结构:desc 表明
例:desc stus;
(3)、添加新列:alter table 表名 add(列名 数据类型);
例:alter table stus add(stu_class varchar2(20));
(4)、删除列:alter table 表明 drop column 列名
例:alter table stua drop column stu_class;
(5)表改名字:alter table 旧表名 rename to 新表名
例:alter table stus rename to stu;
(6)、列改名字:alter table 表名 rename 旧列名 to 新列名;
例:alter table stu rename stu_id to stu_no;
(7)、修改列的数据类型:alter table 表名 modify(列名 数据类型);
例:alter table stu modify(stu_name number(20));
(8)、添加主键:
表建立完成以后,指定列为主键
前提是:没有null的数据&&没有重复的数据。
alter table 表名 add constraint(约束,限制) PK_表名_指定的列名 primary key(指定的主键那一列);
例:alter table stu add constrain PK_stu+stu_no primary key(stu_no);
也可以在创建表的时候就添加主键
create table stu(stu_id number(20) primary key not null);
(9)、删除表
方式1:drop table 表名 例:drop table stu(把整个彻底删除)
方式2:truncate table 表名 (删除表中的数据);
(10)、往表中添加数据:insert into 表名(列1,列2..) values(值1,值2....);
例: insert into stu(stu_id,stu_name) values(1,'张三');
Oracle数据库概念和一些基本的SQL语句的更多相关文章
- 《万能数据库查询分析器》实现使用SQL语句直接高效地访问文本文件
<万能数据库查询分析器>实现使用SQL语句直接高效地访问文本文件 马根峰 (广东联合电子服务股份有限公司, 广州 510300) 摘要 用SQL语句来直接访问文本文件?是在做梦吗? ...
- ORACLE中用rownum分页并排序的SQL语句
ORACLE中用rownum分页并排序的SQL语句 以前分页习惯用这样的SQL语句: select * from (selectt.*,rownum row_num frommytable t ord ...
- 如何在Oracle中一次执行多条sql语句 (.net C#)
关键是不能换行,要加上begin ...sql... end; 每个SQL用:隔开,end后面必须加: 以下是拷贝于:http://www.cnblogs.com/teamleader/arc ...
- 缓存策略 半自动化就是mybaitis只支持数据库查出的数据映射到pojo类上,而实体到数据库的映射需要自己编写sql语句实现,相较于hibernate这种完全自动化的框架我更喜欢mybatis
springboot入门(三)-- springboot集成mybatis及mybatis generator工具使用 - FoolFox - CSDN博客 https://blog.csdn.net ...
- 数据库MySQL经典面试题之SQL语句
数据库MySQL经典面试题之SQL语句 1.需要数据库表1.学生表Student(SID,Sname,Sage,Ssex) --SID 学生编号,Sname 学生姓名,Sage 出生年月,Ssex 学 ...
- 一次性删除数据库所有表和所有存储过程 SQL语句
一次性删除数据库所有表和所有存储过程 SQL语句 今天转移数据库数据,需要把数据库原来的表和存储过程清空.删除所有的表:如果由于外键约束删除table失败,则先删除所有约束: --/第1步****** ...
- Oracle数据库该如何着手优化一个SQL
这是个终极问题,因为优化本身的复杂性实在是难以总结的,很多时候优化的方法并不是用到了什么高深莫测的技术,而只是一个思想意识层面的差异,而这些都很可能连带导致性能表现上的巨大差异. 所以有时候我们应该先 ...
- oracle数据库、客户端安装以及ps/sql连接和导入表实例
从下面的网址下载http://www.oracle.com/technetwork/database/enterprise-edition/downloads/112010-win32soft-098 ...
- ORACLE 数据库的级联查询 一句sql搞定(部门多级)
在ORACLE 数据库中有一种方法可以实现级联查询 select * //要查询的字段 from table //具有子接点ID与父接点I ...
随机推荐
- C#集合之链表
LinkedList<T>是一个双向链表,其元素会指向它前面和后面的元素.这样,通过移动到下一个元素可以正向遍历链表,通过移动到前一个元素可以反向遍历链表. 链表在存储元素时,不仅要存储元 ...
- Cygwin Unable to get setup from *
Cygwin Unable to get setup from * 错误 解决方案 是因为用自定义镜像站点,比如 http://mirrors.xdlinux.info/cygwin/x86_64/ ...
- Java集合框架类
java集合框架类图 Collection接口(List.Set.Queue.Stack):
- JAVA CyclicBarrier类详解
一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point).在涉及一组固定大小的线程的程序中,这些线程必须不时地互相等待,此时CyclicBarrie ...
- gcc编译
一个C/C++文件要经过预处理.编译.汇编和连接等4步才能变成可执行文件: (1)以#开头的命令被统称为预处理,比如"#include",宏定义命令"#defin ...
- 【WPF】三维模型中的“照相机”
WPF 部分支持三维模型,为啥说是部分支持?毕竟 WPF 的侧重点还是在应用开发上,虽然也有些游戏是用 WPF 开发的,不过,老周想啊,如果真要开发游戏,最好用专门的框架,WPF 应当用于开发应用功能 ...
- Hadoop中Hbase的体系结构
HRegion 当一张表中的数据特别多的时候,HBase把表拆成多个块,每个块就是一个HRegion,每个region中包含这个表里的所有行 HRegionServer 数据库的数据存在HDFS文件系 ...
- 每天4亿行SQLite订单大数据测试(源码)
SQLite单表4亿订单,大数据测试 SQLite作为嵌入式数据库的翘楚,广受欢迎!新生命团队自2010年以来,投入大量精力对SQLite进行学习研究,成功应用于各系统非致命数据场合. SQLite极 ...
- Python教程(2.1)——控制台输入
这一节,我们来学习如何写一个简单的Python程序. 我们知道,很多编程语言一开始就是学习怎么输出"Hello, world",对吧?那么,现在我们来学习怎么用Python输出&q ...
- javaSE_05Java中方法(函数)与重载、递归-练习
1.使用的递归的方法求5! public class DiGui{ public static void main(String[] args){ //使用的递归的方法求5! System.out.p ...