数据库操作语言

一、基本知识

  1、Oracle服务器由两大部分组成:Oracle数据库和Oracle实例
     Oracle数据库:位于硬盘上实际存放数据的文件,以.DBF结束的文件
     Oracle实例:位于物理内存里的数据结构

  2、数据库中的语言:

     DML:数据库操作语言(selectinsertupdatedelete)
       DDL:数据库定义语言(create tablealter tabledrop tablecreate view)
       DCL:数据库控制语言(commit、rollback、grant、revoke)

二、:数据库操作语言-select

  1、简单的查询:

    select * from 表名;                                                          --查询表的所有信息

    select 列名1,列名2,列名3... from 表名;                                --查询表的部分信息

    select e.ename 姓名, e.sexl 性别, e.age 年龄 from emp e;    --查询语句中别名的使用

  2、条件查询where

    select * from emp where deptno = 10;

    select * from emp where hiredate=‘09-6月 -81‘;                --正确,‘09-6月 -81‘为日期默认格式 DD-MON-RR

      对于日期有两种修改方式:

          a)修改系统默认日期格式:alter session set NLS_DATE_FORMAT=‘yyyy-mm-dd‘;
              b)使用to_date:select * from emp where hiredate = to_date(‘1981-6-9‘, ‘yyyy-mm-dd‘);
            to_date(要转换的内容, 格式)

  3、比较运算符

    a)、between ... and ... 在两个值之间(包含边界值),小值在前大值在后,可以作用于数字、日期
         select * from emp where sal between 1000 and 2000; --查询薪水1000-2000的员工:

    b)、[not] in(set) 
        select * from emp where deptno in (10, 20);   --查询10号和20号部门的员工:
          如果使用not in,那么括号里不能有null值

    c)、like

       模糊查询  % 代表零个或多个字符   _ 代表一个字符
         select * from emp where ename like ‘S%‘;                                                      --查询以S开头的员工:
         select * from emp where ename like ‘____‘;                                                   --查询名字是4个字的员工

         select e.ename from emp e where e.ename not like ‘%R%‘ order by e.ename;  --显示不带有"R"的员工的姓名

  4、逻辑运算

      and:逻辑并
      or:逻辑或
      not:逻辑非

  5、排序

    --order by:排序(升序asc(默认);降序desc)

    order by 后面可以跟:列名、表达式、别名、序号

    如果后面的多列都按降序排,那么每列后面跟desc

    select e.ename,e.sal,e.hiredate from emp e order by e.ename;   ----(1)查询EMP表显示所有雇员名、工资、雇佣日期,并以雇员名的升序进行排序。

  6、单行函数:只对一行进行变换,每行返回一个结果。函数可以嵌套使用

    字符函数:

    lower:转为小写
         upper:转为大写
         initcap:每个单词的首字母大写
         concat:字符串连接
         substr:取子串
         length:字符数长度
         lengthb:字节数长度
         instr:在母串中返回子串的位置
         rpad:右填充
         lpad:左填充
         trim:去除首尾字条
         replace:替换

    数字函数:

     round:四舍五入
         trunc:截断
         mod:求余

     日期函数:

    在日期上加上或减去一个数字,结果仍为日期
         两日期相减,返回相关的天数
         用数字除以24来向日期中加上或减去小时
         sysdate:返回当前时间
         months_between(日期1, 日期2):按实际月份算出相关的月数
         add_months(日期, 1):在日期上加一个月
         next_day(开始的日期, ‘星期六‘):从当前日期开始,下一个星期六
         last_day(日期):返回此日期中本月的最后一天
         round(日期, ‘MONTH‘):四舍五入到月
         trunc(日期, ‘YEAR‘):截断到年

  7、分组函数

    作用于一级数据,并对一级数据返回一个值。会自动去除空值再计算  avg(平均)、count(计数)、max(最大)min(最小)sum(求和)

    注意:

      a)不能在where子句中使用组函数,可以在having子句中使用组函数。尽量使用where

      b)在组函数中使用nvl函数,使分组函数无法忽略空值

           select e.deptno,count(e.deptno) from emp e group by e.deptno having count(e.deptno) >=1; -- 列出至少有一个雇员的所有部门。

  8、多表查询

     等值连接(内连接):
     不等值连接:
           外连接:

       当条件不满足时,仍然希望显示某些在结果中包含某些不成立的记录时,使用外连接
         左外连接:当连接条件不成立时,没有加号(+)的列的信息仍然显示,通常放在等号(=)的左边
         右外连接:当连接条件不成立时,没有加号(+)的列的信息仍然显示,通常放在等号(=)的右边
       自连接:会先产生笛卡尔积,再根据条件进行过滤记录。效率低

三、数据库操作语言-insert

  格式:insert into 表名(column1,column2...)  values(value1  value2...)

    insert into person values(111, ‘张三‘, ‘男‘);

    insert into person( pname) values( ‘李四‘);

  注意:

    a)列名与值必须一一对应

    b)如果列名涵盖了表里所有的列,那么列可以省略,但值必须与表里列的顺序一致

      隐式方式:如果插入的数据中,列名只是表中的一部分,那么其他未指明的列的值为null

