[关闭]
@MRsunhuimin 2020-08-30T13:05:04.000000Z 字数 2028 阅读 197

sql语句知识点(Oracle)

MySQL数据库


0. Oracle 函数大全

https://www.cnblogs.com/bbliutao/archive/2017/11/08/7804263.html

1. SQL - 单引号和双引号的区别

    在标准 SQL 中,字符串使用的是单引号。

    如果字符串本身也包括单引号,则使用两个单引号(注意,不是双引号,字符串中的双引号不需要另外转义)。

    但在其它的数据库中可能存在对 SQL 的扩展,比如在 MySQL 中允许使用单引号和双引号两种。

2. MySQL 参考手册

    字符串指用单引号'或双引号"引起来的字符序列。例如:

    ‘a string’

    “another string”

    如果SQL服务器模式启用了NSI_QUOTES,可以只用单引号引用字符串。用双引号引用的字符串被解释为一个识别符。

3. 使用insert语句时,什么样的数据要加引号,什么样的数据不用加引号?

    字符串类型的char,nchar,varchar,nvarchar,text,ntext都要加引号
    日期类型也要加引号,
    数值型,逻辑型的不用加引号. 

    varchar,char,nvarchar,nchar,text,ntext,datetime都需要加单引号
    int,numeric,bit不需要加

4. 删除表的语句(drop、truncate、delete)

https://www.cnblogs.com/jmbky/p/8127214.html

4.1 drop table xx

    删除表

--xx是数据表的名字


    作用:删除内容和定义,释放空间。简单来说就是把整个表去掉.以后要新增数据是不可能的,除非新增一个表。 drop table test,就是把整个表 移除.里面的数据都消失

4.2 truncate table xx

    作用:删除内容、释放空间但不删除定义。与drop不同的是,他只是清空表数据而已,不删除表结构。

4.3 delete table xx

    作用:也是删除整个表的数据,但是过程是痛苦的(系统一行一行地删,效率较truncate低) 或delete table tb where 条件

    删除内容不删除定义,不释放空间。

    用delete删除 数据,然后添加。可以看到添加之后id标识不连续。(说明delete删除不释放空间)

4.4 truncate 与delete 比较

1. truncate table 在功能上与不带 WHERE 子句的 delete语句相同:二者均删除表中的全部行。

2. truncate 比 delete速度快,且使用的系统和事务日志资源少。

3. truncate 操作后的表比Delete操作后的表要快得多。

4. 当表被清空后表和表的索引讲重新设置成初始大小,而delete则不能

5. Oracle中dual表的用途介绍

https://blog.csdn.net/z_atmosphere/article/details/82625058

    dual是一个虚拟表,用来构成select的语法规则,oracle保证dual里面永远只有一条记录,可以用它来做很多事情。
  1. 1、查看当前用户,可以执行下面语句 select user from dual;
  2. 2、用来调用系统函数
  3. 主要是当时用到这个函数
  4. select fn_getpy('学习数据库',1) from dual;
  5. 拼音
  6. XUEXISHUJUKU
  7. ------------------------------
  8. select fn_getpy('学习数据库',3) 拼音 from dual;
  9. 拼音
  10. XXSJK
  1. CHR
  2. 语法: chr(x)
  3. 功能:给出整数X,返回对应的ASCII码字符。CHRASCII是一对反函数。
  4. select chr(15045032) 别名1,chr(90) 别名2 from dual;
  5. 别名1 别名2
  6. Z
  7. 有个简单的查看方法,打开记事本,如要查看“Chr(119) w”,可以按下Alt119
  8. (先按住Alt不放,然后输入数字,输完后在放开)
  9. 注意:数字一定要从旁边的数字键盘输入,否则无效
  1. CONCAT
  2. 语法: CONCATstring1,string2
  3. 功能:连接两个字符串
  4. SQL> select concat('010-','88888888')||'23' 连接 from dual;
  5. 连接
  6. 010-8888888823
  1. 3、得到序列的下一个值或当前值,用下面语句
  2.  select your_sequence.nextval from dual;--获得序列your_sequence的下一个值
  3.   select your_sequence.currval from dual;--获得序列your_sequence的当前值
  4. 若没有序列需要创建,create sequence your_sequence;当时我就很奇怪有获得当前和下个为什么没有获得上个,然后我就去寻找,好吧,无果,就不了了之了。
  1. 4、可以用做计算器
  2. select 2*9 from dual;
  3. select 2+9 from dual;
  4. select 2-9 from dual;
  5. select 9*1-1 from dual;

6.

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注