??xml version="1.0" encoding="utf-8" standalone="yes"?>
1、说明:创徏数据?br>CREATE DATABASE database-name
2、说明:删除数据?br>drop database dbname
3、说明:备䆾sql server
--- 创徏 备䆾数据?device
USE master
EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'
--- 开?备䆾
BACKUP DATABASE pubs TO testBack
4、说明:创徏新表
create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)
Ҏ已有的表创徏新表Q?
AQcreate table tab_new like tab_old (使用旧表创徏新表)
BQcreate table tab_new as select col1,col2… from tab_old definition only
5、说明:删除新表
drop table tabname
6、说明:增加一个列
Alter table tabname add column col type
注:列增加后不能删除。DB2中列加上后数据类型也不能改变Q唯一能改变的是增加varcharcd的长度?br>7、说明:d主键Q?Alter table tabname add primary key(col)
说明Q删除主键: Alter table tabname drop primary key(col)
8、说明:创徏索引Qcreate [unique] index idxname on tabname(col….)
删除索引Qdrop index idxname
注:索引是不可更改的Q想更改必须删除重新建?br>9、说明:创徏视图Qcreate view viewname as select statement
删除视图Qdrop view viewname
10、说明:几个单的基本的sql语句
选择Qselect * from table1 where 范围
插入Qinsert into table1(field1,field2) values(value1,value2)
删除Qdelete from table1 where 范围
更新Qupdate table1 set field1=value1 where 范围
查找Qselect * from table1 where field1 like ’%value1%’ ---like的语法很_֦Q查资料!
排序Qselect * from table1 order by field1,field2 [desc]
LQselect count as totalcount from table1
求和Qselect sum(field1) as sumvalue from table1
q_Qselect avg(field1) as avgvalue from table1
最大:select max(field1) as maxvalue from table1
最:select min(field1) as minvalue from table1
11、说明:几个高查询q算?br>AQ?UNION q算W?
UNION q算W通过l合其他两个l果表(例如 TABLE1 ?TABLE2Qƈ消去表中M重复行而派生出一个结果表。当 ALL ?UNION 一起用时Q即 UNION ALLQ,不消除重复行。两U情况下Q派生表的每一行不是来?TABLE1 是来自 TABLE2?
BQ?EXCEPT q算W?
EXCEPT q算W通过包括所有在 TABLE1 中但不在 TABLE2 中的行ƈ消除所有重复行而派生出一个结果表。当 ALL ?EXCEPT 一起用时 (EXCEPT ALL)Q不消除重复行?
CQ?INTERSECT q算W?br>INTERSECT q算W通过只包?TABLE1 ?TABLE2 中都有的行ƈ消除所有重复行而派生出一个结果表。当 ALL ?INTERSECT 一起用时 (INTERSECT ALL)Q不消除重复行?
注:使用q算词的几个查询l果行必L一致的?
12、说明:使用外连?
A、left outer joinQ?
左外q接Q左q接Q:l果集几包括q接表的匚w行,也包括左q接表的所有行?
SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c
BQright outer join:
叛_q接(双?Q结果集既包括连接表的匹配连接行Q也包括双接表的所有行?
CQfull outer joinQ?
全外q接Q不仅包括符可接表的匹配行Q还包括两个q接表中的所有记录?/p>
二、提?/p>
1、说明:复制?只复制结?源表名:a 新表名:b) (Access可用)
法一Qselect * into b from a where 1<>1
法二Qselect top 0 * into b from a
2、说明:拯?拯数据,源表名:a 目标表名Qb) (Access可用)
insert into b(a, b, c) select d,e,f from b;
3、说明:跨数据库之间表的拯(具体数据使用l对路径) (Access可用)
insert into b(a, b, c) select d,e,f from b in ‘具体数据?#8217; where 条g
例子Q?.from b in '"&Server.MapPath(".")&"\data.mdb" &"' where..
4、说明:子查?表名1Qa 表名2Qb)
select a,b,c from a where a IN (select d from b ) 或? select a,b,c from a where a IN (1,2,3)
5、说明:昄文章、提交h和最后回复时?br>select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b
6、说明:外连接查?表名1Qa 表名2Qb)
select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c
7、说明:在线视图查询(表名1Qa )
select * from (SELECT a,b,c FROM a) T where t.a > 1;
8、说明:between的用?between限制查询数据范围时包括了边界?not between不包?br>select * from table1 where time between time1 and time2
select a,b,c, from table1 where a not between 数? and 数?
9、说明:in 的用方?br>select * from table1 where a [not] in (‘?’,’?’,’?’,’?’)
10、说明:两张兌表,删除主表中已l在副表中没有的信息
delete from table1 where not exists ( select * from table2 where table1.field1=table2.field1 )
11、说明:四表联查问题Q?br>select * from a left inner join b on a.a=b.b right inner join c on a.a=c.c inner join d on a.a=d.d where .....
12、说明:日程安排提前五分钟提?
SQL: select * from 日程安排 where datediff('minute',f开始时?getdate())>5
13、说明:一条sql 语句搞定数据库分?br>select top 10 b.* from (select top 20 主键字段,排序字段 from 表名 order by 排序字段 desc) a,表名 b where b.主键字段 = a.主键字段 order by a.排序字段
14、说明:?0条记?br>select top 10 * form table1 where 范围
15、说明:选择在每一lb值相同的数据中对应的a最大的记录的所有信?cMq样的用法可以用于论坛每月排行榜,每月热销产品分析,按科目成l排?{等.)
select a,b,c from tablename ta where a=(select max(a) from tablename tb where tb.b=ta.b)
16、说明:包括所有在 TableA 中但不在 TableB和TableC 中的行ƈ消除所有重复行而派生出一个结果表
(select a from tableA ) except (select a from tableB) except (select a from tableC)
17、说明:随机取出10条数?br>select top 10 * from tablename order by newid()
18、说明:随机选择记录
select newid()
19、说明:删除重复记录
Delete from tablename where id not in (select max(id) from tablename group by col1,col2,...)
20、说明:列出数据库里所有的表名
select name from sysobjects where type='U'
21、说明:列出表里的所有的
select name from syscolumns where id=object_id('TableName')
22、说明:列示type、vender、pcs字段Q以type字段排列Qcase可以方便地实现多重选择Q类似select 中的case?br>select type,sum(case vender when 'A' then pcs else 0 end),sum(case vender when 'C' then pcs else 0 end),sum(case vender when 'B' then pcs else 0 end) FROM tablename group by type
昄l果Q?br>type vender pcs
电脑 A 1
电脑 A 1
光盘 B 2
光盘 A 2
手机 B 3
手机 C 3
23、说明:初始化表table1
TRUNCATE TABLE table1
24、说明:选择?0?5的记?br>select top 5 * from (select top 15 * from table order by id asc) table_别名 order by id desc
三、技?/p>
1?=1Q?=2的用,在SQL语句l合时用的较?/p>
“where 1=1” 是表C选择全部 “where 1=2”全部不选,
如:
if @strWhere !=''
begin
set @strSQL = 'select count(*) as Total from [' + @tblName + '] where ' + @strWhere
end
else
begin
set @strSQL = 'select count(*) as Total from [' + @tblName + ']'
end
我们可以直接写成
set @strSQL = 'select count(*) as Total from [' + @tblName + '] where 1=1 安定 '+ @strWhere
2、收~数据库
--重徏索引
DBCC REINDEX
DBCC INDEXDEFRAG
--收羃数据和日?br>DBCC SHRINKDB
DBCC SHRINKFILE
3、压~数据库
dbcc shrinkdatabase(dbname)
4、{UL据库l新用户以已存在用户权限
exec sp_change_users_login 'update_one','newname','oldname'
go
5、检查备份集
RESTORE VERIFYONLY from disk='E:\dvbbs.bak'
6、修复数据库
ALTER DATABASE [dvbbs] SET SINGLE_USER
GO
DBCC CHECKDB('dvbbs',repair_allow_data_loss) WITH TABLOCK
GO
ALTER DATABASE [dvbbs] SET MULTI_USER
GO
7、日志清?br>SET NOCOUNT ON
DECLARE @LogicalFileName sysname,
@MaxMinutes INT,
@NewSize INT
USE tablename -- 要操作的数据库名
SELECT @LogicalFileName = 'tablename_log', -- 日志文g?br>@MaxMinutes = 10, -- Limit on time allowed to wrap log.
@NewSize = 1 -- 你想讑֮的日志文件的大小(M)
-- Setup / initialize
DECLARE @OriginalSize int
SELECT @OriginalSize = size
FROM sysfiles
WHERE name = @LogicalFileName
SELECT 'Original Size of ' + db_name() + ' LOG is ' +
CONVERT(VARCHAR(30),@OriginalSize) + ' 8K pages or ' +
CONVERT(VARCHAR(30),(@OriginalSize*8/1024)) + 'MB'
FROM sysfiles
WHERE name = @LogicalFileName
CREATE TABLE DummyTrans
(DummyColumn char (8000) not null)
DECLARE @Counter INT,
@StartTime DATETIME,
@TruncLog VARCHAR(255)
SELECT @StartTime = GETDATE(),
@TruncLog = 'BACKUP LOG ' + db_name() + ' WITH TRUNCATE_ONLY'
DBCC SHRINKFILE (@LogicalFileName, @NewSize)
EXEC (@TruncLog)
-- Wrap the log if necessary.
WHILE @MaxMinutes > DATEDIFF (mi, @StartTime, GETDATE()) -- time has not expired
AND @OriginalSize = (SELECT size FROM sysfiles WHERE name = @LogicalFileName)
AND (@OriginalSize * 8 /1024) > @NewSize
BEGIN -- Outer loop.
SELECT @Counter = 0
WHILE ((@Counter < @OriginalSize / 16) AND (@Counter < 50000))
BEGIN -- update
INSERT DummyTrans VALUES ('Fill Log')
DELETE DummyTrans
SELECT @Counter = @Counter + 1
END
EXEC (@TruncLog)
END
SELECT 'Final Size of ' + db_name() + ' LOG is ' +
CONVERT(VARCHAR(30),size) + ' 8K pages or ' +
CONVERT(VARCHAR(30),(size*8/1024)) + 'MB'
FROM sysfiles
WHERE name = @LogicalFileName
DROP TABLE DummyTrans
SET NOCOUNT OFF
8、说明:更改某个?br>exec sp_changeobjectowner 'tablename','dbo'
9、存储更改全部表
CREATE PROCEDURE dbo.User_ChangeObjectOwnerBatch
@OldOwner as NVARCHAR(128),
@NewOwner as NVARCHAR(128)
AS
DECLARE @Name as NVARCHAR(128)
DECLARE @Owner as NVARCHAR(128)
DECLARE @OwnerName as NVARCHAR(128)
DECLARE curObject CURSOR FOR
select 'Name' = name,
'Owner' = user_name(uid)
from sysobjects
where user_name(uid)=@OldOwner
order by name
OPEN curObject
FETCH NEXT FROM curObject INTO @Name, @Owner
WHILE(@@FETCH_STATUS=0)
BEGIN
if @Owner=@OldOwner
begin
set @OwnerName = @OldOwner + '.' + rtrim(@Name)
exec sp_changeobjectowner @OwnerName, @NewOwner
end
-- select @name,@NewOwner,@OldOwner
FETCH NEXT FROM curObject INTO @Name, @Owner
END
close curObject
deallocate curObject
GO
10、SQL SERVER中直接@环写入数?br>declare @i int
set @i=1
while @i<30
begin
insert into test (userid) values(@i)
set @i=@i+1
end
--数据操作
SELECT --从数据库表中索数据行和列
INSERT --向数据库表添加新数据?br>DELETE --从数据库表中删除数据?br>UPDATE --更新数据库表中的数据
--数据定义
CREATE TABLE --创徏一个数据库?br>DROP TABLE --从数据库中删除表
ALTER TABLE --修改数据库表l构
CREATE VIEW --创徏一个视?br>DROP VIEW --从数据库中删除视?br>CREATE INDEX --为数据库表创Z个烦?br>DROP INDEX --从数据库中删除烦?br>CREATE PROCEDURE --创徏一个存储过E?br>DROP PROCEDURE --从数据库中删除存储过E?br>CREATE TRIGGER --创徏一个触发器
DROP TRIGGER --从数据库中删除触发器
CREATE SCHEMA --向数据库d一个新模式
DROP SCHEMA --从数据库中删除一个模?br>CREATE DOMAIN --创徏一个数据值域
ALTER DOMAIN --改变域定?br>DROP DOMAIN --从数据库中删除一个域
--数据控制
GRANT --授予用户讉K权限
DENY --拒绝用户讉K
REVOKE --解除用户讉K权限
--事务控制
COMMIT --l束当前事务
ROLLBACK --中止当前事务
SET TRANSACTION --定义当前事务数据讉K特征
--E序化SQL
DECLARE --为查询设定游?br>EXPLAN --为查询描q数据访问计?br>OPEN --索查询结果打开一个游?br>FETCH --索一行查询结?br>CLOSE --关闭游标
PREPARE --为动态执行准备SQL 语句
EXECUTE --动态地执行SQL 语句
DESCRIBE --描述准备好的查询
---局部变?br>declare @id char(10)
--set @id = 10010001
select @id = 10010001
---全局变量
---必须以@@开?/p>
--IF ELSE
declare @x int @y int @z int
select @x = 1 @y = 2 @z=3
if @x > @y
print x > y --打印字符串x > y
else if @y > @z
print y > z
else print z > y
--CASE
use pangu
update employee
set e_wage =
case
when job_level = ’1’ then e_wage*1.08
when job_level = ’2’ then e_wage*1.07
when job_level = ’3’ then e_wage*1.06
else e_wage*1.05
end
--WHILE CONTINUE BREAK
declare @x int @y int @c int
select @x = 1 @y=1
while @x < 3
begin
print @x --打印变量x 的?br>while @y < 3
begin
select @c = 100*@x + @y
print @c --打印变量c 的?br>select @y = @y + 1
end
select @x = @x + 1
select @y = 1
end
--WAITFOR
--?{待1 时2 分零3 U后才执行SELECT 语句
waitfor delay ’01:02:03’
select * from employee
--?{到晚上11 炚w8 分后才执行SELECT 语句
waitfor time ’23:08:00’
select * from employee
***SELECT***
select *(列名) from table_name(表名) where column_name operator value
ex:(宿主)
select * from stock_information where stockid = str(nid)
stockname = ‘str_name‘
stockname like ‘% find this %‘
stockname like ‘[a-zA-Z]%‘ --------- ([]指定值的范围)
stockname like ‘[^F-M]%‘ --------- (^排除指定范围)
--------- 只能在用like关键字的where子句中用通配W?
or stockpath = ‘stock_path‘
or stocknumber < 1000
and stockindex = 24
not stocksex = ‘man‘
stocknumber between 20 and 100
stocknumber in(10,20,30)
order by stockid desc(asc) --------- 排序Qdesc-降序Qasc-升序
order by 1,2 --------- by列号
stockname = (select stockname from stock_information where stockid =
4)
--------- 子查?br> --------- 除非能确保内层select只返回一个行的|
--------- 否则应在外层where子句中用一个in限定W?br> select distinct column_name form table_name ---------
distinct指定索独有的列|不重?br> select stocknumber ,stocknumber + 10 = stocknumber + 10 from
table_name
select stockname , stocknumber = count(*) from table_name group by
stockname
--------- group by 表按行分组,指定列中有相同的?br> having count(*) = 2 --------- having选定指定的组
select *
from table1, table2
where table1.id *= table2.id --------
左外部连接,table1中有的而table2中没有得以null表示
table1.id =* table2.id -------- 叛_部连?
select stockname from table1
union [all] ----- union合ƈ查询l果集,all-保留重复?br> select stockname from table2
***insert***
insert into table_name (Stock_name,Stock_number) value (xxx,xxxx)
value (select Stockname , Stocknumber from
Stock_table2)---value为select语句
***update***
update table_name set Stockname = xxx [where Stockid = 3]
Stockname = default
Stockname = null
Stocknumber = Stockname + 4
***delete***
delete from table_name where Stockid = 3
truncate table_name ----------- 删除表中所有行Q仍保持表的完整?br> drop table table_name --------------- 完全删除?br> ***alter table*** --- 修改数据库表l构
alter table database.owner.table_name add column_name char(2) null
.....
sp_help table_name ---- 昄表已有特?br> create table table_name (name char(20), age smallint, lname
varchar(30))
insert into table_name select ......... ----- 实现删除列的ҎQ创建新表)
alter table table_name drop constraint Stockname_default ----
删除Stockname的defaultU束
***function(/*常用函数*/)***
----l计函数----
AVG --求^均?br> COUNT --l计数目
MAX --求最大?br> MIN --求最?br> SUM --求和
--AVG
use pangu
select avg(e_wage) as dept_avgWage
from employee
group by dept_id
--MAX
--求工资最高的员工姓名
use pangu
select e_name
from employee
where e_wage =
(select max(e_wage)
from employee)
--STDEV()
--STDEV()函数q回表达式中所有数据的标准?br> --STDEVP()
--STDEVP()函数q回M标准?br> --VAR()
--VAR()函数q回表达式中所有值的l计变异?br> --VARP()
--VARP()函数q回M变异?br> ----术函数----
/***三角函数***/
SIN(float_expression) --q回以弧度表C的角的正u
COS(float_expression) --q回以弧度表C的角的余u
TAN(float_expression) --q回以弧度表C的角的正切
COT(float_expression) --q回以弧度表C的角的余切
/***反三角函?**/
ASIN(float_expression) --q回正u是FLOAT 值的以弧度表C的?br> ACOS(float_expression) --q回余u是FLOAT 值的以弧度表C的?br> ATAN(float_expression) --q回正切是FLOAT 值的以弧度表C的?br> ATAN2(float_expression1,float_expression2)
--q回正切是float_expression1 /float_expres-sion2的以弧度表示的角
DEGREES(numeric_expression)
--把弧度{换ؓ角度q回与表辑ּ相同的数据类型可?br> --INTEGER/MONEY/REAL/FLOAT cd
RADIANS(numeric_expression) --把角度{换ؓ弧度q回与表辑ּ相同的数据类型可?br> --INTEGER/MONEY/REAL/FLOAT cd
EXP(float_expression) --q回表达式的指数?br> LOG(float_expression) --q回表达式的自然Ҏ?br> LOG10(float_expression)--q回表达式的?0 为底的对数?br> SQRT(float_expression) --q回表达式的qx?br> /***取近似值函?**/
CEILING(numeric_expression) --q回>=表达式的最整数返回的数据cd与表辑ּ相同可ؓ
--INTEGER/MONEY/REAL/FLOAT cd
FLOOR(numeric_expression) --q回<=表达式的最整数返回的数据cd与表辑ּ相同可ؓ
--INTEGER/MONEY/REAL/FLOAT cd
ROUND(numeric_expression) --q回以integer_expression 为精度的四舍五入D回的数据
--cd与表辑ּ相同可ؓINTEGER/MONEY/REAL/FLOAT cd
ABS(numeric_expression) --q回表达式的l对D回的数据cd与表辑ּ相同可ؓ
--INTEGER/MONEY/REAL/FLOAT cd
SIGN(numeric_expression) --试参数的正负号q回0 零? 正数?1 负数q回的数据类?br> --与表辑ּ相同可ؓINTEGER/MONEY/REAL/FLOAT cd
PI() --q回gؓπ ?.1415926535897936
RAND([integer_expression]) --用Q选的[integer_expression]做种子值得?-1
间的随机点?br>
----字符串函?---
ASCII() --函数q回字符表达式最左端字符的ASCII 码?br> CHAR() --函数用于ASCII 码{换ؓ字符
--如果没有输入0 ~ 255 之间的ASCII 码值CHAR 函数会返回一个NULL ?br> LOWER() --函数把字W串全部转换为小?br> UPPER() --函数把字W串全部转换为大?br> STR() --函数把数值型数据转换为字W型数据
LTRIM() --函数把字W串头部的空格去?br> RTRIM() --函数把字W串N的空格去?br> LEFT(),RIGHT(),SUBSTRING() --函数q回部分字符?br> CHARINDEX(),PATINDEX() --函数q回字符串中某个指定的子串出现的开始位|?br> SOUNDEX() --函数q回一个四位字W码
--SOUNDEX函数可用来查扑֣音相似的字符串但SOUNDEX函数Ҏ字和汉字均只q回0 ?
DIFFERENCE() --函数q回由SOUNDEX 函数q回的两个字W表辑ּ的值的差异
--0 两个SOUNDEX 函数q回值的W一个字W不?br> --1 两个SOUNDEX 函数q回值的W一个字W相?br> --2 两个SOUNDEX 函数q回值的W一二个字符相同
--3 两个SOUNDEX 函数q回值的W一二三个字W相?br> --4 两个SOUNDEX 函数q回值完全相?br>
QUOTENAME() --函数q回被特定字W括h的字W串
/*select quotename(‘abc‘, ‘{‘) quotename(‘abc‘)
q行l果如下
----------------------------------{
{abc} [abc]*/
REPLICATE() --函数q回一个重复character_expression 指定ơ数的字W串
/*select replicate(‘abc‘, 3) replicate( ‘abc‘, -2)
q行l果如下
----------- -----------
abcabcabc NULL*/
REVERSE() --函数指定的字符串的字符排列序颠?br> REPLACE() --函数q回被替换了指定子串的字W串
/*select replace(‘abc123g‘, ‘123‘, ‘def‘)
q行l果如下
----------- -----------
abcdefg*/
SPACE() --函数q回一个有指定长度的空白字W串
STUFF() --函数用另一子串替换字符串指定位|长度的子串
----数据cd转换函数----
CAST() 函数语法如下
CAST() (<expression> AS <data_ type>[ length ])
CONVERT() 函数语法如下
CONVERT() (<data_ type>[ length ], <expression> [, style])
select cast(100+99 as char) convert(varchar(12), getdate())
q行l果如下
------------------------------ ------------
199 Jan 15 2000
----日期函数----
DAY() --函数q回date_expression 中的日期?br> MONTH() --函数q回date_expression 中的月䆾?br> YEAR() --函数q回date_expression 中的q䆾?br> DATEADD(<datepart> ,<number> ,<date>)
--函数q回指定日期date 加上指定的额外日期间隔number 产生的新日期
DATEDIFF(<datepart> ,<number> ,<date>)
--函数q回两个指定日期在datepart 斚w的不同之?br> DATENAME(<datepart> , <date>) --函数以字W串的Ş式返回日期的指定部分
DATEPART(<datepart> , <date>) --函数以整数值的形式q回日期的指定部?br> GETDATE() --函数以DATETIME 的缺省格式返回系l当前的日期和时?br> ----pȝ函数----
APP_NAME() --函数q回当前执行的应用程序的名称
COALESCE() --函数q回众多表达式中W一个非NULL 表达式的?br> COL_LENGTH(<‘table_name‘>, <‘column_name‘>) --函数q回表中指定字段的长度?br> COL_NAME(<table_id>, <column_id>) --函数q回表中指定字段的名U即列名
DATALENGTH() --函数q回数据表达式的数据的实际长?br> DB_ID([‘database_name‘]) --函数q回数据库的~号
DB_NAME(database_id) --函数q回数据库的名称
HOST_ID() --函数q回服务器端计算机的名称
HOST_NAME() --函数q回服务器端计算机的名称
IDENTITY(<data_type>[, seed increment]) [AS column_name])
--IDENTITY() 函数只在SELECT INTO 语句中用用于插入一个identity column列到新表?br> /*select identity(int, 1, 1) as column_name
into newtable
from oldtable*/
ISDATE() --函数判断所l定的表辑ּ是否为合理日?br> ISNULL(<check_expression>, <replacement_value>) --函数表辑ּ中的NULL
值用指定值替?br> ISNUMERIC() --函数判断所l定的表辑ּ是否为合理的数?br> NEWID() --函数q回一个UNIQUEIDENTIFIER cd的数?br> NULLIF(<expression1>, <expression2>)
--NULLIF 函数在expression1 与expression2 相等时返回NULL D不相{时则返回expression1
的?br>
sql中的保留?br> action add aggregate all
alter after and as
asc avg avg_row_length auto_increment
between bigint bit binary
blob bool both by
cascade case char character
change check checksum column
columns comment constraint create
cross current_date current_time current_timestamp
data database databases date
datetime day day_hour day_minute
day_second dayofmonth dayofweek dayofyear
dec decimal default delayed
delay_key_write delete desc describe
distinct distinctrow double drop
end else escape escaped
enclosed enum explain exists
fields file first float
float4 float8 flush foreign
from for full function
global grant grants group
having heap high_priority hour
hour_minute hour_second hosts identified
ignore in index infile
inner insert insert_id int
integer interval int1 int2
int3 int4 int8 into
if is isam join
key keys kill last_insert_id
leading left length like
lines limit load local
lock logs long longblob
longtext low_priority max max_rows
match mediumblob mediumtext mediumint
middleint min_rows minute minute_second
modify month monthname myisam
natural numeric no not
null on optimize option
optionally or order outer
outfile pack_keys partial password
precision primary procedure process
processlist privileges read real
references reload regexp rename
replace restrict returns revoke
rlike row rows second
select set show shutdown
smallint soname sql_big_tables sql_big_selects
sql_low_priority_updates sql_log_off sql_log_update sql_select_limit
sql_small_result sql_big_result sql_warnings straight_join
starting status string table
tables temporary terminated text
then time timestamp tinyblob
tinytext tinyint trailing to
type use using unique
unlock unsigned update usage
values varchar variables varying
varbinary with write when
where year year_month zerofill