ORACLE学习之约束

oracle卸载:oracle安装路径\app\huyingzhao\product\11.2.0\dbhome_1\deinstall\deinstall.bat

使用cmd命令语句(scortt(oracle创始人之一)用户默认密码 tiger):

1.使用system用户登入:[已登入用户需要加connect] [username/password] [@server] [as sysdba|sysoper]

2.查看登入用户 :

a.show user命令

b.用dba_user数据字典:descrip可以简写为desc,本地的数据字典是dba_users,语句是:[desc dataname]

3.启动用户语句:alert user username account unlock

数据字典:数据的数据项、数据结构、数据流、数据存储、处理逻辑、外部实体等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明.

dba-tablespaces,user_tablespaces数据字典

dba_users,user_users数据字典

表空间

一.数据库与表空间

*表空间分类:

1.永久表空间

2.临时表空间

3.undo表空间

二.表空间和数据文件

*查看用户的表空间:select tablespace_name from dba_tablespaces ;

1 SYSTEM 存放sys信息

2 SYSAUX example的辅助表空间

3 UNDOTBS1 存放undo表空间

4 TEMP 存放临时表空间

5 USERS 存储数据库创建的对象

6 EXAMPLE 安装oracle示例

*设置用户的默认和临时表空间

ALTER USER username DEFAULT|TEMPORARY TABLESPACE tablespace_name

*创建表空间(增)

CREATE[TEMPORARY]TABLESPACE tablespace_name TEMPFILE|DATAFILE ‘xx.dbf’ SIZE xx

*修改表空间(改)

修改表空间状态

设置联机或脱机状态

ALTER TABLESPACE tablespace_name ONLINE|OFFLINE

设置只读或可读写状态(必须联机状态)

ALTER TABLESPACE tablespace_name READ ONLY|READ WRITE

修改数据文件

增加数据文件

ALTER TABLESPACE tablespace_name ADD DATAFILE ‘xx.dbf’ SIZE xx

删除数据文件

ALTER TABLESPACE tablespace_name DROP DATAFILE ‘xx.dbf’ SIZE xx

*删除表空间(删)

DROP TABLESPACE tablespace_name [INCLUDING CONTENTS]

基存储单元

二维结构

行和列

*约定:

1.每一列数据必须具有相同的数据类型

2.列名唯一

3.每一行数据的唯一性

*数据类型:

a.字符型

CHAR(n):n最大值2000,NCHAR(n):n最大值1000

VARCHAR2(n):可变长度,n最大值4000,NVARCHAR2(n):n最大值2000

b.数值型

NUMBER(p,s)p有效数字,s小数点位数

FLOAT(n)

c.日期型

DATE:公元前4712年1月1日到公元9999年12月31日

TIMESTAMP:精确日期到秒

d.其他类型

BLOB:4g的数据

CLOB:4g的数据,字符串的形式

*创建表

CREATE TABLE table_name(

column_name datatype,…

)

*修改表

添加字段;

ALTER TABLE table_name

ADD column_name datatype;

更改字段的数据类型:

ALTER TABLE table_name

MODIFY column_name datatype;

删除字段:

ALTER TABLE table_name

DROP COLUMN column_name;

修改字段名:

ALTER TABLE table_name

RENAME COLUMN column_name TO new_column_name;

修改表名:

RENAME TABLE table_name TO new_table_name;

*删除表

TRUNCATE TABLE table_name;(截断表,删除表数据比delete效率高)

DROP TABLE table_name;

*添加数据

插入指定:

INSERT INTO TABLE TABLE_NAME

(COLUMN1, COLUMN2, .. .)

VALUES

(VALUE1, VALUE2, .. .)

插入所有:

INSERT INTO TABLE TABLE_NAME VALUES (VALUE1, VALUE2, .. .)

*添加默认值:

在创建表时添加,字段改为:

REGDATE column_name DEFAULT default_name

创建表以后,字段改为:

ALTER TABLE table_name

MODIFY column_name DEFAULT default_name;

  • 复制数据

在创建表时添加

