期末复习page4

表的管理:

表的概念
image.png

char()存储定长字符串
varchar2()存储不定长字符串
number(a,b) a:总长度,b:小数点后面长度 存储数字

创建表(图形界面不做记录):

sqlplus sys/Oracle11 as sysdba;

alter user scott account unlock identified by tiger;

connect scott/tiger;

CREATE table xs1(
sno char(10),
sname char(8),
sage number(3)
);

desc xs1;  --查看表结构

CREATE table xs2(
sno char(10) PRIMARY KEY,  --设置主键
sname char(8),
sage number(3)
);

desc xs2;

CREATE table xs3(
sno char(10) CONSTRAINT PK_SNO PRIMARY KEY  --创建主键约束名字为PK_SNO的主键。
sname char(8),
sage number(3)
);

desc xs3;

SELECT CONSTRAINT_NAME,CONSTRAINT_TYPE,STATUS
FROM USER_CONSTRAINTS
WHERE TABLE_NAME='xs1';  --查看xs1表的所有约束。

SELECT CONSTRAINT_NAME,COLUMN_NAME
FROM USER_CONS_COLUMNS
WHERE TABLE_NAME='xs1';  --查看xs1表,列的约束

主键列不为空,主键值唯一。

表级约束,涉及多个列的约束。

CREATE TABLE sc(
sno char(10),
cno char(3),
grade number(3),
PRIMARY KEY(sno,cno)  --同时设置sno和cno为主键。
);

CREATE TABLE xs4(
sno char(10),
sname char(8),
sage number(3),
ssex char(2) default '男'  --默认值是男。
);

desc xs4;

CREATE TABLE xs5
as
SELECT *
FROM emp
WHERE SAL < 2500;
--利用子查询创建表

CREATE TABLE xs9
as
SELECT * 
FROM xs
WHERE  1=2;
--利用子查询,创建空表,因为1≠2,所以创建出的是空表。

为表添加注释:

COMMENT ON TABLE sc is '选修表';  --给表sc注释为选修表
COMMENT ON TABLE sc is '';  --删除sc表的注释。

SELECT *
FROM user_tab_comments
WHERE table_name='sc';  --查看sc表的注释。表名大小写一致。

COMMENT ON COLUMN  sc is '';  --删除列的注释。

RENAME SC1 TO SC2;  --把表名SC1改为SC2.

ALTER TABLE XS1 RENAME TO XS2;  --把表名XS1改为XS2.只有表的拥有者才能修改表名。

删除表:

DROP TABLE XS1; 
DROP TABLE XS1 CASCADE CONSTARINTS;   --当删除的表被其他表 参照时,删除参照此表的约束条件。

修改表:

ALTER TABLE xs1 add(sdept char(20),ssex char(2));  --添加列
ALTER TABLE xs1 add address char(20);
desc xs1;

ALTER TABLE XS1 DROP (sdept,ssex);  --删除列
ALTER TABLE XS1 DROP (sdept); 
ALTER TABLE XS1 DROP COLUMN  sdept;
 
ALTER TABLE  XS1 RENAME COLUMN sage TO NL;  --修改sage列名为NL。

ALTER TABLE xs1 MODIFY sname  varchar(20);  --把sname的类型改为varchar(20).

ALTER TABLE xs2 MODIFY (sname char(20),sage number(4));

当表没有数据或者数据为NULL时,才可以缩小表的值范围。改数据类型也是。
char和varchar2任意转换。
当列值为空时,才能加NOT NULL约束。
设定列的默认值时,只影响后插入的数据。

ALTER TABLE XS1 set unused column sname;  --设置sname列在表中不显示

ALTER TABLE XS1 drop unused columns;  --让它再正常显示

添加数据:

INSERT INTO XS1 VALUES('0001','张三',22);

INSERT INTO XS1(sno,sname,sage) VALUES('0002','lisi',21);

INSERT INTO XS SELECT * FROM XS5;  --查询xs5表的数据,插入xs表。

修改数据:

UPDATE XS SET  sage=sage+1;  --所有sage的值加1.

UPDATE XS SET  sage=22 WHERE sno='0001';  --将sno为0001的sage改为22

删除数据:

DELETE FROM XS WHERE sno='0001';  --删除sno为0001的数据

DELETE FROM XS;  --删除xs所有数据。

TRUNCATE TABLE XS;  -- 清空xs表
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 系统用户: 1.sys system(sys权限最高) 2.sysman(操作企业管理器) 密码是安装的时候输入的...
    3hours阅读 1,621评论 0 0
  • 一、什么是数据库:(数据库软件) 1).什么是"数据库": 从字面上理解就是一个"存储数据的仓库",它本身是一个软...
    七点的太阳丶夕阳阅读 608评论 0 2
  • SQL SELECT 语句 一、查询SQL SELECT 语法 (1)SELECT 列名称 FROM 表名称 (2...
    有钱且幸福阅读 5,791评论 0 33
  • 今天是摩西思维导图精进班第十四天。 作业是看图猜成语,应该算是比较简单的思维导图作业,这也是锻炼自己形象思维能力的...
    lilycat阅读 207评论 0 0
  • 1、李笑来: 从平庸走向卓越最佳的策略是“多维竞争” 贪念:想获得本不是自己的(赌博)、 诱惑:不是长期看似有价值...
    一只永不止步的龙阅读 50评论 0 0