mysql关键字都有哪些?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql关键字都有哪些?相关的知识,希望对你有一定的参考价值。

参考技术A

ADD ALL ALTER

ANALYZE AND AS

ASC ASENSITIVE BEFORE

BETWEEN BIGINT BINARY

BLOB BOTH BY

CALL CASCADE CASE

CHANGE CHAR CHARACTER

CHECK COLLATE COLUMN

CONDITION CONNECTION CONSTRAINT

CONTINUE CONVERT CREATE

CROSS CURRENT_DATE CURRENT_TIME

CURRENT_TIMESTAMP CURRENT_USER CURSOR

DATABASE DATABASES DAY_HOUR

DAY_MICROSECOND DAY_MINUTE DAY_SECOND

DEC DECIMAL DECLARE

DEFAULT DELAYED DELETE

DESC DESCRIBE DETERMINISTIC

DISTINCT DISTINCTROW DIV

DOUBLE DROP DUAL

EACH ELSE ELSEIF

ENCLOSED ESCAPED EXISTS

EXIT EXPLAIN FALSE

FETCH FLOAT FLOAT4

FLOAT8 FOR FORCE

FOREIGN FROM FULLTEXT

GOTO GRANT GROUP

HAVING HIGH_PRIORITY HOUR_MICROSECOND

HOUR_MINUTE HOUR_SECOND IF

IGNORE IN INDEX

INFILE INNER INOUT

INSENSITIVE INSERT INT

INT1 INT2 INT3

INT4 INT8 INTEGER

INTERVAL INTO IS

ITERATE JOIN KEY

KEYS KILL LABEL

LEADING LEAVE LEFT

LIKE LIMIT LINEAR

LINES LOAD LOCALTIME

LOCALTIMESTAMP LOCK LONG

LONGBLOB LONGTEXT LOOP

LOW_PRIORITY MATCH MEDIUMBLOB

MEDIUMINT MEDIUMTEXT MIDDLEINT

MINUTE_MICROSECOND MINUTE_SECOND MOD

MODIFIES NATURAL NOT

NO_WRITE_TO_BINLOG NULL NUMERIC

ON OPTIMIZE OPTION

OPTIONALLY OR ORDER

OUT OUTER OUTFILE

PRECISION PRIMARY PROCEDURE

PURGE RAID0 RANGE

READ READS REAL

REFERENCES REGEXP RELEASE

RENAME REPEAT REPLACE

REQUIRE RESTRICT RETURN

REVOKE RIGHT RLIKE

SCHEMA SCHEMAS SECOND_MICROSECOND

SELECT SENSITIVE SEPARATOR

SET SHOW SMALLINT

SPATIAL SPECIFIC SQL

SQLEXCEPTION SQLSTATE SQLWARNING

SQL_BIG_RESULT SQL_CALC_FOUND_ROWS SQL_SMALL_RESULT

SSL STARTING STRAIGHT_JOIN

TABLE TERMINATED THEN

TINYBLOB TINYINT TINYTEXT

TO TRAILING TRIGGER

TRUE UNDO UNION

UNIQUE UNLOCK UNSIGNED

UPDATE USAGE USE

USING UTC_DATE UTC_TIME

UTC_TIMESTAMP VALUES VARBINARY

VARCHAR VARCHARACTER VARYING

WHEN WHERE WHILE

WITH WRITE X509

XOR YEAR_MONTH ZEROFILL

