SQL 常用语句书写格式以及示例

本文全面介绍了SQL语言的基础操作,包括创建、删除、重命名表,添加、删除、修改列,插入、查询、更新、删除数据,以及各种数据处理函数和高级查询技巧。适合初学者快速掌握SQL基本语法。

创建表:

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);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值