oracle——学习之路(SQL基础)
使用create语句创建表
create table 表名
(
列名 类型 【null | not null】,
列名 类型 【null | not null】
)
在一个数据库中表名不允许重复,在同一张表中列名不允许重复,【null | not null】表示该列允许为空或非空,默认的情况下是非空的
举个栗子:
create table two
(
id number primary key,
nname varchar2(10) not null,
age number
)
create table productinfo
(
productid varchar2(10),
productname varchar2(20),
productprice number(8,2),
quantity number(10),
category varchar2(10),
desperation varchar2(1000),
origin varchar2(10)
)
使用Alter语句修改表
alter table 表名
add 列名| modify 列名|drop column 列名
modify 是修改一个已经存在的列名
举几个栗子:
alter table two
add sex char(3);
alter table two
modify nname varchar2(20);
alter table two
drop column sex;
drop table two; 删除表
约束:
主键约束:每个数据表中只有一个主键约束,但是一个主键约束可以由数据表中多个列组成,关键字:primary key
create table two
(
id number primary key,
nname varchar2(10) not null,
age number
)
create table two
(
id number,
nname varchar2(10) not null,
age number,
primary key(id)
)
两种写法都可以
当然也可以用alter语句添加主键约束
alter table two
add constraint pk_name primary key(id); ps:pk_name是约束名
移除约束
alter table two
drop constraint pk_name;
外键约束:可以保证使用外键约束的数据库列与引用的主键约束的数据列一致,外键约束在一个数据表中可以有多个
外键约束要在创建表的语句后面加上如下语句:
alter table 表名
constraint ppk_name foreign key(nname) references 表名(表中的列) on delete cascade ps:on delete cascade 保证主键对应字段被删除时,外键对应字段也被删除
修改表结构时添加外键约束:
add constraint ppk_name foreign key(nname) references 表名(表中的列) on delete cascade
移除外键约束与一处主键约束同样
check约束:检查约束,规定每一个列能够输入的值,以保证数据的正确性
创建check约束可以在创建表的语句后面加上如下操作:
constraint constraint_name check(condition)
修改表结构时添加check约束
alter table 表名
add constraint constraint_name check(condition)
移除check约束:
alter table 表名
drop constraint constraint_name;
unique约束:唯一约束,这个设置在表中输入大的字段值都是唯一的,和主键约束非常相似,不同的是,unique约束在一张表中可以有多个
在创建表的语句后面加上如下语句即可以创建unique约束:
constraint constraint_name unique(列名)
在修改表结构时添加unique约束:
alter table 表名
add constraint constraint_name unique(列名)
移除unique约束:
同上
not null约束:非空约束,子啊创建表时添加非空约束,确保字段一定有输入值
创建not null 约束直接在字段后面直接写not null即可
修改表结构时添加not null约束:
alter table 表名
modify 列名 not null;
添加数据insert:
insert into 表名(列名1,列名2,……) values(值1,值2,……);
insert into 表名 values(值1,值2,……);
两种方法都可以,列名与值要一一对应,如果没有指明列名,那么表中有多少列都要按顺序添加顺序,没有非空约束的列可以用null值添加
也可以通过其它表来添加数据,不过要注意两张表列个数,数据类型要一致,否则会出现错误
insert into 表名(列名1,列名2,……) select 值1,值2,…… from 表2;
另一种创建表的方式:
create table 表名 as select 列名1,列名2,…… from 表2;
update修改数据:
update 表名 set 列名=新值,…… where 条件;
delete删除数据:
delete from 表名 where 条件 切记不加条件就是删除全部数据,这是个灾难!
其他数据操纵语句:
truncate table 表名 无条件删除表中全部记录,比delete更快一点
oracle——学习之路(SQL基础)的更多相关文章
- Oracle学习笔记三 SQL命令
SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)
- python学习之路-day2-pyth基础2
一. 模块初识 Python的强大之处在于他有非常丰富和强大的标准库和第三方库,第三方库存放位置:site-packages sys模块简介 导入模块 import sys 3 sys模 ...
- Python学习之路-Day2-Python基础2
Python学习之路第二天 学习内容: 1.模块初识 2.pyc是什么 3.python数据类型 4.数据运算 5.bytes/str之别 6.列表 7.元组 8.字典 9.字符串常用操作 1.模块初 ...
- Python学习之路-Day1-Python基础
学习python的过程: 在茫茫的编程语言中我选择了python,因为感觉python很强大,能用到很多领域.我自己也学过一些编程语言,比如:C,java,php,html,css等.但是我感觉自己都 ...
- Python学习之路-Day2-Python基础3
Python学习之路第三天 学习内容: 1.文件操作 2.字符转编码操作 3.函数介绍 4.递归 5.函数式编程 1.文件操作 打印到屏幕 最简单的输出方法是用print语句,你可以给它传递零个或多个 ...
- 学习笔记:oracle学习三:SQL语言基础之sql语言简介、用户模式
目录 1.sql语言简介 1.1 sql语言特点 1.2 sql语言分类 1.3 sql语言的编写规则 2.用户模式 2.1 模式与模式对象 2.2 实例模式scott 本系列是作为学习笔记,用于记录 ...
- oracle学习之路(四) ---------PL/SQL 表,二维数组(TABLE)
LOB类型 ORACLE提供了LOB (Large OBject)类型.用于存储大的数据对象的类型.ORACLE眼下主要支持BFILE, BLOB, CLOB 及 NCLOB 类型. NCLOB 存储 ...
- 学习笔记:oracle学习三:SQL语言基础之检索数据:简单查询、筛选查询
目录 1. 检索数据 1.1 简单查询 1.1.1 检索所有列 1.1.2 检索指定的列 1.1.3 查询日期列 1.1.4 带有表达式的select语句 1.1.5 为列指定别名 1.1.6 显示不 ...
- Oracle数据库之PL/SQL基础
介绍PL/SQL之前,先介绍一个图像化工具:Oracle SQL Developer 在oracle的开发过程中, 我们难免会使用第三方开发的软件来辅助我们书写SQL, pl/sql是一个不错的sql ...
随机推荐
- HGOI 20191108 题解
Problem A 新婚快乐 一条路,被$n$个红绿灯划分成$n+1$段,从前到后一次给出每一段的长度$l_i$,每走$1$的长度需要$1$分钟. 一开始所有红绿灯都是绿色的,$g$分钟后所有红绿灯变 ...
- trie树(字典树)的部分简单实现
什么是trie树(字典树)? trie树是一种用于快速检索的多叉树结构.和二叉查找树不同,在trie树中,每个结点上并非存储一个元素. trie树把要查找的关键词看作一个字符序列.并根据构成关键词字符 ...
- 理解urllib、urllib2及requests区别及运用
urllib and urllib2 区别 –博主提示:下面的是python2中的用法,python3需要做出相应修改. urllib和urllib2模块都做与请求URL相关的操作,但他们提供不同的功 ...
- 19.顺时针打印矩阵 Java
题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数 ...
- 【转载】Python tips: 什么是*args和**kwargs?
转自Python tips: 什么是*args和**kwargs? 先来看个例子: def foo(*args, **kwargs): print 'args = ', args print 'kwa ...
- PHP遍历目录下的文件夹和文件 以及遍历文件下内容
1.遍历目录下的文件夹和文件: public function bianli1($dir) { $files = array(); if($head = opendir($dir)) { while( ...
- cucumber+testng
执行顺序 beforeSuite in RunnerForInt beforeSuite in RunnerForString beforeTest in RunnerForInt beforeTes ...
- 8and9 pod控制器
Pod控制器: 自主定义的pod资源删除后不会被重启,被Pod控制器管理的pod资源被删除后会重启. pod控制器的种类: ReplicationController: (最早使用,现在已经被废弃,太 ...
- Kettle源码学习(一)——把Kettle项目跑起来
kettle(pentaho data integration),是一款开源的C/S版的ETL工具,最近打算学习一下kettle源码,并自己写一个mini kettle,并改造成基于事件触发的流处理模 ...
- 自己的框架引入smarty的问题
这段时间自己学着写PHP的MVC框架,想把Smarty 作为view类加载, 可是自动加载它的时候就出错. 无论改文件名,还是改变路径,都无法解决问题, 我搜索一下相关问题,发现是自动加载Smarty ...