ADD Adds a column in an existing table ADD CONSTRAINT Adds a constraint after a table is already created ALTER Adds, deletes, or modifies columns in a table, or changes the data type of a column in a table ALTER COLUMN Changes the data type of a column in a table ALTER TABLE Adds, deletes, or modifies columns in a table ALL Returns true if all of the subquery values meet the condition AND Only includes rows where both conditions is true ANY Returns true if any of the subquery values meet the condition AS Renames a column or table with an alias ASC Sorts the result set in ascending order BACKUP DATABASE Creates a back up of an existing database BETWEEN Selects values within a given range CASE Creates different outputs based on conditions CHECK A constraint that limits the value that can be placed in a column COLUMN Changes the data type of a column or deletes a column in a table CONSTRAINT Adds or deletes a constraint CREATE Creates a database, index, view, table, or procedure CREATE DATABASE Creates a new SQL database CREATE INDEX Creates an index on a table (allows duplicate values) CREATE OR REPLACE VIEW Updates a view CREATE TABLE Creates a new table in the database CREATE PROCEDURE Creates a stored procedure CREATE UNIQUE INDEX Creates a unique index on a table (no duplicate values) CREATE VIEW Creates a view based on the result set of a SELECT statement DATABASE Creates or deletes an SQL database DEFAULT A constraint that provides a default value for a column DELETE Deletes rows from a table DESC Sorts the result set in descending order DISTINCT Selects only distinct (different) values DROP Deletes a column, constraint, database, index, table, or view DROP COLUMN Deletes a column in a table DROP CONSTRAINT Deletes a UNIQUE, PRIMARY KEY, FOREIGN KEY, or CHECK constraint DROP DATABASE Deletes an existing SQL database DROP DEFAULT Deletes a DEFAULT constraint DROP INDEX Deletes an index in a table DROP TABLE Deletes an existing table in the database DROP VIEW Deletes a view EXEC Executes a stored procedure EXISTS Tests for the existence of any record in a subquery FOREIGN KEY A constraint that is a key used to link two tables together FROM Specifies which table to select or delete data from FULL OUTER JOIN Returns all rows when there is a match in either left table or right table GROUP BY Groups the result set (used with aggregate functions: COUNT, MAX, MIN, SUM, AVG) HAVING Used instead of WHERE with aggregate functions IN Allows you to specify multiple values in a WHERE clause INDEX Creates or deletes an index in a table INNER JOIN Returns rows that have matching values in both tables INSERT INTO Inserts new rows in a table INSERT INTO SELECT Copies data from one table into another table IS NULL Tests for empty values IS NOT NULL Tests for non-empty values JOIN Joins tables LEFT JOIN Returns all rows from the left table, and the matching rows from the right table LIKE Searches for a specified pattern in a column LIMIT Specifies the number of records to return in the result set NOT Only includes rows where a condition is not true NOT NULL A constraint that enforces a column to not accept NULL values OR Includes rows where either condition is true ORDER BY Sorts the result set in ascending or descending order OUTER JOIN Returns all rows when there is a match in either left table or right table PRIMARY KEY A constraint that uniquely identifies each record in a database table PROCEDURE A stored procedure RIGHT JOIN Returns all rows from the right table, and the matching rows from the left table ROWNUM Specifies the number of records to return in the result set SELECT Selects data from a database SELECT DISTINCT Selects only distinct (different) values SELECT INTO Copies data from one table into a new table SELECT TOP Specifies the number of records to return in the result set SET Specifies which columns and values that should be updated in a table TABLE Creates a table, or adds, deletes, or modifies columns in a table, or deletes a table or data inside a table TOP Specifies the number of records to return in the result set TRUNCATE TABLE Deletes the data inside a table, but not the table itself UNION Combines the result set of two or more SELECT statements (only distinct values) UNION ALL Combines the result set of two or more SELECT statements (allows duplicate values) UNIQUE A constraint that ensures that all values in a column are unique UPDATE Updates existing rows in a table VALUES Specifies the values of an INSERT INTO statement VIEW Creates, updates, or deletes a view WHERE Filters a result set to include only records that fulfill a specified condition Table 12.1 SQL Functions and Operators Name Description & Bitwise AND > Greater than operator >> Right shift >= Greater than or equal operator < Less than operator <>, != Not equal operator << Left shift <= Less than or equal operator <=> NULL-safe equal to operator %, MOD Modulo operator * Multiplication operator + Addition operator - Minus operator - Change the sign of the argument -> Return value from JSON column after evaluating path; equivalent to JSON_EXTRACT(). ->> Return value from JSON column after evaluating path and unquoting the result; equivalent to JSON_UNQUOTE(JSON_EXTRACT()). / Division operator := Assign a value = Assign a value (as part of a SET statement, or as part of the SET clause in an UPDATE statement) = Equal operator ^ Bitwise XOR ABS() Return the absolute value ACOS() Return the arc cosine ADDDATE() Add time values (intervals) to a date value ADDTIME() Add time AES_DECRYPT() Decrypt using AES AES_ENCRYPT() Encrypt using AES AND, && Logical AND ANY_VALUE() Suppress ONLY_FULL_GROUP_BY value rejection ASCII() Return numeric value of left-most character ASIN() Return the arc sine ATAN() Return the arc tangent ATAN2(), ATAN() Return the arc tangent of the two arguments AVG() Return the average value of the argument BENCHMARK() Repeatedly execute an expression BETWEEN ... AND ... Whether a value is within a range of values BIN() Return a string containing binary representation of a number BIN_TO_UUID() Convert binary UUID to string BINARY Cast a string to a binary string BIT_AND() Return bitwise AND BIT_COUNT() Return the number of bits that are set BIT_LENGTH() Return length of argument in bits BIT_OR() Return bitwise OR BIT_XOR() Return bitwise XOR CAN_ACCESS_COLUMN() Internal use only CAN_ACCESS_DATABASE() Internal use only CAN_ACCESS_TABLE() Internal use only CAN_ACCESS_USER() (introduced 8.0.22) Internal use only CAN_ACCESS_VIEW() Internal use only CASE Case operator CAST() Cast a value as a certain type CEIL() Return the smallest integer value not less than the argument CEILING() Return the smallest integer value not less than the argument CHAR() Return the character for each integer passed CHAR_LENGTH() Return number of characters in argument CHARACTER_LENGTH() Synonym for CHAR_LENGTH() CHARSET() Return the character set of the argument COALESCE() Return the first non-NULL argument COERCIBILITY() Return the collation coercibility value of the string argument COLLATION() Return the collation of the string argument COMPRESS() Return result as a binary string CONCAT() Return concatenated string CONCAT_WS() Return concatenate with separator CONNECTION_ID() Return the connection ID (thread ID) for the connection CONV() Convert numbers between different number bases CONVERT() Cast a value as a certain type CONVERT_TZ() Convert from one time zone to another COS() Return the cosine COT() Return the cotangent COUNT() Return a count of the number of rows returned COUNT(DISTINCT) Return the count of a number of different values CRC32() Compute a cyclic redundancy check value CUME_DIST() Cumulative distribution value CURDATE() Return the current date CURRENT_DATE(), CURRENT_DATE Synonyms for CURDATE() CURRENT_ROLE() Return the current active roles CURRENT_TIME(), CURRENT_TIME Synonyms for CURTIME() CURRENT_TIMESTAMP(), CURRENT_TIMESTAMP Synonyms for NOW() CURRENT_USER(), CURRENT_USER The authenticated user name and host name CURTIME() Return the current time DATABASE() Return the default (current) database name DATE() Extract the date part of a date or datetime expression DATE_ADD() Add time values (intervals) to a date value DATE_FORMAT() Format date as specified DATE_SUB() Subtract a time value (interval) from a date DATEDIFF() Subtract two dates DAY() Synonym for DAYOFMONTH() DAYNAME() Return the name of the weekday DAYOFMONTH() Return the day of the month (0-31) DAYOFWEEK() Return the weekday index of the argument DAYOFYEAR() Return the day of the year (1-366) DEFAULT() Return the default value for a table column DEGREES() Convert radians to degrees DENSE_RANK() Rank of current row within its partition, without gaps DIV Integer division ELT() Return string at index number EXP() Raise to the power of EXPORT_SET() Return a string such that for every bit set in the value bits, you get an on string and for every unset bit, you get an off string EXTRACT() Extract part of a date ExtractValue() Extract a value from an XML string using XPath notation FIELD() Index (position) of first argument in subsequent arguments FIND_IN_SET() Index (position) of first argument within second argument FIRST_VALUE() Value of argument from first row of window frame FLOOR() Return the largest integer value not greater than the argument FORMAT() Return a number formatted to specified number of decimal places FORMAT_BYTES() (introduced 8.0.16) Convert byte count to value with units FORMAT_PICO_TIME() (introduced 8.0.16) Convert time in picoseconds to value with units FOUND_ROWS() For a SELECT with a LIMIT clause, the number of rows that would be returned were there no LIMIT clause FROM_BASE64() Decode base64 encoded string and return result FROM_DAYS() Convert a day number to a date FROM_UNIXTIME() Format Unix timestamp as a date GeomCollection() Construct geometry collection from geometries GeometryCollection() Construct geometry collection from geometries GET_DD_COLUMN_PRIVILEGES() Internal use only GET_DD_CREATE_OPTIONS() Internal use only GET_DD_INDEX_SUB_PART_LENGTH() Internal use only GET_FORMAT() Return a date format string GET_LOCK() Get a named lock GREATEST() Return the largest argument GROUP_CONCAT() Return a concatenated string GROUPING() Distinguish super-aggregate ROLLUP rows from regular rows GTID_SUBSET() Return true if all GTIDs in subset are also in set; otherwise false. GTID_SUBTRACT() Return all GTIDs in set that are not in subset. HEX() Hexadecimal representation of decimal or string value HOUR() Extract the hour ICU_VERSION() ICU library version IF() If/else construct IFNULL() Null if/else construct IN() Whether a value is within a set of values INET_ATON() Return the numeric value of an IP address INET_NTOA() Return the IP address from a numeric value INET6_ATON() Return the numeric value of an IPv6 address INET6_NTOA() Return the IPv6 address from a numeric value INSERT() Insert substring at specified position up to specified number of characters INSTR() Return the index of the first occurrence of substring INTERNAL_AUTO_INCREMENT() Internal use only INTERNAL_AVG_ROW_LENGTH() Internal use only INTERNAL_CHECK_TIME() Internal use only INTERNAL_CHECKSUM() Internal use only INTERNAL_DATA_FREE() Internal use only INTERNAL_DATA_LENGTH() Internal use only INTERNAL_DD_CHAR_LENGTH() Internal use only INTERNAL_GET_COMMENT_OR_ERROR() Internal use only INTERNAL_GET_ENABLED_ROLE_JSON() (introduced 8.0.19) Internal use only INTERNAL_GET_HOSTNAME() (introduced 8.0.19) Internal use only INTERNAL_GET_USERNAME() (introduced 8.0.19) Internal use only INTERNAL_GET_VIEW_WARNING_OR_ERROR() Internal use only INTERNAL_INDEX_COLUMN_CARDINALITY() Internal use only INTERNAL_INDEX_LENGTH() Internal use only INTERNAL_IS_ENABLED_ROLE() (introduced 8.0.19) Internal use only INTERNAL_IS_MANDATORY_ROLE() (introduced 8.0.19) Internal use only INTERNAL_KEYS_DISABLED() Internal use only INTERNAL_MAX_DATA_LENGTH() Internal use only INTERNAL_TABLE_ROWS() Internal use only INTERNAL_UPDATE_TIME() Internal use only INTERVAL() Return the index of the argument that is less than the first argument IS Test a value against a boolean IS_FREE_LOCK() Whether the named lock is free IS_IPV4() Whether argument is an IPv4 address IS_IPV4_COMPAT() Whether argument is an IPv4-compatible address IS_IPV4_MAPPED() Whether argument is an IPv4-mapped address IS_IPV6() Whether argument is an IPv6 address IS NOT Test a value against a boolean IS NOT NULL NOT NULL value test IS NULL NULL value test IS_USED_LOCK() Whether the named lock is in use; return connection identifier if true IS_UUID() Whether argument is a valid UUID ISNULL() Test whether the argument is NULL JSON_ARRAY() Create JSON array JSON_ARRAY_APPEND() Append data to JSON document JSON_ARRAY_INSERT() Insert into JSON array JSON_ARRAYAGG() Return result set as a single JSON array JSON_CONTAINS() Whether JSON document contains specific object at path JSON_CONTAINS_PATH() Whether JSON document contains any data at path JSON_DEPTH() Maximum depth of JSON document JSON_EXTRACT() Return data from JSON document JSON_INSERT() Insert data into JSON document JSON_KEYS() Array of keys from JSON document JSON_LENGTH() Number of elements in JSON document JSON_MERGE() (deprecated) Merge JSON documents, preserving duplicate keys. Deprecated synonym for JSON_MERGE_PRESERVE() JSON_MERGE_PATCH() Merge JSON documents, replacing values of duplicate keys JSON_MERGE_PRESERVE() Merge JSON documents, preserving duplicate keys JSON_OBJECT() Create JSON object JSON_OBJECTAGG() Return result set as a single JSON object JSON_OVERLAPS() (introduced 8.0.17) Compares two JSON documents, returns TRUE (1) if these have any key-value pairs or array elements in common, otherwise FALSE (0) JSON_PRETTY() Print a JSON document in human-readable format JSON_QUOTE() Quote JSON document JSON_REMOVE() Remove data from JSON document JSON_REPLACE() Replace values in JSON document JSON_SCHEMA_VALID() (introduced 8.0.17) Validate JSON document against JSON schema; returns TRUE/1 if document validates against schema, or FALSE/0 if it does not JSON_SCHEMA_VALIDATION_REPORT() (introduced 8.0.17) Validate JSON document against JSON schema; returns report in JSON format on outcome on validation including success or failure and reasons for failure JSON_SEARCH() Path to value within JSON document JSON_SET() Insert data into JSON document JSON_STORAGE_FREE() Freed space within binary representation of JSON column value following partial update JSON_STORAGE_SIZE() Space used for storage of binary representation of a JSON document JSON_TABLE() Return data from a JSON expression as a relational table JSON_TYPE() Type of JSON value JSON_UNQUOTE() Unquote JSON value JSON_VALID() Whether JSON value is valid JSON_VALUE() (introduced 8.0.21) Extract value from JSON document at location pointed to by path provided; return this value as VARCHAR(512) or specified type LAG() Value of argument from row lagging current row within partition LAST_DAY Return the last day of the month for the argument LAST_INSERT_ID() Value of the AUTOINCREMENT column for the last INSERT LAST_VALUE() Value of argument from last row of window frame LCASE() Synonym for LOWER() LEAD() Value of argument from row leading current row within partition LEAST() Return the smallest argument LEFT() Return the leftmost number of characters as specified LENGTH() Return the length of a string in bytes LIKE Simple pattern matching LineString() Construct LineString from Point values LN() Return the natural logarithm of the argument LOAD_FILE() Load the named file LOCALTIME(), LOCALTIME Synonym for NOW() LOCALTIMESTAMP, LOCALTIMESTAMP() Synonym for NOW() LOCATE() Return the position of the first occurrence of substring LOG() Return the natural logarithm of the first argument LOG10() Return the base-10 logarithm of the argument LOG2() Return the base-2 logarithm of the argument LOWER() Return the argument in lowercase LPAD() Return the string argument, left-padded with the specified string LTRIM() Remove leading spaces MAKE_SET() Return a set of comma-separated strings that have the corresponding bit in bits set MAKEDATE() Create a date from the year and day of year MAKETIME() Create time from hour, minute, second MASTER_POS_WAIT() Block until the replica has read and applied all updates up to the specified position MATCH Perform full-text search MAX() Return the maximum value MBRContains() Whether MBR of one geometry contains MBR of another MBRCoveredBy() Whether one MBR is covered by another MBRCovers() Whether one MBR covers another MBRDisjoint() Whether MBRs of two geometries are disjoint MBREquals() Whether MBRs of two geometries are equal MBRIntersects() Whether MBRs of two geometries intersect MBROverlaps() Whether MBRs of two geometries overlap MBRTouches() Whether MBRs of two geometries touch MBRWithin() Whether MBR of one geometry is within MBR of another MD5() Calculate MD5 checksum MEMBER OF() (introduced 8.0.17) Returns true (1) if first operand matches any element of JSON array passed as second operand, otherwise returns false (0) MICROSECOND() Return the microseconds from argument MID() Return a substring starting from the specified position MIN() Return the minimum value MINUTE() Return the minute from the argument MOD() Return the remainder MONTH() Return the month from the date passed MONTHNAME() Return the name of the month MultiLineString() Contruct MultiLineString from LineString values MultiPoint() Construct MultiPoint from Point values MultiPolygon() Construct MultiPolygon from Polygon values NAME_CONST() Cause the column to have the given name NOT, ! Negates value NOT BETWEEN ... AND ... Whether a value is not within a range of values NOT IN() Whether a value is not within a set of values NOT LIKE Negation of simple pattern matching NOT REGEXP Negation of REGEXP NOW() Return the current date and time NTH_VALUE() Value of argument from N-th row of window frame NTILE() Bucket number of current row within its partition. NULLIF() Return NULL if expr1 = expr2 OCT() Return a string containing octal representation of a number OCTET_LENGTH() Synonym for LENGTH() OR, || Logical OR ORD() Return character code for leftmost character of the argument PERCENT_RANK() Percentage rank value PERIOD_ADD() Add a period to a year-month PERIOD_DIFF() Return the number of months between periods PI() Return the value of pi Point() Construct Point from coordinates Polygon() Construct Polygon from LineString arguments POSITION() Synonym for LOCATE() POW() Return the argument raised to the specified power POWER() Return the argument raised to the specified power PS_CURRENT_THREAD_ID() (introduced 8.0.16) Performance Schema thread ID for current thread PS_THREAD_ID() (introduced 8.0.16) Performance Schema thread ID for given thread QUARTER() Return the quarter from a date argument QUOTE() Escape the argument for use in an SQL statement RADIANS() Return argument converted to radians RAND() Return a random floating-point value RANDOM_BYTES() Return a random byte vector RANK() Rank of current row within its partition, with gaps REGEXP Whether string matches regular expression REGEXP_INSTR() Starting index of substring matching regular expression REGEXP_LIKE() Whether string matches regular expression REGEXP_REPLACE() Replace substrings matching regular expression REGEXP_SUBSTR() Return substring matching regular expression RELEASE_ALL_LOCKS() Release all current named locks RELEASE_LOCK() Release the named lock REPEAT() Repeat a string the specified number of times REPLACE() Replace occurrences of a specified string REVERSE() Reverse the characters in a string RIGHT() Return the specified rightmost number of characters RLIKE Whether string matches regular expression ROLES_GRAPHML() Return a GraphML document representing memory role subgraphs ROUND() Round the argument ROW_COUNT() The number of rows updated ROW_NUMBER() Number of current row within its partition RPAD() Append string the specified number of times RTRIM() Remove trailing spaces SCHEMA() Synonym for DATABASE() SEC_TO_TIME() Converts seconds to 'hh:mm:ss' format SECOND() Return the second (0-59) SESSION_USER() Synonym for USER() SHA1(), SHA() Calculate an SHA-1 160-bit checksum SHA2() Calculate an SHA-2 checksum SIGN() Return the sign of the argument SIN() Return the sine of the argument SLEEP() Sleep for a number of seconds SOUNDEX() Return a soundex string SOUNDS LIKE Compare sounds SPACE() Return a string of the specified number of spaces SQRT() Return the square root of the argument ST_Area() Return Polygon or MultiPolygon area ST_AsBinary(), ST_AsWKB() Convert from internal geometry format to WKB ST_AsGeoJSON() Generate GeoJSON object from geometry ST_AsText(), ST_AsWKT() Convert from internal geometry format to WKT ST_Buffer() Return geometry of points within given distance from geometry ST_Buffer_Strategy() Produce strategy option for ST_Buffer() ST_Centroid() Return centroid as a point ST_Contains() Whether one geometry contains another ST_ConvexHull() Return convex hull of geometry ST_Crosses() Whether one geometry crosses another ST_Difference() Return point set difference of two geometries ST_Dimension() Dimension of geometry ST_Disjoint() Whether one geometry is disjoint from another ST_Distance() The distance of one geometry from another ST_Distance_Sphere() Minimum distance on earth between two geometries ST_EndPoint() End Point of LineString ST_Envelope() Return MBR of geometry ST_Equals() Whether one geometry is equal to another ST_ExteriorRing() Return exterior ring of Polygon ST_FrechetDistance() (introduced 8.0.23) The discrete Fréchet distance of one geometry from another ST_GeoHash() Produce a geohash value ST_GeomCollFromText(), ST_GeometryCollectionFromText(), ST_GeomCollFromTxt() Return geometry collection from WKT ST_GeomCollFromWKB(), ST_GeometryCollectionFromWKB() Return geometry collection from WKB ST_GeometryN() Return N-th geometry from geometry collection ST_GeometryType() Return name of geometry type ST_GeomFromGeoJSON() Generate geometry from GeoJSON object ST_GeomFromText(), ST_GeometryFromText() Return geometry from WKT ST_GeomFromWKB(), ST_GeometryFromWKB() Return geometry from WKB ST_HausdorffDistance() (introduced 8.0.23) The discrete Hausdorff distance of one geometry from another ST_InteriorRingN() Return N-th interior ring of Polygon ST_Intersection() Return point set intersection of two geometries ST_Intersects() Whether one geometry intersects another ST_IsClosed() Whether a geometry is closed and simple ST_IsEmpty() Whether a geometry is empty ST_IsSimple() Whether a geometry is simple ST_IsValid() Whether a geometry is valid ST_LatFromGeoHash() Return latitude from geohash value ST_Latitude() (introduced 8.0.12) Return latitude of Point ST_Length() Return length of LineString ST_LineFromText(), ST_LineStringFromText() Construct LineString from WKT ST_LineFromWKB(), ST_LineStringFromWKB() Construct LineString from WKB ST_LineInterpolatePoint() (introduced 8.0.24) The point a given percentage along a LineString ST_LineInterpolatePoints() (introduced 8.0.24) The points a given percentage along a LineString ST_LongFromGeoHash() Return longitude from geohash value ST_Longitude() (introduced 8.0.12) Return longitude of Point ST_MakeEnvelope() Rectangle around two points ST_MLineFromText(), ST_MultiLineStringFromText() Construct MultiLineString from WKT ST_MLineFromWKB(), ST_MultiLineStringFromWKB() Construct MultiLineString from WKB ST_MPointFromText(), ST_MultiPointFromText() Construct MultiPoint from WKT ST_MPointFromWKB(), ST_MultiPointFromWKB() Construct MultiPoint from WKB ST_MPolyFromText(), ST_MultiPolygonFromText() Construct MultiPolygon from WKT ST_MPolyFromWKB(), ST_MultiPolygonFromWKB() Construct MultiPolygon from WKB ST_NumGeometries() Return number of geometries in geometry collection ST_NumInteriorRing(), ST_NumInteriorRings() Return number of interior rings in Polygon ST_NumPoints() Return number of points in LineString ST_Overlaps() Whether one geometry overlaps another ST_PointAtDistance() (introduced 8.0.24) The point a given distance along a LineString ST_PointFromGeoHash() Convert geohash value to POINT value ST_PointFromText() Construct Point from WKT ST_PointFromWKB() Construct Point from WKB ST_PointN() Return N-th point from LineString ST_PolyFromText(), ST_PolygonFromText() Construct Polygon from WKT ST_PolyFromWKB(), ST_PolygonFromWKB() Construct Polygon from WKB ST_Simplify() Return simplified geometry ST_SRID() Return spatial reference system ID for geometry ST_StartPoint() Start Point of LineString ST_SwapXY() Return argument with X/Y coordinates swapped ST_SymDifference() Return point set symmetric difference of two geometries ST_Touches() Whether one geometry touches another ST_Transform() (introduced 8.0.13) Transform coordinates of geometry ST_Union() Return point set union of two geometries ST_Validate() Return validated geometry ST_Within() Whether one geometry is within another ST_X() Return X coordinate of Point ST_Y() Return Y coordinate of Point STATEMENT_DIGEST() Compute statement digest hash value STATEMENT_DIGEST_TEXT() Compute normalized statement digest STD() Return the population standard deviation STDDEV() Return the population standard deviation STDDEV_POP() Return the population standard deviation STDDEV_SAMP() Return the sample standard deviation STR_TO_DATE() Convert a string to a date STRCMP() Compare two strings SUBDATE() Synonym for DATE_SUB() when invoked with three arguments SUBSTR() Return the substring as specified SUBSTRING() Return the substring as specified SUBSTRING_INDEX() Return a substring from a string before the specified number of occurrences of the delimiter SUBTIME() Subtract times SUM() Return the sum SYSDATE() Return the time at which the function executes SYSTEM_USER() Synonym for USER() TAN() Return the tangent of the argument TIME() Extract the time portion of the expression passed TIME_FORMAT() Format as time TIME_TO_SEC() Return the argument converted to seconds TIMEDIFF() Subtract time TIMESTAMP() With a single argument, this function returns the date or datetime expression; with two arguments, the sum of the arguments TIMESTAMPADD() Add an interval to a datetime expression TIMESTAMPDIFF() Subtract an interval from a datetime expression TO_BASE64() Return the argument converted to a base-64 string TO_DAYS() Return the date argument converted to days TO_SECONDS() Return the date or datetime argument converted to seconds since Year 0 TRIM() Remove leading and trailing spaces TRUNCATE() Truncate to specified number of decimal places UCASE() Synonym for UPPER() UNCOMPRESS() Uncompress a string compressed UNCOMPRESSED_LENGTH() Return the length of a string before compression UNHEX() Return a string containing hex representation of a number UNIX_TIMESTAMP() Return a Unix timestamp UpdateXML() Return replaced XML fragment UPPER() Convert to uppercase USER() The user name and host name provided by the client UTC_DATE() Return the current UTC date UTC_TIME() Return the current UTC time UTC_TIMESTAMP() Return the current UTC date and time UUID() Return a Universal Unique Identifier (UUID) UUID_SHORT() Return an integer-valued universal identifier UUID_TO_BIN() Convert string UUID to binary VALIDATE_PASSWORD_STRENGTH() Determine strength of password VALUES() Define the values to be used during an INSERT VAR_POP() Return the population standard variance VAR_SAMP() Return the sample variance VARIANCE() Return the population standard variance VERSION() Return a string that indicates the MySQL server version WAIT_FOR_EXECUTED_GTID_SET() Wait until the given GTIDs have executed on the replica. WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS() (deprecated 8.0.18) Use WAIT_FOR_EXECUTED_GTID_SET(). WEEK() Return the week number WEEKDAY() Return the weekday index WEEKOFYEAR() Return the calendar week of the date (1-53) WEIGHT_STRING() Return the weight string for a string XOR Logical XOR YEAR() Return the year YEARWEEK() Return the year and week | Bitwise OR ~ Bitwise inversion Now that we have an idea of all the parts of a query, we can now talk about how they all fit together in the context of a complete query. Complete SELECT query SELECT DISTINCT column, AGG_FUNC(column_or_expression), … FROM mytable JOIN another_table ON mytable.column = another_table.column WHERE constraint_expression GROUP BY column HAVING constraint_expression ORDER BY column ASC/DESC LIMIT count OFFSET COUNT; Each query begins with finding the data that we need in a database, and then filtering that data down into something that can be processed and understood as quickly as possible. Because each part of the query is executed sequentially, it's important to understand the order of execution so that you know what results are accessible where. Query order of execution 1. FROM and JOINs The FROM clause, and subsequent JOINs are first executed to determine the total working set of data that is being queried. This includes subqueries in this clause, and can cause temporary tables to be created under the hood containing all the columns and rows of the tables being joined. 2. WHERE Once we have the total working set of data, the first-pass WHERE constraints are applied to the individual rows, and rows that do not satisfy the constraint are discarded. Each of the constraints can only access columns directly from the tables requested in the FROM clause. Aliases in the SELECT part of the query are not accessible in most databases since they may include expressions dependent on parts of the query that have not yet executed. 3. GROUP BY The remaining rows after the WHERE constraints are applied are then grouped based on common values in the column specified in the GROUP BY clause. As a result of the grouping, there will only be as many rows as there are unique values in that column. Implicitly, this means that you should only need to use this when you have aggregate functions in your query. 4. HAVING If the query has a GROUP BY clause, then the constraints in the HAVING clause are then applied to the grouped rows, discard the grouped rows that don't satisfy the constraint. Like the WHERE clause, aliases are also not accessible from this step in most databases. 5. SELECT Any expressions in the SELECT part of the query are finally computed. 6. DISTINCT Of the remaining rows, rows with duplicate values in the column marked as DISTINCT will be discarded. 7. ORDER BY If an order is specified by the ORDER BY clause, the rows are then sorted by the specified data in either ascending or descending order. Since all the expressions in the SELECT part of the query have been computed, you can reference aliases in this clause. 8. LIMIT / OFFSET Finally, the rows that fall outside the range specified by the LIMIT and OFFSET are discarded, leaving the final set of rows to be returned from the query.