数据库:

命名规范问题 依然是 _流。看来也确实应该抽空 来处理一下 今天吧,不行时间不能浪费。要更加专注。累了 就睡,醒来 就 好好 弄东西。白天 哪怕累一些,强度 大一些,晚上也可以抽空出去。溜溜弯儿。

雷哥 问了一个 问题:

Char 跟 varchar 有什么区别。如果 char 里面 定了4位。存了 一个 汉字,就是 两位。但是 在数据库空间依然是 4位。后面用空格补齐。但是 varchar 里面 假设定了 4位的长,存了一个 汉字 占了两位,这时候 在数据库中就只占2两位。所以 在空间的利用率上varchar 更胜一戳。但是 char 会 在比对时 占用的时间更少。

1、Int 跟 double 跟 number 的区别

2、Varchar2 跟 varchar 的区别。

3、Blob 和 clob 两个是否存在?如何应用?

在 orcl 里面存在 blob  和 clob 。blob 最大单条记录可以存放4G的内容。都是 2进制的形式。通常情况下 我们把这样的内容单独存到一个 文件中,通过地址的链接来进行索引,这样做是为了数据的安全性来考量的。Blob 主要用于存储 声音 和图片类型的文件。对于 clob 同样最大 单条记录是 4g。用于存储文本信息的内容。通常我们也是通过 链接来获得当前文件,如果 需要 对数据库进行一定的安全性的考量可以 把文件封装在 clob里面,但是 通常 我们都比较少用这两个 在orcl里面存在的数据类型。

Create table employee_tb(

Employee_id number,

Employee_name varchar2(20),

Employee_gender char(4),

Employee_age number,

Employee_salary number(9,2),

Employee_hiredate date

);

取命令行 可以显示 表结构 采用 desc employee_tb;

SQL> desc employee_tb;

Name              Type         Nullable Default Comments

----------------- ------------ -------- ------- --------

EMPLOYEE_ID       NUMBER       Y

EMPLOYEE_NAME     VARCHAR2(20) Y

EMPLOYEE_GENDER   CHAR(1)      Y

EMPLOYEE_AGE      NUMBER       Y

EMPLOYEE_SALARY   NUMBER(9,2)  Y

EMPLOYEE_HIREDATE DATE         Y

这个 number(9,2) 也是 需要 注意的一点,就是 在于这个 数字的数字位有9位,小数数字有两位,所以 对应的 前面一共有七位,也就是 这是个 百万级的数字。

Create table department_tb(

Department_id number,

Department_name varchar2(20)

);

1、今日任务:

对了 在这个里面 什么区分大小写 什么不区分大小写来着?可能略有不同跟在mysql里面。这个 点要重新搞一下。

删除表格:

Select * from stu_tb3;

Drop table stu_tb3;

2、今日任务: 不在可选 现在 想到了 还不赶紧弄,等以后 这就会像雪球一样压垮我,去 查看那个 stanford的视频 查看  命名规范。

修改表格

修改表的结构

添加一个字段:

Alter table employee_tb add department_id number;

Select * from emp_tb;

修改字段类型(当心丢失精度) 所以 一定要谨慎。

Alter table employee_tb modify employee_age varchar2(10);

Alter table employee_tb modify employee_age int;

删除字段:

Alter table employee_tb drop column employee_age; [在 orcl里面必须这样删除一个 字段,就是 说 这个 column 关键字 不能省略。]

3、今日任务:在mysql里面 和 orcl里面 这个 都能带着 这个 column关键字么?如果 是的话,或许写一个 这样的差异集合 会比较好。

表的操作;

Select * from employee_tb;

Insert into employee_tb (employee_id,employee_name,employee_hiredate) values(3,'zhangsan','1-1月-2016');[差异:在添加日期的时候,这个 日期算是被阉割了,也就是说 当插入日期的时候:就是要以这样的标准书写:

比如今天是2016年 1月 8日。那么如下则为今天这样一个 日期的书写:8-1月-2016]

Update employee_tb set employee_name='wangwu' where employee_id=2;

Delete from employee_tb where employee_id=2

在 orcl里面的 事务概念:mysql里面没有说 那估计就是没有了。

在执行的时候 先写一个 commit; 表示开启了一个 事务,然后比如我们删除了一条记录,这个时候执行 rollback。就会回跟到我们事务开始的位置。这是整段的事务提交和回滚。也可以通过 savepoint a;这样的 语句 存储一个节点。然后 部分回滚, 利用语句 rollback to a;

例程:

设:

Create table employee_tb();

Insert into employee_tb();

Commit:

Delete from employee_tb;//没有记录了。

