【sql学习】sql常用语法汇总

一、字符串函数是oracle使用最广泛的一种函数(表是参考sql查询介绍(二)中的表). 
A、LOWER(参数):把参数变成小写 
例如:查询名称为scott的员工信息 (不区分大小写的查询) 
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp  where lower(ename)='scott'; 
输出的结果是: 
EMPNO ENAME      JOB         MGR HIREDATE          SAL      COMM DEPTNO 
----- ---------- --------- ----- ----------- --------- --------- ------ 
7788 SCOTT      ANALYST    7566 1982-12-9     3000.00               20 

B、UPPER(参数):把参数变成大写 
例如:查询名称为scott的员工信息 (不区分大小写的查询) 
SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp  where upper(ename)='scott'; 
输出的结果是: 
EMPNO ENAME      JOB         MGR HIREDATE          SAL      COMM DEPTNO 
----- ---------- --------- ----- ----------- --------- --------- ------ 
7788 SCOTT      ANALYST    7566 1982-12-9     3000.00               20 

C、INITCAP(参数): 把参数的首字母大写 
例如:查找员工编号是7788的信息,他的名字显示成首字母大写 
SQL> select empno,initcap(ename),job,mgr,hiredate,sal,comm,deptno from emp where empno='7788'; 
显示结果是: 
EMPNO INITCAP(ENAME) JOB         MGR HIREDATE          SAL      COMM DEPTNO 
----- -------------- --------- ----- ----------- --------- --------- ------ 
7788 Scott          ANALYST    7566 1982-12-9     3000.00               20 

D、LENGTH(参数): 返回参数的长度 
例如:输出员工编号是7788的job的长度 
SQL> select length(job) as "7788的job的length" from emp where empno=7788; 
显示的结果如下: 
  7788的job的length 
----------------- 
                7 

E、CONCAT(参数1,参数2): 把参数1和参数2连接起来 
例如:把员工7788的工资显示成:薪水+奖金 
SQL> select empno,ename,job,mgr,hiredate,concat(sal,comm) as "工资",deptno from emp where empno='7788'; 
显示的结果如下: 
EMPNO   ENAME    JOB     MGR   HIREDATE     工资              DEPTNO 
-----   ------   ------  ----- -----------  ----------------  ------ 
7788    SCOTT    ANALYST 7566  1982-12-9    3000              20 

F、SUBSTR(参数,开始,截取数目): 截取参数  
例如:输出员工编号是7788的job的后三位 
SQL> select empno,ename,job,substr(job,length(job)-2,3) as "job的后三位" from emp where empno=7788; 或:
select empno,ename,job,substr(job,length(job)-2) as "job的后三位" from emp where empno=7788;显示的结果如下: 
EMPNO ENAME      JOB       job的后三位 
----- ---------- --------- ------------ 
7788 SCOTT      ANALYST   YST 


G、INSTR(参数,字母): 返回字母首次出现的位置 
例如:查找用户7788的名字中‘T’出现的位置 
SQL> select empno,ename,instr(ename,'T') as "T首次出现的位置" from emp where empno=7788; 
显示的结果如下: 
EMPNO ENAME             T首次出现的位置 
----- ---------- --------------- 
7788 SCOTT                    4 

H、LPAD(参数,长度,在前补齐参数字母):向左补齐
例如:查找用户是7788的薪水,如果不够4位的话,前面补0 
SQL>  select empno,ename,sal,lpad(sal,6,'0') as "薪水是6位的格式" from emp where empno=7788; 
显示的结果如下: 
EMPNO ENAME            SAL 薪水是6位的格式 
----- ---------- --------- ------------------------ 
7788 SCOTT        3000.00 003000 

I、RPAD(参数,长度,在后补齐参数字母):向右补齐
例如:查找用户是7788的薪水,如果不够4位的话,前面补0 
SQL>  select empno,ename,sal,rpad(sal,6,'0') as "薪水是6位的格式" from emp where empno=7788; 
显示的结果如下: 
EMPNO ENAME            SAL 薪水是6位的格式 
----- ---------- --------- ------------------------ 
7788 SCOTT        3000.00 300000 

