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 ...
随机推荐
- 简单五子棋,没有电脑AI
刚学了C#委托,做了个五子棋练习,把前台绘制和后台逻辑分开,前台绘制方法用委托传给后台逻辑. 界面好简单... 先看类图 控制类控制整个游戏的逻辑,包括调用棋盘类的属性初始化棋盘.初始化两个棋手.轮流 ...
- 学习笔记:JavaScript-入门篇
1.对话框,输出框,警告框 1. document.write() 可用于直接向 HTML 输出流写内容.简单的说就是直接在网页中输出内容. 2.alert(字符串或变量); 3.conf ...
- python 简单验证码 random模块
random 模块,产生随机数: chr 将数字转成字母. ascii 数字与字符对应表 链接 import randomtemp=""for i in range(0,4): r ...
- Java中的Object、T(泛型)、?区别
因为最近重新看了泛型,又看了些反射,导致我对Object.T(以下代指泛型).?产生了疑惑. 我们先来试着理解一下Object类,学习Java的应该都知道Object是所有类的父类,注意:那么这就意味 ...
- 【CSS入门基础,有需要的看过来哦】心境,心静,不轻言放弃!---致CSS
整理一下近一周学习的有关CSS的基础知识笔记: CSS语法必须写在<style>标签中哦~/*注释*/ [CSS常用背景属性]background background-color:背景色 ...
- motor和servo
程序简单易读,不再做注释 motor.py from gpiozero import Motor from gpiozero import LED led = LED(2) motor = Motor ...
- reshape: from long to wide format(转)
This is to continue on the topic of using the melt/cast functions in reshape to convert between long ...
- cpp命名空间
1.namespace:c++里面的所有标识符都被定义到名为std的namespace中,命名空间就是标识符的各种可见范围,控制其作用域. 2.std为c++标准命名空间,c++标准库里的标识符都定义 ...
- D. 实验室传染病
D. 实验室传染病 题意 给出 n 个人的位置,以及每个人的传染范围,当一个人患病时,他的传染范围内(包括边界上)的人全部会被感染并继续向外传播. 求以每个人为传染源最多有多少人被感染. 分析 首先二 ...
- 表单的get和post使用情景
GET和POST两种方法都是将数据送到服务器,但你该用哪一种呢? HTTP标准包含这两种方法是为了达到不同的目的.POST用于创建资源,资源的内容会被编入HTTP请示的内容中.例如,处理订货表单.在数 ...