SQL语法总结

这是我边学边总结的,总共花了一天一夜的时间,查资料和看视频完成的,但我对单行函数和多行函数没有做过多的研究,因为者可以查文档。还有就是多表查询研究也比较浅,这可以在以后用到的时候在具体研究。   还有就是要熟悉数据库的操作,增删改查,这些都要相当熟练,忘记时要及时看笔记。

 

 

SQL语言:
1.......数据类型
char(10)(这个是用来存储指定存储大小的字符开辟的空间为10),
varchar2(10)(这个是用来存储字符,开辟的空间为10当存储的字符空间不到10时多余的空间自动收回,中文站两个空间),number(10)(用来存储整数),number(10,3)(用来存储小数,一共10位小数占三位),date(用来存储日期)。


2.......创建表
例:
create table fg_user
( name char(10),
age number(3),
salary number(7,2),
birthday date
);
fg_user是表名(fg是前缀)。

3.......查询表
desc fg_user是查询表的(看看创建了那些类容如:name,age,salary,birthday等)。

4.......向表中写入数据:insert into fg_user values('冯俊','19','-700',','11-7月-1990');
当有的数据不确定时可以用后面两种写法中的一种:
insert into fg_user values('冯俊',19,-700,'11-7月-1990');
insert into fg_user values('黄小明',31,null,null);
insert into fg_user(name,age) values('李连杰',41);
commit;

5.......提交表
写完后要提交,不然不保存。提交是commit

6.......查询提交的表中的数据(限制的是列 如:select salary)
select * from fg_user;
select的使用方法:select name||'的工资'||salary from fg_user;
                   select name,salary from fg_user;
   别名的使用:   select name,salary from fg_user;
                  select name||'的工资'||salary sss from fg_user;当有格式限制时别名加双引号"s ss"。
   去重复行distinct(不显示重复的):
                   select distinct name,age,salary from fg_user;
                   select distinct name from fg_user;   (根据要求而定)。                               使用where语句来限定返回的记录:(不等于的符号是 <>)
                   select age from fg_user where age>19;(age可以变和前面一样。name,salary)
               范围:select age from fg_user where age>19 and age<38;
                    还可以是:select * from fg_user where age between 19 and 38;(小的放前面)           使用in语句方便写入多个条件
                    select age from fg_user where age in(19,41);
    使用like语句实现模糊查询(%代表零或多个字符 _代表一个字符)
                      select * from fg_user where name like '_云';
                       select * from fg_user where name like '_云%';
       is语句用来查询控制的记录:
                      select * from fg_user where age is null;
                      select * from fg_user where age is not null;  
        组合运算符:        
                    not     and   or (按优先级排的not最高)
           select * from fg_user where (name='冯俊' or name='马云') and salary>1000;
        查询结果排序:
               asc(升)   desc(降)    (默认是asc--升序)
              select * from fg_user order by salary desc;       
        多条件排序
                 select * from fg_user order by salary desc,age asc;

7......to_date函数的作用
insert into fg_user values('贝志诚',29,13000,to_date('1980-6-11','YYYY-MM-DD'));

8......写入时间(HH24-MI-SS)
insert into fg_user values('马云',43,14000,to_date('1978-8-11 21-32-11','YYYY-MM-DD HH24-MI-SS'));

9.......查询时间的方法
select to_char(birthday,'YYYY-MM-DD HH24-MI-SS') from fg_user;
但没有写入时间时HH24-MI-SS部分默认为00-00-00.

10......系统当前时间
sysdate函数。


11........修改 update
                update 表名 set 字段=值,字段=值 where 条件;
                第二个字段要保证数据的唯一性(唯一的id)。不然符合条件的数据都要改
              update fg_user set name='冯俊杰',___________    where name='冯俊';
              例: update fg_user set name='冯俊杰' where name='冯俊';


12.........删除 delete
             delete 表名 where 条件;
            delete fg_user where age=34;

13.........系统提供的用来标记唯一性记录的函数
               rowid;(但此数据ID标记是系统提供的,我们不能时便改变,所以还是用自己写的)
           select name,salary,rowid from fg_user;


函数:
1..........upper(将字母转换为大写的)单行函数
           select salary from fg_user where upper(name)='FENGJUN';
2..........svg(取平均值)多行函数或组函数
            select avg(salary) from fg_user;

 


多表查询:
   1.等值连接
      /*
create table f_student
(
    stuid number(3),
    stuname varchar2(10),
    password varchar2(10),
    idname varchar(10)
);
*/
/*
insert into f_student values(1,'fg0711','001','fg');
insert into f_student values(2,'黄晓明','002','hxm');
insert into f_student values(3,'温家','003','wj');
insert into f_student values(4,'福布斯','004','fbs');
*/

/*
create table d_part
(
    stuid number(3),
    departname varchar2(10),
    departadr varchar2(10),
    schoolname varchar2(10)
);
commit;
*/
/*
insert into d_part values(1,'001','计算机','城建');
insert into d_part values(2,'002','艺术','城建');
insert into d_part values(3,'003','马克思','城建');
insert into d_part values(4,'004','计算机','城建');
commit;
*/
/*
create table c_college
(
   sid number(3),
   adr varchar2(10),
   name varchar2(10)
);
commit;
*/
/*
insert into c_college values(1,'中国','城建');
insert into c_college values(2,'中国','城建');
insert into c_college values(3,'中国','城建');
insert into c_college values(4,'美国','城建');
commit;
*/
select f.stuid,f.stuname,d.departname,d.schoolname,d.departadr,c.adr
from f_student f,d_part d,c_college c
where f.stuid=d.stuid and f.stuid=c.sid ;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值