J、TRIM([both||leadingtrailing||]字母 from 参数):从参数中去掉指定的字母 
例如:查找员工编号是7788的去掉“T”后的员工姓名
SQL> select empno,ename,trim('T' from ename) as "去掉T后" from emp where empno=7788; 
或 
SQL> select empno,ename,trim(both 'T' from ename) as "去掉T后" from emp where empno=7788; 
显示的结果如下: 
EMPNO ENAME      去掉T后 
----- ---------- ---------- 
7788 SCOTT      SCO 

例如:查找员工编号是7788的去掉左边的“T”后的员工姓名
SQL> select empno,ename,trim(leading 'T' from ename) as "去掉T后" from emp where empno=7788; 
或: 
SQL> select empno,ename,ltrim(ename,'T') as "去掉T后" from emp where empno=7788; 
显示的结果如下: 
EMPNO ENAME      去掉T后 
----- ---------- ---------- 
7788 SCOTT      SCOTT 

例如:查找员工编号是7788的去掉右边的“T”后的员工姓名
SQL> select empno,ename,trim(trailing 'T' from ename) as "去掉T后" from emp where empno=7788; 
或: 
SQL> select empno,ename,rtrim(ename,'T') as "去掉T后" from emp where empno=7788; 
显示的结果如下: 
EMPNO ENAME      去掉T后 
----- ---------- ---------- 
7788 SCOTT      SCO 

K、REPLACE:(参数,参数[,参数]): 第一个参数操作数,第二是要查找的字符,第三个是替换的字符,如果没有第三个就删除查找的字符。 
例如:把编号7788的员工姓名中的‘T’换成‘L’ 
SQL> select empno,ename,replace(ename,'T','L') as "替换后" from emp where empno=7788; 
显示的结果如下: 
EMPNO ENAME      替换后 
----- ---------- ---------- 
7788 SCOTT      SCOLL 



二、数字函数 
A、ROUND(参数): 四舍五入 
例如:查找12.89的四舍五入 
SQL> select round(12.89) from dual; 
显示的结果如下: 
ROUND(12.89) 
------------ 
          13 

B、TRUNC(参数1[,参数2]): 截断 ,第一个参数是要操作的数,第二个参数可有可无,如果没有的话,截断的是整数部分,如果参数2是正数的话,截取小数点右边的‘参数2’个数,如果是负数的话,截取小数点左边的“参数2”个数 
例如:采用默认的方式 
SQL> select trunc(12.89) from dual; 
显示的结果: 
TRUNC(12.89) 
------------ 
          12 

例如:第二个参数是正数的时候 
SQL> select trunc(12.89,1) from dual; 
显示的结果: 
TRUNC(12.89,1) 
-------------- 
          12.8 

例如:第二个参数是负数的时候 
SQL> select trunc(12.89,-1) from dual; 
显示的结果: 
TRUNC(12.89,-1) 
--------------- 
             10 

C、MOD(参数1,参数2): 求参数1除以参数2后的余数 
例如:100除以30的余数 
SQL> select mod(100,30) from dual; 
显示的结果: 
MOD(100,30) 
----------- 
         10 

D、ABS(参数):求参数的绝对值 
例如:求-10 的绝对值 
SQL> select abs(-10) from dual; 
显示的结果: 
  ABS(-10) 
---------- 
        10 
E、CEIL(参数):返回大于或等于参数的最小整数 
SQL> select ceil(-10.23) from dual; 
显示的结果: 
CEIL(-10.23) 
------------ 
         -10 

F、FLOOR(参数):返回小于或等于参数的最大整数 
例如:求-10.23的向下取整 
SQL> select floor(-10.23) from dual; 
显示的结果: 
FLOOR(-10.23) 
------------ 
         -11 

G、SQRT(参数) :返回参数的平方根 负数无意义。 
例如:求4的平方根 
SQL> select sqrt(4) from dual; 
显示的结果: 
   SQRT(4) 
---------- 
         2 
日期函数:Oracle 中的日期型数据实际含有两个值: 日期和时间。默认的日期格式是 DD-MON-RR.日期时间函数用来返回当前系统的日期和时间、以及对日期和时间类型的数据进行处理运算。 
A、sysdate();获取系统的当前日期 
例如: 
SQL> select sysdate from dual; 
显示的结果是: 
SYSDATE 
----------- 
2011-4-8 13 
B、current_timestamp();获取当前的时间和日期值 
例如: 
SQL> select current_timestamp from dual; 
显示的结果是: 
CURRENT_TIMESTAMP 
-------------------------------------------------------------------------------- 
08-4月 -11 01.38.27.546000 下午 +08:00 