显式方式:在values中指定空值

四、数据库操作语言-update

  格式:

    update 表名 set column1 = value1 , column2 = value2,...   where ……

    update emp02  set comm=1000  where deptno=10;

五、数据库操作语言-delete

   格式:delete from 表名 where condition
     清空表:

      a)delete from 表名;
        b)truncate 表名;

六、Oracle中的事务:

   设置自动提交:

    SET AUTOCOMMIT ON/OFF; --oracle默认为关闭off

  事务开始标志:

    DML语句(insert、update、delete)会自动开启事务

  事务结束标志:

    提示:

      显示提交:commit

      隐式提交:使用DDL(create table...);正常退出时会自动提交

    回滚:

       显式回滚:rollback

       隐式回滚:宕机、非正常退出

  保存点的使用:可以让数据回滚至指定的地方

     设置保存点:savepoint a;

     回滚至保存点:rollback to savepoint a;

时间: 2024-10-12 05:35:54

数据库操作语言的相关文章

SQL中DML(数据库操作语言)的使用

1.插入语句: INSERT [INTO] table [(column1, column2, column3, . . .)] VALUES(value1, value2, value3, . . .); 例:INSERT INTO user VALUES(NULL, 'test', '123456'); 例:INSERT INTO user (username, password) VALUES('test', '123456'); 实际上还有一种方式: 例:INSERT INTO user

DML数据库操作语言

DML语言 数据操作语言: 插入:insert 修改:update 删除:delete #一.插入语句 #方式一:经典的插入 /* 语法: insert into 表名(列名,...) values(值1,...); */ SELECT * FROM beauty; #1.插入的值的类型要与列的类型一致或兼容 INSERT INTO beauty(id,NAME,sex,borndate,phone,photo,boyfriend_id) VALUES(13,'唐艺昕','女','1990-4-

SQL于DML(数据库操作语言)采用

1.Insert语句: INSERT [INTO] table [(column1, column2, column3, . . .)] VALUES(value1, value2, value3, . . .); 例:INSERT INTO user VALUES(NULL, 'test', '123456'); 例:INSERT INTO user (username, password) VALUES('test', '123456'); 实际上另一种方式: 例:INSERT INTO u

Oracle数据库操作语言(DML)

--insert添加语句 insert into table_name(column_name,column_name,...) values (data1,data2,...); --通过表添加数据 insert into table_name(column_name,column_name,...) select column_name,column_name,... from table_name; --创建表添加数据 create table table_name as select c

3.数据库操作相关术语,Oracle认证,insert into,批量插入,update tablename set,delete和truncate的区别,sql文件导入

 1相关术语 语句 含义 操作 DML语句 (Data Manipulation Language) 数据库操作语言 insert update delete select DDL语言 (Date definition Language) 数据库定义语言 create table;create view index sequence synonvm同义词,truncate table DCL语言 (Data control Language) 数据控制语言 commit rollback s

数据库操作入门

mysql 版本:5.5  InnoDB 引擎         mysql5.1 都是myIAM 引擎 简介:sql结构话查询语言 :是一种对关系数据库中的数据进行定义和操作的语言方法,是大多数关系型数据库支持的工业标准:是一种数据库查询和程序设计语言,用于存取.查询.跟新.管理数据库系统.sql 分类 :*DQL 数据查询语言: 作用表格获取数据,确定数据怎么在应用程序给出:关键字select,其它DQL常用的保留字有WHERE ,ORDER, GROUP BY ,和HAVING;DML 数据

oracle数据库语言(2)----数据操作语言

1 DML(数据操纵语言)Data Manipulation Language 2 用于增.删.改 数据库中的数据 3 常伴随着TCL(事物操作语言)----commit(保存):rollback(回滚): 4 create table stu( id number(5), name char(12) ); 5 6 1.向表中插入数据: 7 insert into stu (id ,name) values(1,'秦舞阳');----第一种写法 8 insert into stu values(

Go语言开发(十八)、Go语言MySQL数据库操作

Go语言开发(十八).Go语言MySQL数据库操作 一.MySQL数据库驱动 1.MySQL数据库驱动简介 Go语言官方没有实现MySQL数据库驱动,常用的开源MySQL数据库驱动实现如下:(1)Go MySQL DriverGo MySQL Driver支持database/sql接口,全部采用Go语言实现.官方网站:https://github.com/go-sql-driver/mysql/(2)MyMySQLMyMySQL支持database/sql接口,也支持自定义的接口,全部采用Go

数据存储——SQLite数据库存储——SQL语句——DML数据操作语言、内置函数聚合函数

一.连接查询之内连接 select   a.字段,b.字段   from   表1   a,表2   b    where   a.字段=b.字段  And ... 二.DML 数据操作语言 1.增  insert  into values 1-insert  into 表名  values (跟所有字段一一对应的值的列表) 2-insert  into 表名(字段列表)  values (跟字段列表一一对应的值的列表) 3-insert  into 表名  select  对应的字段列表  f