Rollback;//刚刚的一条记录回来了。

Commit;//事务提交。从此以后不再可以 有回滚的节点了。并且此时表中有一条记录。

断点模式:

Create table employee_tb();

Insert into employee_tb();

Commit;

Savepoint point1;

Insert into employee_tb();//数据库中有2条记录

Rollback to point1;//回到断点1,数据库中仅有1条记录。

Insert into employee_tb();

Savepoint point2;

Insert into employee_tb();

Insert into employee_tb();

Rollback to point2;//回到断点2 数据库中有2条记录。

Rollback;//数据库中有 1条记录。

Commit; 所有断点清空,数据库中最后仅有 1条记录。

表约束:

约束的目的: 保证数据表数据的完整性

每个字段的数据类型和长度也是一种约束。

Not null unique check(比如年龄只在 18-60之间,这样一层意思。) primary key foreign key

我们的表里面至少存在一个 主键的约束

约束的添加方式:

1、在创建表的同时,直接在字段后面添加

2、在创建表的所有字段后面添加约束

3、在创建表完成之后添加约束。

非空约束  not null 唯一性约束

Create table student_tb(

Student_id number not null,

Student_name varchar2(20) unique

);

// 主键约束 primary key。

Create table student1_tb(

Student_id number primary key,

Student_name varchar2(20) unique

);

Create table student2_tb(

Student_id number primary key,

Student_name varchar2(20),

Student_gender char(4) defalult '男',

Student_age number check (student_age between 18 and 60)

);

Select * from student_tb

对于 orcl 来讲,

Student_gender char(1) default '男'   是不可行的 也就是 一个汉字 是两列。

在创建表的同时,的在所有字段后面添加约束

Create table student3_tb(

Student_id number,

Student_name varchar2(20),

Constraint pk_stu3_tb_id primary key(student_id),

Constraint un_stu3_tb_name unique (student_name)

);

在创建表以后添加约束:

Select * from employee_tb;

非空约束

Alter table employee_tb modify employee_name varchar2(20) not null;

主键约束

Alter table employee_tb add constraint pk_employee_tb_id primary key (employee_id);

主键约束

Alter table department_tb add constraint pk_department_tb_id primary key (department_id);

外键约束  (的前提是 主键约束)

Alter table employee_tb add constraint fk_employee_tb_department_id foreign key (dept_id) references department_tb (department_id)

4、今日任务 orcl 里面的主键自增。

数据查询:

基本查询

查询所有字段

Select * from emp;//在scott用户下面自动就有一个emp表,里面拥有各种类型的数据格式。

查询指定字段:

Select empno,ename,job from emp;

Select distinct job emp;

Select distinct job,empno from emp;

Select empno as "编号",ename as empname from emp;[区别 在mysql里面可以允许这个别名用: "" ''  或者 什么都不填 三种形式,而 对于 orcl  只有 加"" 和什么都不填两种形式]

Select empno ,ename,sal*12 as "年薪" from emp;

在 数据库里面有一个函数,如果为空就怎样。ifnull() 【mysql】和 nvl(comm,0)【orcl】

Select empno,ename,(sal+nvl(comm,0))*12 as "年薪" from emp;

【如果不如此,会导致在没有值的列 返回一个 null ,null+number 然后* 12 返回一个 null,这就不合适了,所以 在这里面,就是用了一个 nvl函数 ,一旦为空,就怎样。】

Select * from emp

今天就讲到这里了。

Nullable 是 可以为空的意思。

对于主键并没有过多的描述。只有一个非空的表示。但是可以在查看表里面,得到一些描述。

这是合理的 并且也只有这两种书写方式。

orcl 加双引号 或者不加

Mysql 双引号 单引号  或者不加

查询年薪。

这样的话 感觉会很悲剧。奖金拿不到 甚至连 工资都没了。

所以 有一个 zai orcl里面的函数:

这个是nvl是 如果没有值的话,就把结果当 0。

这个函数在 mysql里面 是 ifnull。