MySQL的权限都有哪些

  MySQL的权限有哪些

    一.权限表


    mysql数据库中的3个权限表:user 、db、 host


    权限表的存取过程是:


    1)先从user表中的host、 user、 password这3个字段中判断连接的IP、用户名、密码是否存在表中,存在则通过身份验证;


    2)通过权限验证,进行权限分配时,按照useràdbàtables_privàcolumns_priv的顺序进行分配。即先检查全局权限表user,如果user中对应的权限为Y,则此用户对所有数据库的权限都为Y,将不再检查db, tables_priv,columns_priv;如果为N,则到db表中检查此用户对应的具体数据库,并得到db中为Y的权限;如果db中为N,则检查tables_priv中此数据库对应的具体表,取得表中的权限Y,以此类推。


    二.MySQL各种权限(共27个)


    (以下操作都是以root身份登陆进行grant授权,以p1@localhost身份登陆执行各种命令。)


    1. usage


    连接(登陆)权限,建立一个用户,就会自动授予其usage权限(默认授予)。


    mysql> grant usage on *.* to ‘p1′@’localhost’ identified by ‘123′;


    该权限只能用于数据库登陆,不能执行任何操作;且usage权限不能被回收,也即REVOKE用户并不能删除用户。


    2. select


    必须有select的权限,才可以使用select table


    mysql> grant select on pyt.* to ‘p1′@’localhost’;


    mysql> select * from shop;


    3. create


    必须有create的权限,才可以使用create table


    mysql> grant create on pyt.* to ‘p1′@’localhost’;


    4. create routine


    必须具有create routine的权限,才可以使用create |alter|drop procedure|function


    mysql> grant create routine on pyt.* to ‘p1′@’localhost’;


    当授予create routine时,自动授予EXECUTE, ALTER ROUTINE权限给它的创建者:


    mysql> show grants for ‘p1′@’localhost’;


    +—————————————————————————+


    Grants for p1@localhost


    +————————————————————————–+


    | GRANT USAGE ON *.* TO ‘p1′@’localhost’ IDENTIFIED BY PASSWORD ‘*23AE809DDACAF96AF0FD78ED04B6A265E05AA257′ |


    | GRANT SELECT, CREATE, CREATE ROUTINE ON `pyt`.* TO ‘p1′@’localhost’|


    | GRANT EXECUTE, ALTER ROUTINE ON PROCEDURE `pyt`.`pro_shop1` TO ‘p1′@’localhost’ |


    +————————————————————————————-+


    5. create temporary tables(注意这里是tables,不是table)


    必须有create temporary tables的权限,才可以使用create temporary tables.


    mysql> grant create temporary tables on pyt.* to ‘p1′@’localhost’;


    [mysql@mydev ~]$ mysql -h localhost -u p1 -p pyt


    mysql> create temporary table tt1(id int);


    6. create view


    必须有create view的权限,才可以使用create view


    mysql> grant create view on pyt.* to ‘p1′@’localhost’;


    mysql> create view v_shop as select price from shop;


    7. create user


    要使用CREATE USER,必须拥有mysql数据库的全局CREATE USER权限,或拥有INSERT权限。


    mysql> grant create user on *.* to ‘p1′@’localhost’;


    或:mysql> grant insert on *.* to p1@localhost;


    8. insert


    必须有insert的权限,才可以使用insert into ….. values….


    9. alter


    必须有alter的权限,才可以使用alter table


    alter table shop modify dealer char(15);


    10. alter routine


    必须具有alter routine的权限,才可以使用alter |drop procedure|function


    mysql>grant alter routine on pyt.* to ‘p1′@’ localhost ‘;


    mysql> drop procedure pro_shop;


    Query OK, 0 rows affected (0.00 sec)


    mysql> revoke alter routine on pyt.* from ‘p1′@’localhost’;


    [mysql@mydev ~]$ mysql -h localhost -u p1 -p pyt


    mysql> drop procedure pro_shop;


    ERROR 1370 (42000): alter routine command denied to user ‘p1′@’localhost’ for routine ‘pyt.pro_shop’


    11. update


    必须有update的权限,才可以使用update table


    mysql> update shop set price=3.5 where article=0001 and dealer=’A';


    12. delete


    必须有delete的权限,才可以使用delete from ….where….(删除表中的记录)


    13. drop


    必须有drop的权限,才可以使用drop database db_name; drop table tab_name;


    drop view vi_name; drop index in_name;


    14. show database


    通过show database只能看到你拥有的某些权限的数据库,除非你拥有全局SHOW DATABASES权限。


    对于p1@localhost用户来说,没有对mysql数据库的权限,所以以此身份登陆查询时,无法看到mysql数据库:


    mysql> show databases;


    +——————–+


    | Database |


    +——————–+


    | information_schema|


    | pyt |


    | test |


    +——————–+


    15. show view


    必须拥有show view权限,才能执行show create view。


    mysql> grant show view on pyt.* to p1@localhost;


    mysql> show create view v_shop;


    16. index


    必须拥有index权限,才能执行[create |drop] index


    mysql> grant index on pyt.* to p1@localhost;


    mysql> create index ix_shop on shop(article);


    mysql> drop index ix_shop on shop;


    17. excute


    执行存在的Functions,Procedures


    mysql> call pro_shop1(0001,@a);


    +———+


    | article |


    +———+


    | 0001 |


    | 0001 |


    +———+


    mysql> select @a;


    +——+


    | @a |


    +——+


    | 2 |


    +——+


    18. lock tables


    必须拥有lock tables权限,才可以使用lock tables


    mysql> grant lock tables on pyt.* to p1@localhost;


    mysql> lock tables a1 read;


    mysql> unlock tables;


    19. references


    有了REFERENCES权限,用户就可以将其它表的一个字段作为某一个表的外键约束。


    20. reload


    必须拥有reload权限,才可以执行flush [tables | logs | privileges]


    mysql> grant reload on pyt.* to p1@localhost;


    ERROR 1221 (HY000): Incorrect usage of DB GRANT and GLOBAL PRIVILEGES


    mysql> grant reload on *.* to ‘p1′@’localhost’;


    Query OK, 0 rows affected (0.00 sec)


    mysql> flush tables;


    21. replication client


    拥有此权限可以查询master server、slave server状态。


    mysql> show master status;


    ERROR 1227 (42000): Access denied; you need the SUPER,REPLICATION CLIENT privilege for this operation


    mysql> grant Replication client on *.* to p1@localhost;


    或:mysql> grant super on *.* to p1@localhost;


    mysql> show master status;


    +——————+———-+————–+——————+


    | File | Position | Binlog_Do_DB | Binlog_Ignore_DB |


    +——————+———-+————–+——————+


    | mysql-bin.000006 | 2111 | | |


    +——————+———-+————–+——————+


    mysql> show slave status;


    22. replication slave


    拥有此权限可以查看从服务器,从主服务器读取二进制日志。


    mysql> show slave hosts;


    ERROR 1227 (42000): Access denied; you need the REPLICATION SLAVE privilege for this operation


    mysql> show binlog events;


    ERROR 1227 (42000): Access denied; you need the REPLICATION SLAVE privilege for this operation


    mysql> grant replication slave on *.* to p1@localhost;


    mysql> show slave hosts;


    Empty set (0.00 sec)


    mysql>show binlog events;


    +—————+——-+—————-+———–+————-+————–+


    | Log_name | Pos | Event_type | Server_id| End_log_pos|Info | +—————+——-+————–+———–+————-+—————+


    | mysql-bin.000005 | 4 | Format_desc | 1 | 98 | Server ver: 5.0.77-log, Binlog ver: 4 | |mysql-bin.000005|98|Query|1|197|use `mysql`; create table a1(i int)engine=myisam|


    ……………………………………


    23. Shutdown


    关闭MySQL:


    [mysql@mydev ~]$ mysqladmin shutdown


    重新连接:


    [mysql@mydev ~]$ mysql


    ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2)


    [mysql@mydev ~]$ cd /u01/mysql/bin


    [mysql@mydev bin]$ ./mysqld_safe &


    [mysql@mydev bin]$ mysql


    24. grant option


    拥有grant option,就可以将自己拥有的权限授予其他用户(仅限于自己已经拥有的权限)


    mysql> grant Grant option on pyt.* to p1@localhost;


    mysql> grant select on pyt.* to p2@localhost;


    25. file


    拥有file权限才可以执行 select ..into outfile和load data infile…操作,但是不要把file, process, super权限授予管理员以外的账号,这样存在严重的安全隐患。


    mysql> grant file on *.* to p1@localhost;


    mysql> load data infile ‘/home/mysql/pet.txt’ into table pet;


    26. super


    这个权限允许用户终止任何查询;修改全局变量的SET语句;使用CHANGE MASTER,PURGE MASTER LOGS。


    mysql> grant super on *.* to p1@localhost;


    mysql> purge master logs before ‘mysql-bin.000006′;


    27. process


    通过这个权限,用户可以执行SHOW PROCESSLIST和KILL命令。默认情况下,每个用户都可以执行SHOW PROCESSLIST命令,但是只能查询本用户的进程。


    mysql> show processlist;


    +—-+——+———–+——+———+——+——-+——————+


    | Id | User | Host | db | Command | Time | State | Info |


    +—-+——+———–+——+———+——+——-+——————+


    | 12 | p1 | localhost | pyt | Query | 0 | NULL | show processlist |


    +—-+——+———–+——+———+——+——-+——————+


    另外,


    管理权限(如 super, process, file等)不能够指定某个数据库,on后面必须跟*.*


    mysql> grant super on pyt.* to p1@localhost;


    ERROR 1221 (HY000): Incorrect usage of DB GRANT and GLOBAL PRIVILEGES


    mysql> grant super on *.* to p1@localhost;


    Query OK, 0 rows affected (0.01 sec)

