基本sql语句

select 单表查询语句:

        select 子句

        去除重复行

        where条件查询

        order by 排序

        group by 分组

        having 分组筛选

        使用函数

DML(数据操作语音):

        insert 插入 : 记录值的插入;查询结果的插入,一次插入操作只能插入一行,可以添加所有列,也可以只添加部分列。

        update 更新:其语义是:修改基本表中满足条件表达式的那些元组的列值,需修改的列值在set子句中指出。

        delete 删除:其语义是从基本表中删除满足条件表达式的元组。

select 单表查询语句:

select 子句 :

                最简单的查询方式

                使用算术表达式{+ 、- 、* 、/}

                使用字段别名as (as可以省略)

                ''表示字符串

                "",双引号不代表字符串,只是表示一个整体,会原样输出

去除重复行:

        缺省的情况下,查询结果中包含所有符合条件的记录行,包括重复行,清楚重复行,关键字,distinct。

order by子句:升序 asc(缺省) ,降序desc

where子句:

        指定查询条件使用where子句

        查询条件中使用的运算符:算术>连接>比较>逻辑{|| 表示连接运算符 , 不等于可以说!= , 也可以是<>}

        查询条件中使用like运算符模糊查询(通配查询){%表示零或多个字符 ; _表示一个字符;对于特殊字符号可使用ESCAPE标识符来查找,escape用于转义指定字符}

        查询条件使用is null运算符进行空值判断

        sql优化问题:and 把检索结果较少的条件放到后面;or 把检索结果较多的条件放到后面

        可使用小括号强行改变运算顺序

使用函数:

        函数只是将取出的数据进行处理,不会改变数据库中的值。

        单行函数:

                字符函数:

                        initcap():首字母大写

                        upper():全部大写

                        lower():全部小写

                        translate():按字符进行翻译

                        replace():字符串替换

                        instr():查找子串的索引位置,索引位置从1开始

                        substr():截取字符串

                        concat():字符串连接函数,功能和||一致

                数值函数:

                        ceil(X):返回大于等于x的最小整数值

                        floor(X):返回小于等于x的最大整数值

                        round(x):返回四舍五入后的值

                        trunc(x,[y]):返回x按精度y截取后的值

                日期函数:

                        months_between():计算两个日期间的月数

                        add_month():在一个日期上加月数

                        next_day():基于一个日期计算下一个星期几是几号

                        last_day():查看某个月份最后一天是几号

                        round():对日期进行四舍五入

                转换函数:

                        to_char():将日期转换为字符串,sql中的日期格式:yyyy-mm-dd hh24:mi:ss;

                                          将数值转换为字符串,表示钱的时候:$ ¥,千位符 :¥1,000,000,000.00

                        to_date():将字符串转换为日期

                        to_number():将字符串转换为数字

                通用函数:

                        nvl(exp1,exp2):如果exp1为null,返回exp2,否则返回exp1

                        nvl2(exp1,exp2,exp3):exp1为null,返回exp3,exp1不为null,返回exp2

                        decode(条件,值1,翻译值1,值2...值n,翻译值n,缺省值):根据条件返回相应值

                        between...and..:表示在两值之间,包含边界

                其他函数:

                        in(' ' , ' ' , ' ' ):表示一个出现在集合中

                        is null:用来判断空值

                        可使用sysdate函数获取当前系统日期和时间

        多行函数(分组函数,统计函数):

                        仅适用数值型:

                                sum(*):求和

                                avg(*):求平均值

                        适用任何类型数值:

                                count(*):用于统计表格的记录数,永远不会返回null{count(*)返回组中总记录数目、count(exp)返回表达式exp值非空的记录数目、count(distinct(exp)) 返回表达式exp值不重复的,非空的记录数目}

                                max(*):求取最大值

                                min(*):求取最小值

group by子句:

        group by子句将表中数据分成若干小组

        包含在group by子句中的字段则不必须出现在select列表中

having子句:

        对分组查询的结果进行过滤,要使用having从句

        where过滤行,having过滤分组,having支持所有where操作符

多表查询和子查询:

        笛卡尔集

        等值查询   =等值连接

        非等值连接{>、 < 、!= 、>= 、<=}

         外连接:{外连接运算符为(+) 、左外连接显示左边表的全部行、右外连接显示右边表的全部行)

         自连接:将一个表当两个表使用

     子查询:

               子查询特点:子查询在主查询前执行一次;主查询使用子查询的结果

                单行子查询:单行子查询只返回一行记录;对单行子查询可使用单行记录比较运算符<、>、=、<=、>=、<>、!=;

                多行子查询:多行子查询返回多行记录;

                                      对多行子查询只能使用多行记录比较运算符{all和子查询返回的所有值比较;any和子查询返回的任意一个值比较,in等于列表中的任何一个}

常用数据库对象:

        用户user、数据库表table、数据库表的约束constraints、序列sequence、索引index、试图view、其他内容{事务、rowid和rownum、分页查询、子主题、导入导出数据}

        

三大范式:

        第一范式:

                         字段不能再分

                         约束列的原子性,不可再分

        第二范式:        

                        不存在局部依赖

                        约束多对多

        第三范式:

                        不含传递依赖(间接依赖)

                        约束一对多,通过外键

        其他:

                数据库表之间的关系:{一对一,学生和学生证;一对多,学生和班级;多对多,学生和课程}

JDBS访问数据库步骤:

               1、加载jdbc连接oracle的驱动

                2、创建数据库连接connection

                3、创建sql命令发送器statement

                4、创建sql语句

                5、通过statement发送sql命令并得到结果

                6、处理sql结果

                7、关闭数据库资源

不允许在where子句中使用多行函数

rownum在判断的时候,只能使用<=,不能使用>=

having从句过滤分组后的结果,它只能出现在group by 从句之后,而where从句要出现在group by从句之前

select执行过程:from---where---group by ---having----select----order by

字符串和日期值要用单引号扩起来

字符串大小写敏感

日期值格式敏感,缺省的日期格式是'dd-mon-yy'

dual:这是oracle提供的一张虚拟表,专门用于测试

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值