page contents

SQL常用语句格式以及例子说明!建议收藏

创建表: Create table 表名 ( s_id number(4) ,  s_name varchar2(10) , s_sex char(2) ); 删除表: Drop table 表名; 重命名表名: Rename 旧表名 to 新表名 ; 添加列:  Alter t...

attachments-2021-05-w9jR4Cgx609237264381f.png

创建表:

Create table 表名 ( s_id number(4) ,  s_name varchar2(10) , s_sex char(2) );

删除表:

Drop table 表名;

重命名表名:

Rename 旧表名 to 新表名 ;

添加列:

 Alter table 表名 add (  s_age number(3) );

删除列:

  Alter table 表名 drop( S_sex  );

修改列:

Alter table 表名 modify(
      s_id number(4) default null not null,
  s_name varchar2(10) default null not null
     );

修改列名:

 Alter table 表名 rename column 旧列名 to 新列名 ;

插入表数据的两种书写方式:

  1.insert into 表名 (列名) values (值) ;
   如:insert into 表名 (s_id) values (0301) ;
  2.insert into 表名 values (值) ;
   如:insert into 表名 values (0302,’张三’,20) ;

查询列表所有信息:

Select * from 表名 ;

查询一个列表信息(加where条件):

Select * from 表名 where s_id = 302;

修改列表内容:

Update 表名 set s_name = ‘李四’,age = 18 where s_id=301;

删除列表内容:

Delete from 表名 where s_id = 301 ;

求最高分:

Select * from 表名 where grade =(select max(grade) from sc) ;

合一起显示:

 Select “concat”(s_id s_name) from sc ;

返回字符的长度:

  Select 列名,length(列名) from 表名 ;

大小写转换:

  Select  upper(‘hello world’),lower(‘HELLO WORLD’),initcap(‘hello world’) from 表名(列名);

四舍五入:

  Elsect round(45.567,1) from 表名;//——45.6
  Elsect round(45.567,0) from 表名;//——46
  Elsect round(45.567,-1) from 表名;//——50

取余:

  Select 列名,mod(列名,数值) from 表名;

取整:

  Select ceil(1.5) from 表名;//-----2(向上)可用列名
  Select floor(1.5) from 表名;//----1(向下)可用列名

查看当前的日期(秒):

  select sysdate from 表名;

创建时间列:

  Registerdate date default sysdate ;

查看当前时间(毫秒):

 Select systimestamp from表名 ;

字符串转日期:

 Insert into 表名(列名,列名)values(‘张三’,to_date('1991-12-22','YYYY-MM-DD'));

日期转字符串:

  Select to_char(列名,'YYYY"年"MM"月"DD"日" HH24"时"MI"分"SS"秒"')from 表名 ;

空值转换:

  1.select nvl(列名,数值) from 表名 ;
  2.select nvl2(列名,数值,数值) from 表名 ;(列属性为空选择第二个数值,不为空选一)

模糊查询:

  1.Select * from 表名 where 列名 like ‘张%’;查询数据库中有没有姓“张”的
  2.Select * from 表名 where 列名 like ‘%张%’;查询数据库中有没有姓名带“张”的

范围值:

  1.select * from 表名 where 列名 in (范围 如:‘张伟’,‘张三丰’);在此范围的
  2.select * from 表名 where 列名 not in (范围 如:‘张伟’,‘张三丰’);不在此范围的
  3.                              between 范围 如:6000 and 10000 ;

过滤重复:

  Select distinct 列名 from 表名 ;

排序:

  select * from 表名 order by 列名 desc ;
  select * from 表名 order by 列名 asc(不写默认为asc) ;

最大,最小,平均,和,次数:

  Select max(列名),min(列名),avg(列名),sum(列名),count(列名或*)from 表名;

内外连接:

  Select 列名 列名 from 表名 left join 表名 on 条件等 ;

自连接:

  Select a.列名 ,b.列名 from 表名 a ,表名 b 条件等 (同一个表名);

单行子查询:

  Select * from 表名 where grade =(select max(grade) from sc) ;

多行子查询:

  Select 列名 from 表名 where 列名  in (select 列名 from 表名);

伪列:

  1.Select rownum,列名 from 表名 where rownum between 1 and 3 ;--查询123号信息
  2.select * from(Select rownum rn,列名 from 表名)where rn between 4 and 5 ;

查询系统当前拥有的账号:

  Select username from all_users ;

授予权限:

  Grant connect to 用户 ;(connect角色允许用户连接至数据库,并创建对应数据库对象)
  Grant resource to 用户 ;(resource 角色允许用户使用数据库的存储空间)

授权所有:

  Grant all privileges to 用户名 ;

创建用户:

  Create user 用户名 ;
  Create user 账号 identified by 密码 ;(创建成功之后需要授权才能使用)

删除用户:

  Drop user 用户名 ;

授权视图操作:

  grant create any view to 用户名;

创建视图:

  Grant view 视图名 as 查询的需要合并的表,例如:
    Select student.*,sc from student,sc where student.sno=sc.sno;(不需要加括号,但是要授权之后才能运行)

查看视图:

  Select * from 视图名 ;

创建序列:

Create sequence 序列名
     Start With i(指定要产生的第一个序列数 (如果该子句被省略,序列从1 开始) )
     Increment by j(指定序列号之间的间隔,在这儿 j 是一个整数 (如果该子句 被省略,序列增量为1))
     Maxvalue m(指定序列能产生的最大值)minvalue n(指定最小序列值)
     Cycie(指定序列在达到它的最大或最小值之后,是否继续产生)
     Cache n (定Oracle服务器预先分配多少值,并且保持在内存中(默认 情况下,Oracle服务器缓冲20个值)) ;(以上每项不写均有默认值,不需要了解)

查看用户有哪些序列:

  Select* from user_sequences;

删除序列:

  Drop sequence 序列名 ;

获取序列当前值:

  Select 序列名.currval from dual;

获取序列的下一个值:

  Select 序列名.nextcal from dual;`

插入表数据时自动获取序列号(不能重复):

  Insect into 表名(编号列名,列名)values(序列名.nextcal,值);

制作表的自增ID:

  Creact or replace trigger 取名
  Before insert on 表名 (在对XX表执行insert语句之前触发)
  For each row (作用到每一行,不写自动默认)
  When (new.id is null)(当新的一行的ID字段是空的时候)
  Begin
    Select 序列名.nextval into:new.id from dual ;
  End;

查看约束:

  Select * from 系统表 where 系统表名中的列名 = upper(系统表名中的列名);

删除约束:

  Alter table 表名 drop constraint 约束名;

检查约束:

  Alter table 表名 add constraint  约束取名 check(列名和条件 如:salary >2000);


相关文章:

SQL建立数据库:创建和使用数据库

SQL语句的21个好习惯,建议收藏

干货篇:SQL基础快速入门,新手必读!

SQL语句性能分析和优化,值得一看的干货!

更多技术资讯,请继续关注六星教育社区-程序员编程技术分享交流学习高端论坛

如果你想用Python开辟副业赚钱,但不熟悉爬虫与反爬虫技术,没有接单途径,也缺乏兼职经验
关注下方微信公众号:Python编程学习圈,获取价值999元全套Python入门到进阶的学习资料以及教程,还有Python技术交流群一起交流学习哦。

attachments-2022-06-QqPdG9gA62abf1c881deb.jpeg

  • 发表于 2021-05-05 14:12
  • 阅读 ( 3861 )
  • 分类:数据库

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
轩辕小不懂
轩辕小不懂

2403 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1478 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章