参考技术A MySQL各种权限(共27个)
(以下操作都是以root身份登陆进行grant授权,以p1@localhost身份登陆执行各种命令。)
1. usage
连接(登陆)权限,建立一个用户,就会自动授予其usage权限(默认授予)。
mysql> grant usage on *.* to ‘p1′@’localhost’ identified by ‘123′;
该权限只能用于数据库登陆,不能执行任何操作;且usage权限不能被回收,也即REVOKE用户并不能删除用户。
2. select
必须有select的权限,才可以使用select table
mysql> grant select on pyt.* to ‘p1′@’localhost’;
mysql> select * from shop;
3. create
必须有create的权限,才可以使用create table
mysql> grant create on pyt.* to ‘p1′@’localhost’;
4. create routine
必须具有create routine的权限,才可以使用create |alter|drop procedure|function
mysql> grant create routine on pyt.* to ‘p1′@’localhost’;
当授予create routine时,自动授予EXECUTE, ALTER ROUTINE权限给它的创建者:
mysql> show grants for ‘p1′@’localhost’;
+—————————————————————————+
Grants for p1@localhost
+————————————————————————–+
| GRANT USAGE ON *.* TO ‘p1′@’localhost’ IDENTIFIED BY PASSWORD ‘*23AE809DDACAF96AF0FD78ED04B6A265E05AA257′ |
| GRANT SELECT, CREATE, CREATE ROUTINE ON `pyt`.* TO ‘p1′@’localhost’|
| GRANT EXECUTE, ALTER ROUTINE ON PROCEDURE `pyt`.`pro_shop1` TO ‘p1′@’localhost’ |
+————————————————————————————-+
5. create temporary tables(注意这里是tables,不是table)
必须有create temporary tables的权限,才可以使用create temporary tables.
mysql> grant create temporary tables on pyt.* to ‘p1′@’localhost’;
[mysql@mydev ~]$ mysql -h localhost -u p1 -p pyt
mysql> create temporary table tt1(id int);
6. create view
必须有create view的权限,才可以使用create view
mysql> grant create view on pyt.* to ‘p1′@’localhost’;
mysql> create view v_shop as select price from shop;
7. create user
要使用CREATE USER,必须拥有mysql数据库的全局CREATE USER权限,或拥有INSERT权限。
mysql> grant create user on *.* to ‘p1′@’localhost’;
或:mysql> grant insert on *.* to p1@localhost;
8. insert
必须有insert的权限,才可以使用insert into ….. values….
9. alter
必须有alter的权限,才可以使用alter table
alter table shop modify dealer char(15);
10. alter routine
必须具有alter routine的权限,才可以使用alter |drop procedure|function
mysql>grant alter routine on pyt.* to ‘p1′@’ localhost ‘;
mysql> drop procedure pro_shop;
Query OK, 0 rows affected (0.00 sec)

