【网学网提醒】:网学会员编辑为广大网友搜集整理了:SQL语法格式(更新中)绩等信息,祝愿广大网友取得需要的信息,参考学习。
SQL语言语法格式
注:语法格式相关约定不区分大小写,但是建议关键字大写,以方便阅读。Mysql不区分大小写,但是建议关键字大写,以方便阅读。语句,以分号结束。每条SQL语句,以分号结束。约定用途
UPPERCASESQL关键字(大写)大写)|[]{}[,...n][...n]分隔括号或大括号中的语法项。分隔括号或大括号中的语法项。只能选择其中一项可选语法项。可选语法项。不要输入方括号必选语法项。必选语法项。不要输入大括号指示前面的项可以重复n次。每一项由逗号分隔指示前面的项可以重复n次。每一项由空格分隔
数据库相关操作
1.创建数据库创建数据库CREATEDATABASE
[IFNOTEXISTS]db_name
2.修改数据库修改数据库ALTERDATABASE[db_name]alter_specification其中alter_specification::[DEFAULT]CHARACTERSETcharset_name|[DEFAULT]COLLATEcollation_name
3.删除数据库DROPDATABASE
[IFEXISTS]db_name
4.创建了数据库之后使用USE命令可指定当前数据库USEdb_name;5.显示所有数据库Showdatabases;
表相关操作
1.创建表创建表CREATETABLE[IFNOTEXISTS]tbl_name[([column_definition],...|[index_definition])]格式如下:列定义column_definition格式如下:col_nametype[NOTNULL|NULL][DEFAULTdefault_value][AUTO_INCREMENT][UNIQUE[KEY]|[PRIMARY]KEY][COMMENT'string'][reference_definition]2.显示当前数据库下的所有表显示当前数据库下的所有表Showtables;3.显示指定表的表结构显示指定表的表结构显示指定表的Describetb_name;Showcolumnsfromtb_name;
4.修改表修改表ALTER[IGNORE]TABLEtbl_namealter_specification[,alter_specification]...alter_specification:ADD[COLUMN]column_definition[FIRST|AFTERcol_name]/*添加列添加列*/添加列|ALTER[COLUMN]col_name{SETDEFAULTliteral|DROPDEFAULT}/*修改默认值修改默认值*/修改默认值|CHANGE[COLUMN]old_col_namecolumn_definition/*对列重命名对列重命名*/对列重命名[FIRST|AFTERcol_name]|MODIFY[COLUMN]column_definition[FIRST|AFTERcol_name]/*修改列类型修改列类型*/修改列类型|DROP[COLUMN]col_name/*删除列删除列*/删除列|RENAME[TO]new_tbl_name/*重命名该表重命名该表*/重命名该表|ORDERBYcol_name/*排序排序*/排序
5.修改表名RENAMETABLEtbl_nameTOnew_tbl_name[,tbl_name2TOnew_tbl_name2]...
6.复制表CREATE[TEMPORARY]TABLE[IFNOTEXISTS]tbl_name[()LIKEold_tbl_name[]]|[AS(select_statement)];7.删除表DROP[TEMPORARY]TABLE[IFEXISTS]tbl_name[,tbl_name]...
表数据操作
1.插入表数据.INSERT[INTO]tbl_name[(col_name,...)]VALUES({expr|DEFAULT},...),(...),...|SETcol_name={expr|DEFAULT},...2.删除表数据从单个表中删除,语法格式:从单个表中删除
,语法格式:DELETEFROMtbl_name[WHEREwhere_definition]从多个表中删除行,语法格式:从多个表中删除行,语法格式:DELETEtbl_name[.*][,tbl_name[.*]...]FROMtable_references[WHEREwhere_definition]或:DELETEFROMtbl_name[.*][,tbl_name[.*]...]USINGtable_references[WHEREwhere_definition]3.使用TRUNCATETABLE语句删除表数据TRUNCATETABLEtable-name4.修改表数据修改单个表,语法格式:修改单个表,语法格式:UPDATEtbl_nameSETcol_name1=expr1[,col_name2=expr2...][WHEREwhere_definition]
修改多个表,语法格式:修改多个表,语法格式:UPDATEtable_referencesSETcol_name1=expr1[,col_name2=expr2...][WHEREwhere_definition]
说明:中包含了多个表的联合,各表之间用逗号隔开。说明:table_references中包含了多个表的联合,各表之间用逗号隔开。5.SHOW和DESCRIBE语句SHOWTABLES:显示当前数据库中所有表的名称。:显示当前数据库中所有表的名称。SHOWDATABASES:显示MySQL中所有数据库的名称。中所有数据库的名称。:SHOWCOLUMNSFROMtable_nameFROMdatabase_name或SHOWCOLUMNSFROMdatabase_name.table_name:显示表中列的名称。:显示表中列的名称。
表的查询
SELECT语句SELECTselect_list/*选择的列,指定查询目标及其限定选择的列,查询目标及其限定选择的列指定查询目标及其限定*/FROMtable_source/*FROM子句,指定数据源,即相关表或视图子句,指定数据源即相关表或视图数据源,表或视图*/子句,指定查询条件*/[WHEREsearch_condition]/*WHERE子句,指定查询条件查询目标)选择列select_list(查询目标)1.选择指定的列语句选择一个表中的某些列,各列名之间要以逗号分隔。使用SELECT语句选择一个表中的某些列,各列名之间要以逗号分隔。号时,表示选择表的所有列。注:当在SELECT语句指定列的位置上使用*号时,表示选择表的所有列。2.定义列别名SELECTcolumn_name[AS]column_alias3.替换查询结果中的数据CASEWHEN条件1THEN表达式1WHEN条件2THEN表达式2……ELSE表达式END4.计算列值对列进行查询时,在结果中可以输出对列值计算后的值。使用SELECT对列进行查询时,在结果中可以输出对列值计算后的值。格式为:格式为:SELECTexpression[,expression]5.消除结果集中的重复行SELECTDISTINCTcolumn_name[,column_name…]
6.聚合函数用于对一组值进行计算,然后返回单个值。用于对一组值进行计算,然后返回单个值。一些常用的聚合函数:一些常用的聚合函数:函数名说明COUNTMAXMINSUMAVG求组中项数求最大值求最小值返回表达式中所有值的和求组中值的平均值
注:COUNT(*)返回表中记录总数。
对记录的内容不关心,只关心记录总数)返回表中记录总数(对记录的内容不关心,只关心记录总数)记录总数。记录总数COUNT(列名返回该列不为空的记录总数。列名)列名列名)非空且不重复的记录总数。COUNT(DISTINCT列名返回该列非空且不重复的记录总数。使用聚合函数的语法格式:使用聚合函数的语法格式:SELECT函数名列名...函数名(列名列名),FROM表名[WHEREcondition]
FROM子句(SELECT的查询对象由FROM子句指定,即数据源)子句指定,即数据源)FROMtable_reference[,table_reference]…其中,其中,table_reference::查询单个tbl_name[[AS]tbl_name_alias]/*查询单个表*/查询单个表|join_table/*查询多个表,连接表查询多个表,查询多个表连接表*/1)查询单个表:)查询单个表:单个表语句让一个数据库成为当前数据库。第一种方式是使用USE语句让一个数据库成为当前数据库。例:UseYGGL;SELECT*FROMsalary;第二种方式是指定的时候在表名前带上表所属数据库的名字。第二种方式是指定的时候在表名前带上表所属数据库的名字。例:SELECT*FROMYGGL.salary;2)查询多个表(表连接))查询多个表(表连接):多个表SELECTselect_expr,...FROM表名1,表名2…,
WHERE表名1.列名1=表名2.列名1……列名表名列名子句基于列名值来匹配两个表中的记录。注:使用where子句基于列名值来匹配两个表中的记录。当引用两个表相同列名时,要指定哪个表,把表名附在列名前。当引用两个表相同列名时,要指定哪个表,把表名附在列名前。
Where子句(指定查询条件)指定查询条件)WHERE子句必须紧跟FROM子句之后,在WHERE子句中,指定查询条件。子句之后,子句中,指定查询条件。子句的中间结果中选取行其基本格式为:中选取行。使用一个条件从FROM子句的中间结果中选取行。其基本格式为:WHEREwhere_definition其中,为查询条件。其中,where_definition为查询条件。expression{=|<|<=|>|>=|<=>|<>|!=}expression/*比较运算比较运算*/比较运算|match_expression[NOT]LIKEmatch_expression[ESCAPE模式匹配,运算符*/'escape_character']/*模式匹配,LIKE运算符模式匹配|expression[NOT]BETWEENexpressionANDexpression/*指定范围指定范围*/指定范围|expressionIS[NOT]NULL/*是否空值判断是否空值判断*/是否空值判断/*IN子句,返回一列数据子句,返回一列数据*/|expression[NOT]IN(subquery|值列表)|expression{=|<|<=|>|>=|<=>|<>|!=}{ALL|SOME|ANY}(subquery)/*比较子查询比较子查询*/比较子查询/*EXIST子查询子查询*/|EXIST(
subquery)
------------------------------------------------------------------------------------------------------完整语句注:SELECT完整语句SELECT[ALL|DISTINCT]select_list/*指定要选择的列及其限定指定要选择的列及其限定*/指定要选择的列及其限定FROMtable_source/*FROM子句,指定表或视图子句,指定表或视图*/[WHEREsearch_condition]/*WHERE子句,指定查询条件子句,指定查询条件*/[GROUPBYgroup_by_expression]/*GROUPBY子句,指定分组表达式子句,指定分组表达式*/[HAVINGsearch_condition]/*HAVING子句,指定分组统计条件子句,指定分组统计条件*/[ORDERBYorder_expression[ASC|DESC]]/*ORDER子句,指定排序表达式和顺序子句,指定排序表达式和顺序序表达式和顺序*/
视图
视图是数据库的用户使用数据库的观点。视图是数据库的用户使用数据库的观点。从一个或多个表(或视图)导出的虚是从一个或多个表(或视图)导出的虚表。若视图可以修改,则对该视图进行的修改,其实是对其基本表进行修改。若视图可以修改,则对该视图进行的修改,其实是对其基本表进行修改。1.视图的创建视图的创建语法格式:语法格式:CREATE[ORREPLACE]VIEWview_name[(column_list)]ASselect_statement[WITH[CASCADED|LOCAL]CHECKOPTION]视图的定义的修改视图的定义的修改语法格式:语法格式:ALTERVIEWview_name[(column_list)]ASselect_statement[WITH[CASCADED|LOCAL]CHECKOPTION]删除视图语法格式:语法格式:DROPVIEW[IFEXISTS]view_name[,view_name]...2.视图的查询:视图定义后,就可以如同查询基本表那样对视图进行查询。视图的查询视图定义后就可以如同查询基本表那样对视图进行查询。的查询:定义后,3.视图的更新:视图的更新:不是所有的视图都可以更新。不是所有的视图都可以更新。如果视图包含下述结构中的任何一种,那么它就是不可更新的:如果视图包含下述结构中的任何一种,那么它就是不可更新的:(1)聚合函数;)聚合函数;关键字;(2)DISTINCT关键字;)子句;(3)GROUPBY子句;)子句;(4)ORDERBY子句;)子句;(5)HAVING子句;)运算符;(6)UNION运算符;)(7)位于选择列表中的子查询;)位于选择列表中的子查询;子句中包含多个表;(8)FROM子句中包含多个表;)语句中引用了不可更新视图;(9)SELECT语句中引用了不可更新视图;)子句中的子查询,子句中的表;(10)WHERE子句中的子查询,引用FROM子句中的表;)(11)ALGORITHM选项指定为TEMPTABLE(使用临时表总会使视图成为)(不可更新的)不可更新的)。如果视图是可以更
新的,需注意:如果视图是可以更新的,需注意:1)插入数据时,当视图所依赖的基本表有多个时,不能向该视图插入数据)插入数据时,当视图所依赖的基本表有多个时,不能向该视图插入数据.2)修改数据时,若一个视图依赖于多个基本表,则一次修改该视图只能变动一)修改数据时若一个视图依赖于多个基本表,个基本表的数据。个基本表的数据。3)对依赖于多个基本表的视图,不能使用DELETE语句。语句。)对依赖于多个基本表的视图,
索引
1.创建索引创建索引CREATE[UNIQUE|FULLTEXT|SPATIAL]INDEXindex_nameONtbl_name(index_col_name,...)2.删除索引删除索引DROPINDEXindex_nameONtbl_name或ALTER[IGNORE]TABLEtbl_name|DROPPRIMARYKEY|DROPINDEXindex_name3.使用ALTERTABLE语句修改表(包括添加索引)使用语句修改表(包括添加索引)ALTER[IGNORE]TABLEtbl_nameADDINDEX[index_name][index_type](index_col_name,...)/*添加索引添加索引*/添加索引|ADD[CONSTRAINT[symbol]]PRIMARYKEY[index_type](index_col_name,...)/*添加主键添加主键*/添加主键|ADD[CONSTRAINT[symbol]]UNIQUE[index_name][index_type](index_col_name,...)/*添加唯一性索引添加唯一性索引*/添加唯一性索引|ADD[FULLTEXT|SPATIAL][index_name](index_col_name,...)/*添加全文索引添加全文索引*/添加全文索引|ADD[CONSTRAINT[symbol]]FOREIGNKEY[index_name](index_col_name,...)[reference_definition]/*添加外键添加外键*/添加外键
/*删除主键删除主键*/删除主键/*删除索引删除索引*/删除索引
reference_definition语法格式如下:语法格式如下:REFERENCEStbl_name[(index_col_name,...)][ONDELETE{RESTRICT|CASCADE|SETNULL|NOACTION}][ONUPDATE{RESTRICT|CASCADE|SETNULL|NOACTION}]