CREATE TABLE table_new AS SELECT column1,…| * FROM table_old ;

在添加时复制

INSERT INTO table_new [(column1,…)] SELECT column1,…| * FROM table_old ;

*修改数据

UPDATE table_name SET column1=value1,…[WHERE conditions] ;

*删除数据

DELETE FROM table_name[where conditions]

约束

定义规则

确保数据完整性

*非空约束

在创建表时设置非空约束

CREATE TABLE table_name(

column_name datatype NOT NULL,…

);

在修改表时添加非空约束

ALTER TABLE table_name

MODIFY column_name datatype NOT NULL;

3.在修改表时去除非空约束

ALTER TABLE table_name

MODIFY column_name datatype NULL;

*主键约束

一张表只能设计一个主键约束

主键约束可以由多个字段构成(联合主键或复合主键)

1.在创建表时设置主键约束

CREATE TABLE table_name(

column_name datatype PRIMARY KEY,…

);

CONSTRAINT constraint_name PRIMARY KEY(column_name1,…)

2.在修改表时添加主键约束

ADD CONSTRAINT constraint_name PRIMARY KEY(column_name1,…)

3.更改约束的名称:

RENAME CONSTRAINT old_name TO new_name;

4.删除主键约束(禁用)

DISABLE|ENABLE CONSTRAINT constraint_name;

DROP CONSTRAINT constraint_name;(删除)

DROP PRIMARY KEY[CASCADE]; (删除)

*外键约束

1.在创建表时设置外键约束

CREATE TABLE table_name (column1_name TYPE REFERENCES table2_name(column_name),…..);

CREATE TABLE table1_name (REFERENCES table_name(column_name) ON DELETE CASCADE);

2.在修改表时添加外键约束

ALTER TABLE table_name

ADD CONSTRAINT constraint_name FOREIGN KEY(column1_name) REFERENCES table_name(column_name) ON DELETE CASCADE;

3.删除外键约束(禁用)

ALTER TABLE table_name

DISABLE|ENABLE CONSTRAINT key_name ;

DROP CONSTRAINT constraint_name;

*唯一约束

1.在创建表时设置唯一约束

CREATE TABLE table_name (colum_name datatype UNIQUE,…);

CONSTRAINT constraint_name UNIQUE(column_name);

2.在修改表时添加唯一约束

ADD CONSTRAINT constraint_name UNIQUE(column_name1,…) ;

3.删除唯一约束

DISABLE|ENABLE CONSTRAINT constraint_name;

DROP CONSTRAINT constraint_name;

*检查约束

1.在创建表时设置检查约束

CREATE TABLE table_name (colum_name datatype CHECK(expressions),…);

CONSTRAINT constraint_name CHECK(expressions);

  2.在修改表时添加检查约束

ADD CONSTRAINT constraint_name CHECK(expressions) ;

3.删除检查约束

DISABLE|ENABLE CONSTRAINT constraint_name;

DROP CONSTRAINT constraint_name;

查询

*基本查询语句

SELECT[DISTINCT] column_name1,…* FROM table_name [WHERE conditions];

*在sql*plus中设置格式

COLUMN column_name HEADING new_name;

COLUMN column_name FORMATE dataformat;

COLUMN column_name CLEAR;

*查询所有字段

SELECT * FROM table_name;

*给字段设置别名

SELECT column_name AS new_name,… FROM table_name;

*运算符和表达式

算术运算符(+,-,*,/)

比较运算符(>,>=,<,<=,=,<>)

逻辑运算符(and,or,not)

*模糊查询

通配符的使用(_,%);

使用LIKE查询

*范围查询

BWTWEEN..AND

对查询结果排序

SELECT … FROM …[WHERE]ORDER BY column1 DESC/ASC,…;

*CASE …WHEN语句

CASE column_name WHEN value1 THEN result1,…

[ELSE RESULT] END;

*decode函数使用

decode(column_name,value1,result1,…defaultvalue);

猜你喜欢

转载自blog.csdn.net/HuYingZuo/article/details/80547583