mysql> revoke alter routine on pyt.* from ‘p1′@’localhost’;
[mysql@mydev ~]$ mysql -h localhost -u p1 -p pyt
mysql> drop procedure pro_shop;
ERROR 1370 (42000): alter routine command denied to user ‘p1′@’localhost’ for routine ‘pyt.pro_shop’
11. update
必须有update的权限,才可以使用update table
mysql> update shop set price=3.5 where article=0001 and dealer=’A';
12. delete
必须有delete的权限,才可以使用delete from ….where….(删除表中的记录)
13. drop
必须有drop的权限,才可以使用drop database db_name; drop table tab_name;
drop view vi_name; drop index in_name;
14. show database
通过show database只能看到你拥有的某些权限的数据库,除非你拥有全局SHOW DATABASES权限。
对于p1@localhost用户来说,没有对mysql数据库的权限,所以以此身份登陆查询时,无法看到mysql数据库:
mysql> show databases;
+——————–+
| Database |
+——————–+
| information_schema|
| pyt |
| test |
+——————–+
15. show view
必须拥有show view权限,才能执行show create view。
mysql> grant show view on pyt.* to p1@localhost;
mysql> show create view v_shop;
16. index
必须拥有index权限,才能执行[create |drop] index
mysql> grant index on pyt.* to p1@localhost;
mysql> create index ix_shop on shop(article);
mysql> drop index ix_shop on shop;
17. excute
执行存在的Functions,Procedures
mysql> call pro_shop1(0001,@a);
+———+
| article |
+———+
| 0001 |
| 0001 |
+———+
mysql> select @a;
+——+
| @a |
+——+
| 2 |
+——+
18. lock tables
必须拥有lock tables权限,才可以使用lock tables
mysql> grant lock tables on pyt.* to p1@localhost;
mysql> lock tables a1 read;
mysql> unlock tables;
19. references
有了REFERENCES权限,用户就可以将其它表的一个字段作为某一个表的外键约束。
20. reload
必须拥有reload权限,才可以执行flush [tables | logs | privileges]
mysql> grant reload on pyt.* to p1@localhost;
ERROR 1221 (HY000): Incorrect usage of DB GRANT and GLOBAL PRIVILEGES
mysql> grant reload on *.* to ‘p1′@’localhost’;
Query OK, 0 rows affected (0.00 sec)
mysql> flush tables;
21. replication client
拥有此权限可以查询master server、slave server状态。
mysql> show master status;
ERROR 1227 (42000): Access denied; you need the SUPER,REPLICATION CLIENT privilege for this operation
mysql> grant Replication client on *.* to p1@localhost;
或:mysql> grant super on *.* to p1@localhost;
mysql> show master status;
+——————+———-+————–+——————+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+——————+———-+————–+——————+
| mysql-bin.000006 | 2111 | | |
+——————+———-+————–+——————+
mysql> show slave status;
22. replication slave
拥有此权限可以查看从服务器,从主服务器读取二进制日志。
mysql> show slave hosts;
ERROR 1227 (42000): Access denied; you need the REPLICATION SLAVE privilege for this operation
mysql> show binlog events;
ERROR 1227 (42000): Access denied; you need the REPLICATION SLAVE privilege for this operation
mysql> grant replication slave on *.* to p1@localhost;
mysql> show slave hosts;
Empty set (0.00 sec)
mysql>show binlog events;
+—————+——-+—————-+———–+————-+————–+
| Log_name | Pos | Event_type | Server_id| End_log_pos|Info | +—————+——-+————–+———–+————-+—————+
| mysql-bin.000005 | 4 | Format_desc | 1 | 98 | Server ver: 5.0.77-log, Binlog ver: 4 | |mysql-bin.000005|98|Query|1|197|use `mysql`; create table a1(i int)engine=myisam|
……………………………………
23. Shutdown
关闭MySQL:
[mysql@mydev ~]$ mysqladmin shutdown
重新连接:
[mysql@mydev ~]$ mysql
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2)
[mysql@mydev ~]$ cd /u01/mysql/bin
[mysql@mydev bin]$ ./mysqld_safe &
[mysql@mydev bin]$ mysql
24. grant option
拥有grant option,就可以将自己拥有的权限授予其他用户(仅限于自己已经拥有的权限)
mysql> grant Grant option on pyt.* to p1@localhost;
mysql> grant select on pyt.* to p2@localhost;
25. file
拥有file权限才可以执行 select ..into outfile和load data infile…操作,但是不要把file, process, super权限授予管理员以外的账号,这样存在严重的安全隐患。
mysql> grant file on *.* to p1@localhost;
mysql> load data infile ‘/home/mysql/pet.txt’ into table pet;
26. super
这个权限允许用户终止任何查询;修改全局变量的SET语句;使用CHANGE MASTER,PURGE MASTER LOGS。
mysql> grant super on *.* to p1@localhost;
mysql> purge master logs before ‘mysql-bin.000006′;
27. process
通过这个权限,用户可以执行SHOW PROCESSLIST和KILL命令。默认情况下,每个用户都可以执行SHOW PROCESSLIST命令,但是只能查询本用户的进程。
mysql> show processlist;
+—-+——+———–+——+———+——+——-+——————+
| Id | User | Host | db | Command | Time | State | Info |
+—-+——+———–+——+———+——+——-+——————+
| 12 | p1 | localhost | pyt | Query | 0 | NULL | show processlist |
+—-+——+———–+——+———+——+——-+——————+
另外,
管理权限(如 super, process, file等)不能够指定某个数据库,on后面必须跟*.*
mysql> grant super on pyt.* to p1@localhost;
ERROR 1221 (HY000): Incorrect usage of DB GRANT and GLOBAL PRIVILEGES
mysql> grant super on *.* to p1@localhost;
Query OK, 0 rows affected (0.01 sec)本回答被提问者采纳
参考技术B