C、add_months(date,count):在指定的日期上增加count个月 
例如:输出当前时间的加上3个月的后的时间 
SQL> select add_months(sysdate,3) from dual; 
显示结果: 
ADD_MONTHS(SYSDATE,3) 
--------------------- 
2011-7-8 13:43:06 
D、last_day(date);返回日期date所在月的最后一天 
例如: 
SQL> select sysdate,last_day(sysdate) from dual; 
显示结果: 
SYSDATE     LAST_DAY(SYSDATE) 
----------- ----------------- 
2011-4-8 13 2011-4-30 13:51:2 
E、months_between(date1,dates);返回date1到date2之间间隔多少个月 
例如: 
SQL> select sysdate,months_between(sysdate,add_months(sysdate,3)) from dual; 
显示结果: 
SYSDATE     MONTHS_BETWEEN(SYSDATE,ADD_MON 
----------- ------------------------------ 
2011-4-8 13                             -3 
F、new_time(date,'this','other');将时间date从this时区转换成other时区 
例如: 
SQL> select sysdate,new_time(sysdate,'GMT','AST') from dual; 
显示结果: 
SYSDATE     NEW_TIME(SYSDATE,'GMT','AST') 
----------- ----------------------------- 
2011-4-8 13 2011-4-8 9: 
G、next_day(day,'week');返回指定日期或最后一的第一个星期几的日期,这里day为星期几 
例如: 
SQL> select sysdate,next_day(sysdate,'星期五') from dual; 
显示结果: 
SYSDATE     NEXT_DAY(SYSDATE,'星期五') 
----------- -------------------------- 
2011-4-8 13 2011-4-15 13:53:10 

H、round(参数,截取类型):日期的四舍五入 
例如:四舍五入当前时间年 
SQL> select sysdate,round(sysdate,'yyyy') from dual; 
显示结果: 
SYSDATE     ROUND(SYSDATE,'YYYY') 
----------- --------------------- 
2011-4-9 22 2011-1-1 
例如:四舍五入当前时间月 
SQL> select sysdate,round(sysdate,'mm') from dual; 
显示结果: 
SYSDATE     ROUND(SYSDATE,'MM') 
----------- ------------------- 
2011-4-9 22 2011-4-1 
例如:四舍五入当前时间日 
SQL> select sysdate,round(sysdate,'dd') from dual; 
显示的结果: 
SYSDATE     ROUND(SYSDATE,'DD') 
----------- ------------------- 
2011-4-9 22 2011-4-10 
I、to_char(参数,转换的类型): 日期的截取 
例如:截取当前时间的年 
SQL> select sysdate,to_char(sysdate,'yyyy') from dual; 

显示结果: 
SYSDATE     TO_CHAR(SYSDATE,'YYYY') 
----------- ----------------------- 
2011-4-9 22 2011 
例如:截取当前时间的月 
SQL> select sysdate,to_char(sysdate,'mm') from dual; 
显示结果: 
SYSDATE     TO_CHAR(SYSDATE,'MM') 
----------- --------------------- 
2011-4-9 22 04 
例如:截取当前时间的日 
SQL> select sysdate,to_char(sysdate,'dd') from dual; 
显示结果: 
SYSDATE     TO_CHAR(SYSDATE,'DD') 
----------- --------------------- 
2011-4-9 22 09 

日期的数学运算: 
在日期上加上或减去一个数字结果仍为日期。 
两个日期相减返回日期之间相差的天数。 
可以用数字除24来向日期中加上或减去小时 
通用函数 
这些函数适用于任何数据类型,同时也适用于空值: 
A、NVL (expr1, expr2):如果expr1为空的话,显示expr2 
例如:查看emp如奖金comm为空的话,替换成0 
SQL> select empno,ename,job,mgr,hiredate,sal,nvl(comm,0),deptno from emp; 
显示结果: 
EMPNO ENAME      JOB         MGR HIREDATE          SAL NVL(COMM,0) DEPTNO 
----- ---------- --------- ----- ----------- --------- ----------- ------ 
7369 SMITH      CLERK      7902 1980-12-17     800.00           0     20 
7499 ALLEN      SALESMAN   7698 1981-2-20     1600.00         300     30 
7521 WARD       SALESMAN   7698 1981-2-22     1250.00         500     30 
7566 JONES      MANAGER    7839 1981-4-2      2975.00           0     20 
7654 MARTIN     SALESMAN   7698 1981-9-28     1250.00        1400     30 
7698 BLAKE      MANAGER    7839 1981-5-1      2850.00           0     30 
7782 CLARK      MANAGER    7839 1981-6-9      2450.00           0     10 
7788 SCOTT      ANALYST    7566 1982-12-9     3000.00           0     20 
7839 KING       PRESIDENT       1981-11-17    5000.00           0     10 
7844 TURNER     SALESMAN   7698 1981-9-8      1500.00           0     30 
7876 ADAMS      CLERK      7788 1983-1-12     1100.00           0     20 
7900 JAMES      CLERK      7698 1981-12-3      950.00           0     30 
7902 FORD       ANALYST    7566 1981-12-3     3000.00           0     20 
7934 MILLER     CLERK      7782 1982-1-23     1300.00           0     10 

14 rows selected 
B、NVL2 (expr1, expr2, expr3):如果expr1为不空的话,显示expr2,如果expr1为空的话,显示expr3 
例如:查找员工的编号是7521的员工的工资,如果奖金(comm)不为空的话,显示工资加奖金 
SQL> select sal,nvl2(comm,sal+comm,sal) from emp where empno=7521; 
显示结果: 
      SAL NVL2(COMM,SAL+COMM,SAL) 
--------- ----------------------- 
  1250.00                    1750 
C、NULLIF (expr1, expr2):expr1与expr2相等返回NULL,不等返回expr1 
例如:查看员工7788的薪水和奖金,如果薪水和奖金相等的话返回null,否则返回工资 
SQL> select sal,comm,nullif(sal,comm) from emp where empno=7788; 
显示结果: 
      SAL      COMM NULLIF(SAL,COMM) 
--------- --------- ---------------- 
  3000.00                       3000 
D、COALESCE (expr1, expr2, ..., exprn):如果第一个表达式为空,则返回下一个表达式。COALESCE 与 NVL 相比的优点在于 COALESCE 可以同时处理交替的多个值 
例如:在emp表中测试的 
为了测试,向emp表中添加一条记录: 
SQL> insert into emp(empno,ename,deptno) values(7978,'guo',10); 
测试语句: 
SQL>  select empno,ename,job,mgr,hiredate,sal,comm,deptno,coalesce(comm,sal,1000) as "测试结果" from emp; 
显示结果: 
EMPNO ENAME      JOB         MGR HIREDATE          SAL      COMM DEPTNO       测试结果 
----- ---------- --------- ----- ----------- --------- --------- ------ ---------- 
7369 SMITH      CLERK      7902 1980-12-17     800.00               20        800 
7499 ALLEN      SALESMAN   7698 1981-2-20     1600.00    300.00     30        300 
7521 WARD       SALESMAN   7698 1981-2-22     1250.00    500.00     30        500 
7566 JONES      MANAGER    7839 1981-4-2      2975.00               20       2975 
7654 MARTIN     SALESMAN   7698 1981-9-28     1250.00   1400.00     30       1400 
7698 BLAKE      MANAGER    7839 1981-5-1      2850.00               30       2850 
7782 CLARK      MANAGER    7839 1981-6-9      2450.00               10       2450 
7788 SCOTT      ANALYST    7566 1982-12-9     3000.00               20       3000 
7839 KING       PRESIDENT       1981-11-17    5000.00               10       5000 
7844 TURNER     SALESMAN   7698 1981-9-8      1500.00      0.00     30          0 
7876 ADAMS      CLERK      7788 1983-1-12     1100.00               20       1100 
7900 JAMES      CLERK      7698 1981-12-3      950.00               30        950 
7902 FORD       ANALYST    7566 1981-12-3     3000.00               20       3000 
7934 MILLER     CLERK      7782 1982-1-23     1300.00               10       1300 
7978 guo                                                            10       1000 

15 rows selected 


组合函数: 
分组函数作用于一组数据,并对一组数据返回一个值。  
A、AVG(字段名):求该字段的平均值 
例如:求出emp表中工资的平均值 
SQL> select avg(nvl(sal,0)) from emp; 
显示结果: 
AVG(NVL(SAL,0)) 
--------------- 
           1935 
B、COUNT(字段名):求该字段中的总记录 
例如:查询emp表中有几条记录 
SQL> select count(*) from emp; 
显示结果: 
  COUNT(*) 
---------- 
        15 
C、MAX(字段名):求该字段的最大值 
例如:求出emp表中的最高的工资的员工 
SQL> select max(nvl(sal,0)) from emp; 
显示结果: 
MAX(NVL(SAL,0)) 
--------------- 
           5000 
D、MIN(字段名):求该字段的最小值 
例如:求出emp表中的最低的工资的员工 
SQL> select min(nvl(sal,0)) from emp; 
显示结果: 
MIN(NVL(SAL,0)) 
--------------- 
              0 
E、SUM(字段名):求该字段的和 
例如:求emp一个需要发多少工资 
SQL> select sum(sal)+sum(comm) as "总工资" from emp; 
显示结果: 
MIN(NVL(SAL,0)) 
--------------- 
              0 

非法使用组函数 
A、所用包含于SELECT 列表中,而未包含于组函数中的列都必须包含于 GROUP BY 子句中。 
例如: 
SQL> select empno,count(job) from emp; 
正确写法如下: 
SQL> select empno,count(job) from emp group by empno; 
B、不能在 WHERE 子句中使用组函数(注意)。 
例如:SQL> select deptno from emp where count(job)>0 group by deptno; 
备注:ORA-00934: 此处不允许使用分组函数 


group by 语句 
如果在查询的过程中需要按某一列的值进行分组,以统计该组内数据的信息时,就要使用group by子句。不管select是否使用了where子句都可以使用group by子句。 
注意:group by子句一定要与分组函数结合使用,否则没有意义。 

求出每个部门的员工的数 
SQL> select count(*) from emp group by deptno; 
显示的结果: 
  COUNT(*) 
---------- 
         6 
         5 
         4 
求每个部门的中员工的平均工资 
SQL> select avg(nvl(sal,0)) from emp group by deptno; 
显示的结果: 
AVG(NVL(SAL,0)) 
--------------- 
1566.6666666666 
           2175 
         2187.5 

Having子句 
HAVING 子句对 GROUP BY 子句设置条件的方式与 WHERE 子句和 SELECT 语句交互的方式类似。WHERE 子句搜索条件在进行分组操作之前应用;而 HAVING 搜索条件在进行分组操作之后应用。HAVING 语法与 WHERE 语法类似,但 HAVING 可以包含聚合函数。HAVING 子句可以引用选择列表中出现的任意项。 
备注:having子句通常与group by子句结合使用 

语法: 
SELECT column, group_function 
FROM table 
[WHERE condition] 
[GROUP BY group_by_expression] 
[HAVING group_condition] 
[ORDER BY column]; 

A、查询部门的员工人数大于五部门编号 
SQL> select deptno,count(*) from emp group by deptno having count(*)>5; 
显示结果: 
DEPTNO   COUNT(*) 
------ ---------- 
    30          6 

备注:分组函数可以嵌套 


Order by语句 
ORDER BY 子句在SELECT语句的结尾。使用 ORDER BY 子句排序 :ASC(ascend): 升序 ;DESC(descend): 降序 。默认的是ASC升序 
查询员工信息按照部门的编号进行升序排列 
SQL>  select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp order by empno; 
或: 
SQL>  select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp order by empno asc; 
显示的结果: 
EMPNO ENAME      JOB         MGR HIREDATE          SAL      COMM DEPTNO 
----- ---------- --------- ----- ----------- --------- --------- ------ 
7369 SMITH      CLERK      7902 1980-12-17     800.00               20 
7499 ALLEN      SALESMAN   7698 1981-2-20     1600.00    300.00     30 
7521 WARD       SALESMAN   7698 1981-2-22     1250.00    500.00     30 
7566 JONES      MANAGER    7839 1981-4-2      2975.00               20 
7654 MARTIN     SALESMAN   7698 1981-9-28     1250.00   1400.00     30 
7698 BLAKE      MANAGER    7839 1981-5-1      2850.00               30 
7782 CLARK      MANAGER    7839 1981-6-9      2450.00               10 
7788 SCOTT      ANALYST    7566 1982-12-9     3000.00               20 
7839 KING       PRESIDENT       1981-11-17    5000.00               10 
7844 TURNER     SALESMAN   7698 1981-9-8      1500.00      0.00     30 
7876 ADAMS      CLERK      7788 1983-1-12     1100.00               20 
7900 JAMES      CLERK      7698 1981-12-3      950.00               30 
7902 FORD       ANALYST    7566 1981-12-3     3000.00               20 
7934 MILLER     CLERK      7782 1982-1-23     1300.00               10 
7978 guo                                                            10 

15 rows selected 
查询员工信息按照部门的编号进行降序排列 
SQL>  select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp order by empno desc; 
显示的结果: 
EMPNO ENAME      JOB         MGR HIREDATE          SAL      COMM DEPTNO 
----- ---------- --------- ----- ----------- --------- --------- ------ 
7978 guo                                                            10 
7934 MILLER     CLERK      7782 1982-1-23     1300.00               10 
7902 FORD       ANALYST    7566 1981-12-3     3000.00               20 
7900 JAMES      CLERK      7698 1981-12-3      950.00               30 
7876 ADAMS      CLERK      7788 1983-1-12     1100.00               20 
7844 TURNER     SALESMAN   7698 1981-9-8      1500.00      0.00     30 
7839 KING       PRESIDENT       1981-11-17    5000.00               10 
7788 SCOTT      ANALYST    7566 1982-12-9     3000.00               20 
7782 CLARK      MANAGER    7839 1981-6-9      2450.00               10 
7698 BLAKE      MANAGER    7839 1981-5-1      2850.00               30 
7654 MARTIN     SALESMAN   7698 1981-9-28     1250.00   1400.00     30 
7566 JONES      MANAGER    7839 1981-4-2      2975.00               20 
7521 WARD       SALESMAN   7698 1981-2-22     1250.00    500.00     30 
7499 ALLEN      SALESMAN   7698 1981-2-20     1600.00    300.00     30 
7369 SMITH      CLERK      7902 1980-12-17     800.00               20 

15 rows selected 
按部门升序,员工编号降序查询 
SQL>  select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp order by deptno asc,empno desc; 
显示的结果: 
EMPNO ENAME      JOB         MGR HIREDATE          SAL      COMM DEPTNO 
----- ---------- --------- ----- ----------- --------- --------- ------ 
7978 guo                                                            10 
7934 MILLER     CLERK      7782 1982-1-23     1300.00               10 
7839 KING       PRESIDENT       1981-11-17    5000.00               10 
7782 CLARK      MANAGER    7839 1981-6-9      2450.00               10 
7902 FORD       ANALYST    7566 1981-12-3     3000.00               20 
7876 ADAMS      CLERK      7788 1983-1-12     1100.00               20 
7788 SCOTT      ANALYST    7566 1982-12-9     3000.00               20 
7566 JONES      MANAGER    7839 1981-4-2      2975.00               20 
7369 SMITH      CLERK      7902 1980-12-17     800.00               20 
7900 JAMES      CLERK      7698 1981-12-3      950.00               30 
7844 TURNER     SALESMAN   7698 1981-9-8      1500.00      0.00     30 
7698 BLAKE      MANAGER    7839 1981-5-1      2850.00               30 
7654 MARTIN     SALESMAN   7698 1981-9-28     1250.00   1400.00     30 
7521 WARD       SALESMAN   7698 1981-2-22     1250.00    500.00     30 
7499 ALLEN      SALESMAN   7698 1981-2-20     1600.00    300.00     30 

15 rows selected 

创新互联公司专注于企业成都全网营销推广、网站重做改版、东至网站定制设计、自适应品牌网站建设、H5场景定制购物商城网站建设、集团公司官网建设、成都外贸网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为东至等各大城市提供网站开发制作服务。


名称栏目:【sql学习】sql常用语法汇总
本文地址:http://scyanting.com/article/jjshgh.html