SQL语言基础

6 篇文章 0 订阅

SQL语言基础

1、SQL语言概述
SQL(Structured Query Language)结构化查询语言,是一种数据库查询和程序设计语言,SQL标准是由ISO(国际化标准组织)和ANSI(美国国家标准化组织)
共同制定的。它的主要作用是存储数据以及查询、更新和管理关系数据库系统,同时也是数据库脚本文件的扩展名。
1、1 SQL语言特点
SQL语言理解起来非常简单,这样就方便开发人员使用SQL语言对数据库进行操作
SQL语言是一种非过程语言,用户不需要了解具体操作的过程,也不必了解数据库的存储路径,只需要指定所需要的数据操作即可
SQL语言是一种面向集合的语言,每个SQL命令的操作对象是一个或多个关系,结果也是一个关系。
SQL语言既是内置语言,同时也是嵌入式语言。它可以嵌入到某种主体语言中使用,也可以单独使用。内置语言可以独立使用交互命令,适用于终端用户、
    应用程序员和DBA;嵌入式语言使其在高级语言使用,供应用程序员开发应用程序。
1、2 SQL语言的分类
SQL语句大约分为5类,分别为查询语言、数据操作语言(DML)、数据定义语言(DDL)、数据控制语言(DCL)、事务控制语句(TC)。
1、查询语句  (SELECT)
2、数据操作语言(DML)
    主要是操作表中数据的,为insert、update、delete、merge(合并,插入或修改)
3、数据定义语言(DDL)
    主要是操作表整体的,例如定义数据库、数据表、索引等。
    create、alter、drop、rename、truncate(删除表的全部内容)
4、事务控制语言  
    commit、rollback、savepoint(设置一个保存点,可以将修改回滚到此处)
5、数据控制语言(DCL)
    主要修改数据库结构的操作权限,可以针对数据库用户进行权限的分配。
    grant (授予用户权限) revoke(回收用户权限)
1、3 SQL语句的编写规则
1、SQL关键字不区分大小写。
2、对象名和列名不区分大小写。
3、字符值和日期值区分大小写。当在SQL语句中引用字符值和日期值时,必须给出正确的大小写数据。
4、SQL*PLUS中语句要以分号结束。在高级编程语言中不能以分号结束。
2、select 查询语句
1、基础格式   slect * from   表名;
2、查询指定列格式  select 列名1,列名2...   from 表名
3、条件查询   select * from  表名 where 条件;
    where子句中可以使用的操作符    
        基本运算操作符     == >= <> != > <
        between and   在两者之间
        in           匹配列表值
        like   匹配域字符样式 用于模糊查询,%代表任意字符  _代表一个字符
        is null   值为null
        and       与关系
        or        或关系
        not       非
4、分组查询      select * from 表名  group by 列名;
            group by 列名1;  单列分组
            group by 列名1,列名2   首先会按列名1进行分组,组内按照列名2进行分组
5、 HAVING子句进行过滤
    HAVING子句通常是和Group by 子句一起使用,用来显示分组查询结果,HAVING子句需要在GROUP BY子句后面使用
6、DISTINCT  用于去除重复的值
3、DML语言 数据操作语言
3、1 insert into 插入表数据
基本格式: insert into 表名  values(值);
详细格式: insert into 表名(指定列) values(值);
3、2 update 更新表中数据
基本格式  updage 表名 set 列名=值  where 条件
3、3 delete 删除表中数据
基本格式 删除指定数据  delete from 表名 where 条件;
删除表中所有数据   delete from 表名;
4、基本函数
4、1 字符函数
常用的操作字符的函数如下:
concat(str1,str2)       拼接 str1和str2
str1||str2||str3        拼接  str1、str2和str3
length(str)             获取str的长度
nvl(str1,str2)          如果str1为null,则返回str2,否则返回str1
coalesce(str1,str2)     和nvl的使用效果一致
nvl2(str,str1,str2)     如果str为null,则返回str1,否则返回str2
substr(str,m,n)         截取字符串str,从索引m开始截,截取长度为n,索引从1开始
replace(str,str1,str2)  替换字符串str,将所有的str1替换成str2
4、2 数字函数
abs(value)              获取value数值的绝对值
round(value,p)          四舍五入value ,小数点精度为p
mod(a,b)                b对a进行取余
trunc(value)            去除value所有小数位,返回整数
4、3 日期函数
sysdate                 返回当前日期
months_between(date1,date2) 计算两个日期间隔多少个月
add_month(date,count)   在原有的时间date上增加count个月,如果count为负数,表示减少月
+- num day               在原有时间的基础上增减num 天
4、4 转换函数
to_char(str)             将str转换成字符串
to_number(value)         将value转换为数字
to_date('date','yyyy-mm-dd') 将date格式的字符串按照yyyy-mm-dd转换为日期
4、5 聚合函数
avg(value)                返回一个数字列的平均值
count(value)              返回某一列的行数
max(value)                返回某一列的最大值
min(value)                返回某一列的最小值
sum(value)                返回某一列的总和
4、6 数据库事务
数据库事务是一系列相关的SQL语句组成的最小逻辑工作单元。Oracle系统以事务为单位来处理数据,
用以保证数据的一致性。
事务的提交使用commit语句。
事务的回滚使用rollback语句。
Oracle数据库,需要手动提交事务而。MySQL数据库默认自动提交事务。
事务处理的语句只能是DML语句,数据操作语句,insert、update、delete
事务操作中可以使用savepoint 关键字设置保存点,利用rollback来指定回滚到某一保存点。
savepoint savepoint_name;  rollback  savepoint_name;
1、事务的ACID特性
事务可以由四个基本性质来定义,ACID(原子性Atomicity、一致性Consistency、隔离性Isolation、
持久性Durability)
    原子性:原子性保证了事务操作要么全部完成,要么全部都未发生。
    一致性:一致性意味着事务结束后系统的数据依然保证一致性。
    隔离性:隔离性保证了在事务完成之前,该事务外部不能看到事务内部的数据改变。
5、子查询与高级查询
5、1 子查询
1、子查询有两种基本的类型,即单行子查询和多行子查询。
    单行子查询:不向外部的SQL语句返回结果,或者只返回一行。单行子查询的特殊情况是精确包含一行,这种
子查询被称为标量子查询。
    多行子查询:向外部的SQL语句返回一行或多行。
2、子查询还有三种子类型,这三种子类型返回一行或者多行的查询结果
    多列子查询:向外部的SQL语句返回多列
    关联子查询:引用外部SQL语句中的一列或多列。这种子查询称为关联子查询。
    嵌套子查询:位于另外一个子查询中。
子查询可以作为条件、表、以及返回列。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值