背景

在了解动态权限之前,我们先回顾下 MySQL 的权限列表。

权限列表大体分为服务级别和表级别,列级别以及大而广的角色(也是MySQL 8.0 新增)存储程序等权限。我们看到有一个特殊的 SUPER 权限,可以做好多个操作。比如 SET 变量,在从机重新指定相关主机信息以及清理二进制日志等。那这里可以看到,SUPER 有点太过强大,导致了仅仅想实现子权限变得十分困难,比如用户只能 SET 变量,其他的都不想要。那么 MySQL 8.0 之前没法实现,权限的细分不够明确,容易让非法用户钻空子。

那么 MySQL 8.0 把权限细分为静态权限和动态权限,下面我画了两张详细的区分图,图 1 为静态权限,图 2 为动态权限。

图 1- MySQL 静态权限的权限管理图

图 2-动态权限图

那我们看到其实动态权限就是对 SUPER 权限的细分。 SUPER 权限在未来将会被废弃掉。

我们来看个简单的例子,

比如, 用户 'ytt2@localhost', 有 SUPER 权限。

mysql> show grants for ytt2@'localhost';+---------------------------------------------------------------------------------+| Grants for ytt2@localhost                                                       |+---------------------------------------------------------------------------------+| GRANT INSERT, UPDATE, DELETE, CREATE, ALTER, SUPER ON *.* TO ytt2@localhost |+---------------------------------------------------------------------------------+1 row in set (0.00 sec)

