zoukankan      html  css  js  c++  java
  • Oracle数据库 插入数据格式,简单查询

     1 操作练习代码,知识点往下翻
     2 TRUNCATE TABLE hehe1111;
     3 select * from hehe1111;
     4 desc hehe1111;
     5 INSERT INTO hehe1111(name,age,id) VALUES('haha',100,'1234');
     6 INSERT INTO hehe1111(name,sex,age,id) VALUES(NULL,'f',100,'1000001');
     7 INSERT INTO hehe1111(name,sex,age,id) VALUES('haha','f',100,'1000003');
     8 INSERT INTO hehe1111(name,sex,age,id) VALUES('haha','f',100,'1002');
     9 INSERT INTO hehe1111(sex,age,id) VALUES('f',100,'1000003');
    10 INSERT INTO hehe1111(name,sex,age,id) VALUES('HaHa','f',100,'10029');
    11 
    12 COMMIT;
    13 SAVEPOINT a1;
    14 ROLLBACK;
    15 DELETE hehe1111;
    16 
    17 select concat(NAME,null) from hehe1111 where id='1000003';
    18 select length(name) from hehe1111;
    19 select name from hehe1111;
    20 select upper(name) from hehe1111;
    21 select lower(name) from hehe1111;
    22 select initcap(name||' '||'hello') from hehe1111;
    23 select 'hi'||RTRIM('hello world','ld') from hehe1111;
    24 select LPAD(name,10,'hello world') from hehe1111;
    25 select RPAD(name,10,'hello world') from hehe1111;
    26 select SUBSTR(name,-4) from hehe1111;
    27 select INSTR(name,'ha') from hehe1111;
    28 COMMIT;
    29 
    30 create table emp (
    31     name char(20),
    32     id number(3),
    33     salary number(9,3));
    34     
    35 INSERT INTO emp(name,id,salary) VALUES('haha',101,'8000.567');
    36 INSERT INTO emp(name,id,salary) VALUES('haha',101,'9000.789');
    37 INSERT INTO emp(name,id,salary) VALUES('haha',103,'9000.123');
    38 INSERT INTO emp(name,id,salary) VALUES('haha',104,'9007.123');
    39 select * from emp;
    40 select TO_CHAR(id)||'**' from emp;
    41 select ROUND(salary) from emp;
    42 select TRUNC(salary) from emp;
    43 select MOD(salary,0) from emp;
    44 select CEIL(salary) from emp;
    45 select FLOOR(salary) from emp;
    46 
    47 select sysdate from emp;
    48 select SYSTIMESTAMP from emp;
    49 
    50 drop table student;
    51 create table student (
    52     name char(20),
    53     sex char,
    54     age number(3),
    55     birth date);
    56     
    57 INSERT INTO student(NAME,SEX,BIRTH) values('xiaoming'
    58 ,'m',TO_DATE('2011-11-11','yyyy-mm-dd'));
    59 
    60 INSERT INTO student(NAME,SEX,BIRTH) values('xiaohua'
    61 ,'f',TO_DATE('11-11-2001','mm-dd-yyyy'));
    62 
    63 INSERT INTO student(NAME,SEX,BIRTH) values('xiaoxiao'
    64 ,'m',TO_DATE('2018-9-4-14-29-33','yyyy-mm-dd-hh24-mi-ss'));
    65 
    66 select to_char(birth,'mm-dd-yyyy-hh-mi-ss')||'hehe' from student;
    67 select last_day(to_date('18-2-2016','dd-mm-yyyy')) from student;
    68 select birth from student;
    69 select add_months(birth,-1) from student;
    70 select MONTHS_BETWEEN(birth,to_date('2018-9,4','yyyy-mm-dd')) from student;
    71 
    72 select NEXT_DAY(SYSDATE,4) from student;
    73 select GREATEST(SYSDATE,NEXT_DAY(SYSDATE,4),NEXT_DAY(SYSDATE,3)) from student;
    74 
    75 update hehe1111 set sex='m';
    76 update hehe1111 set sex=NULL where id =1234;
    77 select * from HEHE1111 where sex='m' ;
    78 select nvl(sex,'f') from HEHE1111;
    79 
    80 select 'drop table '||table_name||';' from cat where table_type='TABLE';

    一、SQL语句
        数据定义语句:用于建立、修改、删除数据库对象。
            CREATE:创建表或其它对象
            ALTER:修改表或其它对象的结构
            DROP:删除表或其它对象
            TRUNCATE:删除表中的数据而保留结构
        数据操作语句:用于改变数据表中的数据。
            INSERT:向表中插入数据
            UPDATE:更新表中的数据
            DELETE:删除表中的数据
        事务控制语句:用于维护数据的一致性。
            COMMIT:提交,确认已经改变的数据。
            ROBACK:回滚,取消已经进行确认的数据的改变。
            RAVEPOINT:设置保存点,使当前的事务可以回滚到指定的位置。
        数据控制语句:
            GRANT:授于,用于给用户或角色授权
            REVOKE:于回收用户或角色的权限
            CREATE USER:用于创建用户
        数据查询语句:
            SELECT * from table_name;
    二、字符串类型
        1、CHARVARCHAR2
            1、表示字符类型,用于存储字符信息,如:姓名、职业、住址等。
            2、CHAR长度固定的字符串,name CHAR(20); name='hehe'; 20
            3、VARCHAR2变长的字符串,name VARCHAR2(20); name='hehe'; 4;
        2、字符编码
            1、默认以字节为单位,可指定为字符。
            2、CHAR(10) 等价于 CHAR(10 BYTE); 指定字符为单位 CHAR(10 CHAR);
            3、每个英文字符占用一个字节,每个汉字根据初始编码的不同会占用2~4字节。
        3、最大长度
            1、CHAR最大长度为2000字节,最多保存2000个字母,1000个汉字。
            2、VARCHAR2最大长度为4000字节,最多保存4000个字母,2000个汉字。
            3、CHAR可以不指定长度默认为1,VARCHAR2必须要指定长度。
        4、LONG和CLOB类型
            1、LONG是VARCHAR2的加长版,变长的存储字符串,最多达到2G的字符串。
                但每个表中只能有一个LONG类型,而且不能当作主键,不能建立索引,不能出现在查询一条件中。
            2、CLOB存储定长的字符串,最大长度可达到4G。
            3、Oracle建议在开发中使用LONG和CLOB替代CHAR和VARCHAR2。
    三、字符串函数
        1、CONCAT和||
            1、CONCAT(str1,str2) 返回两个字符串连接后的结果,如果连接的CHAR类型的字符串还要包括后面的空格。
            2、||与CONCAT的功能是等价的。
        2、LENGTH
            1、用于返回字符串的长度。
            2、在计算CHAR类型时会包括后面的空格,在VARCHAR2时只计算字符的数量。
        3、UPPERLOWERINITCAP
            UPPER功能是把字符串全部转成大写
            LOWER功能是把字符串全部转成小写
            INITCAP功能是把字符串中的所有单词首字母大写
        4、TRIMLTRIMRTRIM
            TRIM(char from str) 功能是从str的开头截取一个字符。
            LTRIM(str1,str2) 功能是从str1的左边截取str2。
            RTRIM(str1,str2) 功能是从str1的右边截取str2。
        5、LPADRPAD
            LPAD(str1,n,str2) 显示n个宽度的str1,不够则用str2的字符补充到str1的左边。
            RPAD(str1,n,str2) 显示n个宽度的str1,不够则用str2的字符补充到str1的右边。
        6、SUBSTR
            SUBSTR(str,m,n) 从str的第m个位置开始截取n个字符。
            m=0时也是从头开始截取,m负值时则从末尾截取。
            n省略时默认截取到末尾。
        7、INSTR
            INSTR(str1,str2) 从str1中查找并返回str2首次出现的位置,不存在则返回0。
      四、数值类型
        注意:p的值最大为38,如果p省略,则默认为38。
        1、NUMBER(p) 用来表示整数。
            p表示数据的位数,可以用来存储年龄、编号、次数等。
        2、NUMBER(p,s) 用来表示带小数点的。
            常用于存储金额、工资等。
    五、数值函数
        1、ROUND
            1、ROUND(val,s) 用于四舍五入,s表示要保留的小数点后的位数。
            2、s必须是整数,否则自动取整。
            3、如果s为负数,则从小数点前s位四舍五入,但数据不会被截取。
            4、s值缺省时默认为0。
        2、TRUNC
            1、TRUNC(val,s) 用于截取,s表示要保留的小数后的位数。
            2、如果2为负数,则把小数点前的s位置为0。
        3、MOD
            1、MOD(val,m) 使用m对val求余。
            2、m如果为0则直接返回val的值。
        4、CEILFLOOR
            CEIL(val)  意思是天花板,就是取val四舍五入的最大值。
            FLOOR(val)  意思是地板,舍取小数点后面的数据。
           
    六、日期类型
        1、DATE日期类型
            1、使用了7个字节来表示日期
                1byte 世纪+100
                2byte 年
                3byte 月
                4byte 天
                5byte 小时+1
                6byte 分+1
                7byte 秒+1
            2、可以表示的日期范围时公元前4712年1月1日到公元9999年12月31日。
        2、TIMESTAMP日期类型
            1、使用11个字节来表示日期
            2、前7个字节与DATE一致,后4个字节用来存储纳秒。
           
    七、日期关键字与函数
        1、SYSDATE
            1、功能是获取当前日期,它不是函数,本质上是Oracle内部的一个关键字。
            2、返回当前的系统时间,可以精确到秒。
            3、默认显示的格式:DD-MON-RR
        2、SYSTIMESTAMP
            1、是一个内部函数,返回当前系统的日期和时间,精确到纳秒。
        3、TO_DATE
            1、TO_DATE(str,fm) 将字符str按照fm的格式转换成日期类型的数据。
            yy 2位数表示的年份
            yyyy 4位数表示的年份
            mm 两位数表示的月份
            mon 简拼表示的月份
            month 全拼表示的月份
            dd 2位数字表示的天
            dy 周几的缩写
            hh24 24小时制时间
            hh|hh12 12小时制时间
            mi 分钟
            ss 秒
        4、TO_CHAR
            TO_CHAR 可以把其它数据类型转换成字符串。
            TO_CHAR(date,fm) 把日期数据转换成字符串。
        5、LAST_DAY
            1、LAST_DAY(date) 获取日期所在月的最后一天。
            2、在按照以自然月为业务逻辑或者安排月末活动时使用。
        6、ADD_MONTHS
            1、ADD_MONTHS(date,i) 在date的基础上加上i月后的日期。
            2、i可以是小数但会取整数。
            3、i的值可以是负的,日期则减去i月。
        7、MONTHS_BETWEEN
            1、MONTHS_BETWEEN(d1,d2) 计算两个日期之间相隔多少个月。
            2、如果d2时间比d1晚则会得到负数。
            3、如果两日期都是整月才能得到整数,否则都是带小数点的数。
        8、NEXT_DAY
            1、NEXT_DAY(date,str) 返回date下一个周几的日期。
            2、在中文环境环境下可以使用'星期一',在英文环境下需要英文单词的全拼。
            3、为了避免麻烦可以使用1-7表示,1星期日 7星期六。
        9、LEASTGREATEST
            1、LEAST(d1,d2,d3,...) 返回日期列表中的最小值。
            2、GREATEST(d1,d2,d3,...) 返回日期列表中的最大值。
    七、NULL的含义
        1、NULL是数据库中非常重要一个数据,也叫空值。
        2、在插入数据时,某些字段如果没设置值则取值为NULL。
        3、在创建表的时可以设置某些字段的值不能为NULL。
        4、任何数据类型都可以为空。
       
    八、空值操作
        1、插入空值
            1、显式的插入空值,赋值时任何类型的数据都可以赋值为NULL。
            2、隐式的插入空值,对字段不赋值时该字段的值就为NULL。
        2、更新成空值
            UPDATE 表名 SET 字段=NULL where bool;
        3、空值的条件查询
            空值不等于任何值,不能直接判断。
            where sex is NULL
    九、空值相关的函数
        1、NVL
            1、NVL(val1,val2) 把空值数据转换成非空的。
            2、如果val1不为空,则返回val1,如果val1为空则返回val2。
            3、val1和val2可以是任意类型,但它们类型必须一致。
        2、NVL2
            1、NVL2(val1,val2,val3)也是把空值数据转换成非空的。
            2、如果val1为空,则返回val2,如果val2也为空则返回val3。
           

  • 相关阅读:
    大道至简第六章-从编程到工程
    Java动手动脑-接口继承
    随机数生成数组元素求和
    大道至简第五章-失败的过程也是过程
    课堂-字符串加密
    字符串加密
    课堂动手动脑-3及字符串加密
    java课堂回答
    读后感
    从编辑懂工程
  • 原文地址:https://www.cnblogs.com/mingyoujizao/p/9602689.html
Copyright © 2011-2022 走看看