oracle数据库入门sql语句的更多相关文章

  1. Oracle数据库入门——sql语句和函数详解

    一.oracle常用数据类型 一.  数据定义语言(ddl) 数据定义语言ddl(data definition language)用于改变数据库结构,包括创建.更改和删除数据库对象. 用于操纵表结构 ...

  2. Oracle数据库 基础SQL语句练习

    一.说明 第一次使用Oracle,想做一些练习,熟悉一些oracle. 表:使用的是scott用户,默认的表 具体表讲解,可以参考该文档:https://www.cnblogs.com/xjcheng ...

  3. Oracle数据库高效sql语句的整理

    业务需求说明:由于之前公司后台APP端有一个document表,该表中包含了所有的信息,新的需求就是通过该表创建出一个新的用户表(usertable)和一个档案表(document,该表只保留原doc ...

  4. oracle数据库常用SQL语句(11.29更新)

    笔者日常工作中常用到的sql语句,现总结如下,留作日后查看. 1.按照两列中的最大值取 ,只取两列其中的一列 SELECT * FROM t_doc T ORDER BY GREATEST(T.Loa ...

  5. Oracle数据库常用Sql语句大全

    一,数据控制语句 (DML) 部分 1.INSERT  (往数据表里插入记录的语句) INSERT INTO 表名(字段名1, 字段名2, ……) VALUES ( 值1, 值2, ……); INSE ...

  6. Oracle数据库的sql语句性能优化

    在应用系统开发初期,由于开发数据库数据比较少,对于查询sql语句,复杂试图的编写等体会不出sql语句各种写法的性能优劣,但是如果将应用系统提交实际应用后,随着数据库中数据的增加,系统的响应速度就成为目 ...

  7. oracle数据库常用SQL语句

    1)删除表的一列 ALTER TABLE 表名 DROP COLUMN 列名; 2)增加表的一列 且默认值为0 alter table 表名 add 字段名 类型 default '0'; 3)修改表 ...

  8. Python使用cx_Oracle模块操作Oracle数据库--通过sql语句和存储操作

    https://www.jb51.net/article/125160.htm?utm_medium=referral  Python使用cx_Oracle调用Oracle存储过程的方法示例 http ...

  9. Oracle 数据库常用SQL语句(2)查询语句

    一.SQL基础查询 1.select语句 格式:select 字段 from 表名; 2.where 用于限制查询的结果. 3.查询条件 > < >= <= = != 4.与 ...

随机推荐

  1. SQL语句优化方法

    1.1 注释使用 在语句中多写注释,注释不影响SQL语句的执行效率.增加代码的可读性. 1.2 对于事务的使用 尽量使事务处理达到最短,如果事务太长最好按功能将事务分开执行(如:可以让用户在界面上多几 ...

  2. Linux下的iwpriv(iwlist、iwconfig)的简单应用

    无线网络飞速发展的今天,许多设备都提供了连接无线网络的功能. 那么Linux下的wifi到底该怎么配置.连接呢?? 开始配置之前,我们要说说iw家族.iw是linux下常用的wifi配置工具,网上有相 ...

  3. html的两种提交按钮submit和button

    转自:http://baiying.blog.51cto.com/1068039/1319784 html按钮有两种: <input type="button" value= ...

  4. [转]关于WM_NCHITTEST消息

    http://www.cnblogs.com/GnagWang/archive/2010/09/12/1824394.html 我为了移动一个无标题栏的窗体,使用了WM_NCHITTEST消息,这个消 ...

  5. ifconfig命令

    许多windows非常熟悉ipconfig命令行工具,它被用来获取网络接口配置信息并对此进行修改.Linux系统拥有一个类似的工具,也就是ifconfig(interfaces config).通常需 ...

  6. TinyXml和tinyxml2

    C++操作xml没有标准库的支持,TinyXml是个不错的xml操作库,以前总是使用TinyXml读写xml,但是最近对大量xml进行读写时,速度真的是有点慢,特别是在调试时,每次启动读xml就要好长 ...

  7. 【原创】LoadRunner Java Vuser开发环境配置指南

    1 编写目的 本文主要介绍Java运行环境的配置,同时通过编写HelloWorld程序,讲解在LoadRunner下如何开发简单的Java Vuser脚本.关于Java语言的深入学习,大家可以参考其他 ...

  8. 解决 EF 分层查询的一个性能问题[转]

    前两年帮朋友 做了个网吧管理软件,采用动软的三层架构 sql语句生成的.最近因功能变更 要改动,而我这段正在做asp.net mvc +ef+autofac的一个电商网站.索性 就把原来的底层全重新了 ...

  9. 2014年Tizen开发者峰会上海征稿启事!

    本次征稿面向大中华用户: “Tizen开发者,应用程序开发人员.isv平台设计师.运营商.厂商.硬件厂商.软件厂商,开源爱好者,和从事Tizen的工作人员” 2014年Tizen开发者峰会 这一次,亚 ...

  10. 【解决】HDFS HA无法自动切换问题

    [解决]HDFS HA无法自动切换问题 原因: 最早设置为root互相登录,可是zkfc服务是hdfs账号运行的,没有权限访问到root的id_rsa文件.更改为hdfs账号免密钥登录恢复正常.   ...