但是现在我只想这个用户有 SUPER 的子集,设置变量的权限。那么单独给这个用户赋予两个能设置系统变量的动态权限,完了把 SUPER 给拿掉。

mysql> grant session_variables_admin,system_variables_admin on *.* to ytt2@'localhost';Query OK, 0 rows affected (0.03 sec)mysql> revoke super on *.* from ytt2@'localhost';Query OK, 0 rows affected, 1 warning (0.02 sec)

我们看到这个 WARNINGS 提示 SUPER 已经废弃了。

    mysql> show warnings;

    +---------+------+----------------------------------------------+

    | Level   | Code | Message                                      |

    +---------+------+----------------------------------------------+

    | Warning | 1287 | The SUPER privilege identifier is deprecated |

    +---------+------+----------------------------------------------+

    1 row in set (0.00 sec)`

    mysql> show grants for ytt2@'localhost';

    +-----------------------------------------------------------------------------------+

    | Grants for ytt2@localhost                                                         |

    +-----------------------------------------------------------------------------------+

    | GRANT INSERT, UPDATE, DELETE, CREATE, ALTER ON *.* TO ytt2@localhost          |

    | GRANT SESSION_VARIABLES_ADMIN,SYSTEM_VARIABLES_ADMIN ON *.* TO ytt2@localhost |

    +-----------------------------------------------------------------------------------+

    2 rows in set (0.00 sec)

    当然图 2 上还有其它的动态权限,这里就不做特别说明了。

以上是关于mysql关键字都有哪些?的主要内容,如果未能解决你的问题,请参考以下文章

mysql修改数据表的语法结构,关键字都有哪些

MySQL中常见的连接查询方式都有哪些?

MySQL都有哪些索引类型

mysql中的sql语句存在关键字怎么办?

mysql中的sql语句存在关键字怎么办

ASP常用的关键字都有哪些