• Oracle学习笔记(三)


    五、操作表

    1、表分为行和列
    约定:每行数据唯一性,每列数据同类性,每列列名唯一性。
    2、数据类型
    字符型 -- 固定长度的字符类型
    字符类型:CHAR(n)(MAX n=2000)、NCHAR(MAX n=1000)
    -- 可变长度的数据类型(节省空间随着数据的大小生成相应的数据)
    VARCHAR2(MAX n=4000)、NVARCHAR2(MAX n=2000)
    数值型(通常使用number类型):NUMBER(p,s):
    p--有效数字,
    s--小数点后的位数
    如果s为正数,代表从小数点到最低有效数字的位数;
    如果s为负数,代表从最大有效数字到小数点的位数(数值型通常采用NUMBER类型)
    例子
    number(5,2) 有效数字5位,保留2位小数,如:123.12
    FLOAT :用于存储二进制类型1~126位
    日期型
    DATE 日期类型,表示范围为公元前4712年1月1日到公元9999年12月31日,可精确到秒(日期型通常采用DATE型)
    TIMESTAMP 时间戳类型,可以精确到秒
    其他型
    BLOB 可以存放4GB的大文件,以二进制形式存放
    CLOB 可以存放4GB的大文件,字符串存放的

    3、管理表的操作
    创建表:创建用户信息表
    例子:
    create table userinfo(
    user_a_id number(6,0),
    user_username varchar2(20),
    user_pwd varchar2(20),
    user_email varchar2(30),
    user_regdate date
    );
    修改表:修改结构
    1、添加字段
    例子:
    alter table userinfo add user_remarks varchar2(500);

    2、更改字段数据类型(最好是表中没有数据的时候进行更改)
    更改原有的数据
    alter table userinfo modify user_remarks varchar2(400);
    更改数据的类型
    alter table userinfo modify user_pwd number(6,0);
    3、删除字段
    alter table userinfo drop column a;
    4、修改字段名
    alter table userinfo rename column user_username to user_a_username;
    5、修改表名
    rename userinfo to user_info;
    删除表
    删除表中的数据,不是删除表,但是速度快
    truncate table table_name;
    truncate table user_info;
    删除表的结构,真实被删除了
    drop table user_info;

    查看表
    desc table_name;
    desc userinfo;

    4、操作表中的数据
    对表的内容进行操作

    1、添加数据
    insert into userinfo(user_a_id,user_username,user_pwd,user_email,user_regdate) values(1,'xiaobaitu','123456','xiaobaitu@163.com',sysdate);
    全添加,可以省略userinfo后边的()
    insert into userinfo values(1,'xiaobaitu','123456','xiaobaitu@163.com',sysdate);
    不添加全部数据
    insert into userinfo(user_a_id,user_username,user_regdate) values(1,'xiaobaitu',sysdate);

    为字段添加默认值
    创建表时,创建默认值
    create table userinfo_a(
    userinfo_a_id number(6,0),
    userinfo_regdate date default sysdate
    );

    添加数据
    insert into userinfo_a(userinfo_a_id) values(1);

    修改表时,添加默认值
    alter table userinfo modify user_email default '无';
    如果没有添加,email为默认值:
    insert into userinfo(user_a_id) values(3);

    select user_a_id ,user_email from userinfo;
    如果添加了,就会返回添加的值
    insert into userinfo(user_a_id,user_email) values(4,'aa');
    select user_a_id ,user_email from userinfo;

    2、复制表数据
    (1)在建表时复制
    (a)复制表中的全部数据
    create table userinfo_2 as select * from userinfo;
    select * from userinfo_2;
    desc userinfo_2;
    (b)复制表中部分数据
    create table userinfo_3 as select user_a_id from userinfo;
    select * from userinfo_3;
    desc userinfo_3;
    (2)在添加数据时复制
    (a)添加全部数据(复制的两个表必须结构相同)
    create table user_new(
    user_a_id number(6,0),
    user_username varchar2(20),
    user_pwd varchar2(20),
    user_email varchar2(30),
    user_regdate date
    );
    insert into user_new select * from userinfo;
    (b)添加部分数据(添加时数据类型要相同)
    insert into user_new(user_a_id,user_username) select user_a_id,user_username from userinfo;

    3、修改数据(更新操作)
    (1)无条件更新
    update userinfo set user_pwd='111111';
    (2)有条件更新
    update userinfo set user_pwd='6666' where user_username='xiaobaitu';

    4、删除数据(行删除,不能删除列)
    创建一个实验用表
    create table user_new2 as select * from userinfo;
    (1)无条件删除
    delete from userinfo_3; 等同于 truncate table userinfo_3;
    (2)有条件删除
    delete from user_new2 where user_username='xiaobaitu';

  • 相关阅读:
    C++默认参数
    C语言中volatile关键字的作用
    CURL超时处理
    C语言中全局变量、局部变量、静态全局变量、静态局部变量的区别
    unix时间戳和localtime
    !!的用处
    linux中grep和egrep的用法
    非阻塞,send后马上close消息能成功发出去吗
    .hpp与.h的区别
    14课作业答疑
  • 原文地址:https://www.cnblogs.com/liuyangfirst/p/6416505.html
Copyright © 2020-2023  润新知