• 【Oracle】表、视图、序列、索引


    表(数据类型、约束)、修改表结构

    表的创建:create table 表名(字段名 数据类型 [约束]);
    表的删除:drop table 表名;
    
    oracle表包括: 表名、字段、数据类型、[约束] 
    其中:
    (1)数据类型
    	①数字
    		number						默认长度为38,小数长度为0
    		number(n)					最大长度为n
    		number(n,m)				最大长度为n,其中小数部分长度为m
    		integer						相当于number(38)
    	②字符串		
    		char(n)					字符串长度固定为n,不足的用空白字符补充
    		varchar2(n)				字符串最大长度为n,长度为填入的字符串长度
    			注:char的数据管理效率高,但空白字符浪费空间,varchar2节省空间
    			例:名字 varchar2
    				手机号 char(11)  (因为不作运算和比较)
    				邮箱 varchar2
    	③日期
    		date 						精确到秒
    			例:insert into 表(日期属性) values(to_date(‘1999-8-9’, ‘yyyy-mm-dd’));
    
    (2)约束
    	①主键约束	primary key 
    		(非空、唯一)
    
    	②唯一约束	unique
    		(表明列值不重复,例如手机号)
    
    	③非空约束	not null
    		(表明列值不为空)
    
    	④检查约束	check(约束语法)
    		例如:	--- phone_num char(11) check(length(phone_num) = 11)
    				--- email varchar2(100) check(email like ‘%@%’)
    				--- sex char(2) check(sex in(‘男’, ‘女’))
    		
    	⑥外键约束(forienkey)		references 其他表名(字段名)
    		例如:  --- stu_class char(20) references classes(class_id),
    
    (3)修改表结构:
    ①编辑表的字段:
    语法:ALTER TABLE 表名 MODIFY(列名,数据类型);
       	eg1a:alter table skate_test modify (author number(10,0) )
    在修改列的长度时候,只能编辑比现有字段实际存的长度还要大
    eg2:alter table skate_test modify (author varchar2(10) )
    在修改列的数据类型的时候,所修改的列必须为空
    ②增加一个列:
    语法: ALTER TABLE 表名 ADD(列名,数据类型);
    eg1:ALTER TABLE skate_test ADD(author NUMBER(38,0) not null);
    ③改列名:
    语法:ALTER TABLE 表名 RENAME COLUMN 当前列名 TO 新列名;
    eg1:ALTER TABLE skate_test RENAME COLUMN author TO authorer_new
    ④删除一个列:
    语法:ALTER TABLE 表名 DROP COLUMN 列名;
    eg1:alter table skate_test drop column author
    ⑤改表名:
    语法:ALTER TABLE 当前表名 RENAME TO 新表名;
    eg1:alter table skate_test rename to test_sakte
    ⑥给表加注释:
    comment column on 表名.列名 is '注释内容';   //修改表的列的注释
    COMMENT ON TABLE MOVO_NEW.TEST_SAKTE  IS '注释内容';  //修改表的注释
    

    视图、序列、索引

    删除:drop  view/sequence/index  视图名/序列名/索引
    
    ① 视图:将查询结果作为视图,供查询使用,虚拟表
    	创建视图:create view 视图名 as select语句;
    	查看视图:select 列名 from 视图名;
    	优点:①简化SQL语句 ②安全性,可以实现对开发人员屏蔽原表名和字段名
    	注意:视图不会提高查询效率,本质是存储了select语句,基本不占用硬盘空间
    
    ② 序列:oracle提供的工具,产生一系列连续且不重复的值;
    	创建序列:create sequence 序列名 [start with 数字] // 不写start,默认从1开始;
        获取序列值:序列名.nextval
    	
    	例如:
    		create sequence seq_keyValue start whith 100001;
    		…
    		insert into employee(id, name) values(seq_keyValue.nextval, ‘xyz’);
    
    ③ 索引:
    	创建索引:create index 索引名 on 表名(字段名);
    	使用序列:不需要手动使用,默认会使用索引的字段条件查询,此时的数据会自动使用索引查找数据
    	特点:
    		①本身会占用磁盘空间
    		②对于增、删、改,会有维护,降低DML效率
    		⑤主键(primary key)和唯一(unique) 数据库会自动添加索引
    
  • 相关阅读:
    达叔系列——神经网络编程基础
    win10安装pytorch——前面有坑,快跳进去鸭
    Python基础(六)——面向对象编程
    Python基础(五)——闭包与lambda的结合
    Python基础(四)——迭代器/对象,生成器
    Mysql优化(出自官方文档)
    Mysql优化(出自官方文档)
    Scala语言笔记
    Scala语言笔记
    Scala语言笔记
  • 原文地址:https://www.cnblogs.com/jwnming/p/13634710.html
Copyright © 2020-2023  润新知