Data Builder

The 8base Data Builder is a data modeling UI for defining database tables, field types, and relationships between tables. For each table defined, the 8base GraphQL engine creates GraphQL schema object types and the corresponding query, mutation, and subscription fields with resolvers automatically.

This means that all Create, Read, Update, and Delete (CRUD) actions, as well as real-time connections (websockets) are immediately available to use via the workspace's unique API endpoint.

Data Builder is found in the management console's Data view. It is packed with cool features. For example, File fields allow you to seamlessly attach files to records and Smart fields make it easy to implement complex validations for addresses or phone number.

8Base Data Builder

Tables

In the background, 8base spins up an Aurora MySQL database instance for your workspace. Aurora is a relational database that can handle complex queries and is ACID (Atomicity, Consistency, Isolation, Durability) compliant. When tables are created, updated, and deleted in a workspace, 8base handles the corresponding migrations and executes them immediately against the database. Therefore, you're database is always reflected by the Data Builder UI - showing all available fields, validations, tables, and relations.

Creating Tables

New tables are created using the "+ New Table" button. An input that prompts for a name value will appear, with which the table can named. All tables require unique names.

As soon as a table is created, corresponding GraphQL schema types and query, mutation, and subscription resolvers will be generated automatically.

Creating new table's in the Data Builder

Creating Table Indexes

To improve look up performance on your tables, you can add one or more of your own indexes. This feature is found in the table settings.

You can choose up to 8 fields on the table by which the index will be constructed, as well as whether or not it should be a Unique Index. When naming the index, insure that no spaces are used.

Creating new table index in the Data Builder

Updating Tables

After a table is created, fields and relations can get defined. All updates to a table are published in real-time, giving a seemless experience between defining a data model and having it be highly available.

As soon as a table is updated, its corresponding GraphQL schema types and query, mutation, and subscription resolvers will be updated automatically.

To ensure that table related errors and mistakes are minimized, 8base protects against dozens of harmful actions. Some of these include:

  • A prompt that requires a Default Value will appear when changing a non-mandatory field to being mandatory.
  • Date, Number, and Text field values are auto-magically converted when an existing field type is updated.
  • When changing a non-unique field to being unique, current records are validated for having unqiue values.
  • Many more!

Deleting Tables

A confirmation input that requires the table name to be typed in appears when attempting to delete a table. Please know that deleted tables cannot be restored and any existing table records will be lost. Additionally, if any other tables are related to the table being deleted - belongs to and has many, either specified as mandatory or not - those relations will be severed.

Deleting table's in the Data Builder

Table Relationships

8base supports 3 types of table relationships to be defined that are congruent with what to expect from relational databases:

TypeA to BB to B
one-to-oneRecords in table A may have_one or belong_to records in table B.Records in table B may have_one or belong_to records in table A.
one-to-manyRecord in table A may have_many records in table B.Records in table B may have_one or belong_to records in table A.
many-to-manyRecord in table A may have_many records in table B.Record in table B may have_many records in table A.

Defining relationships in the Data Builder

Defining a relationship between two tables can be accomplished by dragging and dropping one table onto another, as well as by selecting Table as the Data Type when creating a new table field.

Table Configurations

For specifying has many, has one and belongs to relationships between tables.

Configurations

  • Table - For selecting what table is to get related.
  • Relation Field Name - The name of the relation as it appears on the corresponding table.
  • Allow Multiple X to Y - Whether the relationship is has one or has many.
  • Mandatory - Whether the field relationship is required.
  • Description - A meta description used for documentation.
Self-Referential Relationships

Self-Referential relationships can be defined by relating tables to themselves! For example, a the Users table might have a many-to-many relationship with itself, and use a named association of friends.

Table Types

There are several types of tables in 8base, each of which offers an important utility.

Custom Tables

Custom tables are the tables created in any workspace by the administrator. They are fully customizable and managed by the administrator.

System Tables

System tables - like Users - are tables that come delivered with a workspace. They are fully extensible, meaning that new fields and relations can be added to them. However, they can neither be deleted, renamed, nor their existing fields changes.

View Tables

View Tables are virtual tables that aggregate fields from several or more tables into a single view. Under the hood, they are based on the result-set of an SQL statement. In a workspace, they can be created using the viewCreate GraphQL mutation in the API Explorer.

For more information on views, check this out.

Fields

8base offers all database field types required for building software - and some! Fields with the type File, Smart, and others have extended capabilities that streamline specific tasks - such as managing file/image uploads and validating addresses and phone numbers.

Creating Fields

Every field gets defined on a table and requires a name and a type. Field names must be unique on the table, irresepective of their type. Once a new field has been created, a configurations modal will appear allowing for further customizations - each being specific to the field type.

Updating Fields

Fields are easily updated using the same interface used to create them. Updates to attributes like the field's name - and even type in some cases - are changed in real-time, while changes configurations must be saved. If 8base detects an issue with the change being made, an alert will be display with instructions to remedy the issue.

Updating fields in the Data Builder

Deleting Fields

The "X" found on the right side of a field's name input gets clicked to delete a table. A confirmation modal that requires the field name to be typed in appears when attempting to delete a field. Deleted tables cannot be restored and any existing data be lost.

Field Types

8base offer 8 field types that can be configured to fit almost any data requirement.

Text

For storing String data.

Configurations

  • Field Size - The maximum string length.
  • Allow Multiple - Stores 0 or more Text values in an array (not searchable).
  • Mandatory - Whether the field value is required.
  • Unique - Whether the field value is required to be unique.
  • Default Value - A default value assigned to new records.
  • Description - A meta description used for documentation.

Number

For storing Integer, BigInt, and Float data.

Configurations

  • Decimal Place - How many decimal places Float values maintain.
  • Big Number - For numbers outside the range -2^63 (-9,223,372,036,854,775,808) to 2^63-1 (9,223,372,036,854,775,807)
  • Minimum Value - The minimum value required.
  • Maximum Value - The maximum value required.
  • Allow Multiple - Stores 0 or more Number values in an array (not searchable).
  • Mandatory - Whether the field value is required.
  • Unique - Whether the field value is required to be unique.
  • Default Value - A default value assigned to new records.
  • Description - A meta description used for documentation.

Date

For storing Date and DateTime data.

Configurations

  • Format - Whether the field stores a Date or a DateTime value.
  • Allow Multiple - Stores 0 or more Date values in an array (not searchable).
  • Mandatory - Whether the field value is required.
  • Unique - Whether the field value is required to be unique.
  • Default Value - A default value assigned to new records.
  • Description - A meta description used for documentation.

Switch

For storing Boolean and custom Enum type data.

Configurations

  • Format - For specifying the Boolean type (true / false, yes / no, etc...)
  • Allow Multiple - Stores 0 or more Boolean values in an array (not searchable).
  • Mandatory - Whether the field value is required.
  • Default Value - A default value assigned to new records.
  • Description - A meta description used for documentation.

File

For storing Image and File objects.

Configurations

  • Format - Whether the field stores a File or an Image.
  • Allow Multiple - Stores 0 or more File objects in an array.
  • Mandatory - Whether the field value is required.
  • Description - A meta description used for documentation.

Table

For specifying has many, has one and belongs to relationships between tables.

Configurations

  • Table - For selecting what table is to get related.
  • Relation Field Name - The name of the relation as it appears on the corresponding table.
  • Allow Multiple X to Y - Whether the relationship is has one or has many.
  • Mandatory - Whether the field relationship is required.
  • Description - A meta description used for documentation.

Smart

For storing addresses and phone numbers with managed validations and logic.

Configurations

  • Format - Whether the field stores a Phone Number or an Address.
  • Allow Multiple - Stores 0 or more Smart objects in an array.
  • Mandatory - Whether the field value is required.
  • Description - A meta description used for documentation.

JSON

For storing JSON objects.

Configurations

  • Mandatory - Whether the field value is required.
  • Default Value - A default value assigned to new records.
  • Description - A meta description used for documentation.

Smart Fields

Smart Fields are enriched field types offered by 8base. They provide structure, and sometimes logic, to the organization and validation of common data.

Address

For persisting addresses in a field. The address field will display available fields in the Data Viewer and API Explorer.

type Address = {
  country: !String
  street1: !String
  street2: String
  zip: !String
  city: !String
  state: !String
}

Phone

For persisting phone numbers in a field. The phone field will display available fields in the Data Viewer and API Explorer.

type Phone = {
  code: !String
  number: !String
}

Auto Increment Fields

When using Number field types, the "Auto-Increment" option is available under the fields Advanced Settings. The system will automatically increment a number value for the field when selected, starting at 1.

Fields that have been created using Auto Increment can be deleted, though they are not editable via the console or API when in use. Similarly to a integer based Primary Key, the value is always escalating. This means that if five-records are created and recieve the values 1-5 in their Auto Increment fields, whether or not those records get deleted, the next record will be assigned a value of 6.

Calculated Fields

Under Advanced Settings for field types Text, Number, Date, Switch, and JSON the "Calculated" option is available. This feature follows the MySQL Generated Column standard.

Calculated Field Types

The "Virtual" and "Stored" options will indicate how values are stored, which has the following implications when used:

  • Virtual - Values are not stored, but are evaluated when rows are read. A virtual column takes no storage.

  • Stored - Values are evaluated and stored when rows are inserted or updated. A stored column does require storage space and can be indexed.

Adding Full Name Field to Users table in 8base Console

When creating Calculated Fields, you only have access to fields stored on the record itself. Any field can be accessed using the same field names seen on the GraphQL API. The return value of the calculation must be the same as the set field type.

For example, adding a Full Name field to the User's table could be accomplished using a virtual calculated field with the expression set to CONCAT(firstName, " ", lastName). This would add a fullName attribute to our API queries.

GqlQuery = `
  query {
    usersList {
      items {
        fullName
      }
    }
  }
`

JsonResponse = {
  "data": {
    "usersList": {
      "items": [
        {
          "fullName": "John Smith"
        }
      ]
    }
  }
}

There is a long list of available MySQL Functions that are referenced with further documenation MySQL Docs. Functions and Operators, all of which are available when using Calculated Fields. All operators, with simple descriptions, are listed below.

NameDescription
&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
%, MODModulo 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().
->> (introduced 5.7.13)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
Area() (deprecated)Return Polygon or MultiPolygon area
AsBinary(), AsWKB() (deprecated)Convert from internal geometry format to WKB
ASCII()Return numeric value of left-most character
ASIN()Return the arc sine
AsText(), AsWKT() (deprecated)Convert from internal geometry format to WKT
ASYMMETRIC_DECRYPT()Decrypt ciphertext using private or public key
ASYMMETRIC_DERIVE()Derive symmetric key from asymmetric keys
ASYMMETRIC_ENCRYPT()Encrypt cleartext using private or public key
ASYMMETRIC_SIGN()Generate signature from digest
ASYMMETRIC_VERIFY()Verify that signature matches digest
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
BINARYCast 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
Buffer() (deprecated)Return geometry of points within given distance from geometry
CASECase 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
Centroid() (deprecated)Return centroid as a point
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
Contains() (deprecated)Whether MBR of one geometry contains MBR of another
CONV()Convert numbers between different number bases
CONVERT()Cast a value as a certain type
CONVERT_TZ()Convert from one time zone to another
ConvexHull() (deprecated)Return convex hull of geometry
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
CREATE_ASYMMETRIC_PRIV_KEY()Create private key
CREATE_ASYMMETRIC_PUB_KEY()Create public key
CREATE_DH_PARAMETERS()Generate shared DH secret
CREATE_DIGEST()Generate digest from string
Crosses() (deprecated)Whether one geometry crosses another
CURDATE()Return the current date
CURRENT_DATE(), CURRENT_DATESynonyms for CURDATE()
CURRENT_TIME(), CURRENT_TIMESynonyms for CURTIME()
CURRENT_TIMESTAMP(), CURRENT_TIMESTAMPSynonyms for NOW()
CURRENT_USER(), CURRENT_USERThe 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)
DECODE() (deprecated)Decode a string encrypted using ENCODE()
DEFAULT()Return the default value for a table column
DEGREES()Convert radians to degrees
DES_DECRYPT() (deprecated)Decrypt a string
DES_ENCRYPT() (deprecated)Encrypt a string
Dimension() (deprecated)Dimension of geometry
Disjoint() (deprecated)Whether MBRs of two geometries are disjoint
Distance() (deprecated)The distance of one geometry from another
DIVInteger division
ELT()Return string at index number
ENCODE() (deprecated)Encode a string
ENCRYPT() (deprecated)Encrypt a string
EndPoint() (deprecated)End Point of LineString
Envelope() (deprecated)Return MBR of geometry
Equals() (deprecated)Whether MBRs of two geometries are equal
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
ExteriorRing() (deprecated)Return exterior ring of Polygon
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
FLOOR()Return the largest integer value not greater than the argument
FORMAT()Return a number formatted to specified number of decimal places
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
GeomCollFromText(), GeometryCollectionFromText() (deprecated)Return geometry collection from WKT
GeomCollFromWKB(), GeometryCollectionFromWKB() (deprecated)Return geometry collection from WKB
GeometryCollection()Construct geometry collection from geometries
GeometryN() (deprecated)Return N-th geometry from geometry collection
GeometryType() (deprecated)Return name of geometry type
GeomFromText(), GeometryFromText() (deprecated)Return geometry from WKT
GeomFromWKB(), GeometryFromWKB() (deprecated)Return geometry from WKB
GET_FORMAT()Return a date format string
GET_LOCK()Get a named lock
GLength() (deprecated)Return length of LineString
GREATEST()Return the largest argument
GROUP_CONCAT()Return a concatenated string
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
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
InteriorRingN() (deprecated)Return N-th interior ring of Polygon
Intersects() (deprecated)Whether MBRs of two geometries intersect
INTERVAL()Return the index of the argument that is less than the first argument
ISTest 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 NOTTest a value against a boolean
IS NOT NULLNOT NULL value test
IS NULLNULL value test
IS_USED_LOCK()Whether the named lock is in use; return connection identifier if true
IsClosed() (deprecated)Whether a geometry is closed and simple
IsEmpty() (deprecated)Placeholder function
ISNULL()Test whether the argument is NULL
IsSimple() (deprecated)Whether a geometry is simple
JSON_APPEND() (deprecated)Append data to JSON document
JSON_ARRAY()Create JSON array
JSON_ARRAY_APPEND()Append data to JSON document
JSON_ARRAY_INSERT()Insert into JSON array
JSON_ARRAYAGG() (introduced 5.7.22)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 5.7.22)Merge JSON documents, preserving duplicate keys. Deprecated synonym for JSON_MERGE_PRESERVE()
JSON_MERGE_PATCH() (introduced 5.7.22)Merge JSON documents, replacing values of duplicate keys
JSON_MERGE_PRESERVE() (introduced 5.7.22)Merge JSON documents, preserving duplicate keys
JSON_OBJECT()Create JSON object
JSON_OBJECTAGG() (introduced 5.7.22)Return result set as a single JSON object
JSON_PRETTY() (introduced 5.7.22)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_SEARCH()Path to value within JSON document
JSON_SET()Insert data into JSON document
JSON_STORAGE_SIZE() (introduced 5.7.22)Space used for storage of binary representation of a JSON document
JSON_TYPE()Type of JSON value
JSON_UNQUOTE()Unquote JSON value
JSON_VALID()Whether JSON value is valid
LAST_DAYReturn the last day of the month for the argument
LAST_INSERT_ID()Value of the AUTOINCREMENT column for the last INSERT
LCASE()Synonym for LOWER()
LEAST()Return the smallest argument
LEFT()Return the leftmost number of characters as specified
LENGTH()Return the length of a string in bytes
LIKESimple pattern matching
LineFromText(), LineStringFromText() (deprecated)Construct LineString from WKT
LineFromWKB(), LineStringFromWKB() (deprecated)Construct LineString from WKB
LineString()Construct LineString from Point values
LN()Return the natural logarithm of the argument
LOAD_FILE()Load the named file
LOCALTIME(), LOCALTIMESynonym 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 slave has read and applied all updates up to the specified position
MATCHPerform 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
MBREqual() (deprecated)Whether MBRs of two geometries are equal
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
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
MLineFromText(), MultiLineStringFromText() (deprecated)Construct MultiLineString from WKT
MLineFromWKB(), MultiLineStringFromWKB() (deprecated)Construct MultiLineString from WKB
MOD()Return the remainder
MONTH()Return the month from the date passed
MONTHNAME()Return the name of the month
MPointFromText(), MultiPointFromText() (deprecated)Construct MultiPoint from WKT
MPointFromWKB(), MultiPointFromWKB() (deprecated)Construct MultiPoint from WKB
MPolyFromText(), MultiPolygonFromText() (deprecated)Construct MultiPolygon from WKT
MPolyFromWKB(), MultiPolygonFromWKB() (deprecated)Construct MultiPolygon from WKB
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 LIKENegation of simple pattern matching
NOT REGEXPNegation of REGEXP
NOW()Return the current date and time
NULLIF()Return NULL if expr1 = expr2
NumGeometries() (deprecated)Return number of geometries in geometry collection
NumInteriorRings() (deprecated)Return number of interior rings in Polygon
NumPoints() (deprecated)Return number of points in LineString
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
Overlaps() (deprecated)Whether MBRs of two geometries overlap
PASSWORD() (deprecated)Calculate and return a password string
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
PointFromText() (deprecated)Construct Point from WKT
PointFromWKB() (deprecated)Construct Point from WKB
PointN() (deprecated)Return N-th point from LineString
PolyFromText(), PolygonFromText() (deprecated)Construct Polygon from WKT
PolyFromWKB(), PolygonFromWKB() (deprecated)Construct Polygon from WKB
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
PROCEDURE ANALYSE() (deprecated 5.7.18)Analyze the results of a query
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
REGEXPWhether string matches 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
RLIKEWhether string matches regular expression
ROUND()Round the argument
ROW_COUNT()The number of rows updated
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 LIKECompare sounds
SPACE()Return a string of the specified number of spaces
SQRT()Return the square root of the argument
SRID() (deprecated)Return spatial reference system ID for geometry
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_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_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()Placeholder function
ST_IsSimple()Whether a geometry is simple
ST_IsValid()Whether a geometry is valid
ST_LatFromGeoHash()Return latitude from geohash value
ST_Length()Return length of LineString
ST_LineFromText(), ST_LineStringFromText()Construct LineString from WKT
ST_LineFromWKB(), ST_LineStringFromWKB()Construct LineString from WKB
ST_LongFromGeoHash()Return longitude from geohash value
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_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_SymDifference()Return point set symmetric difference of two geometries
ST_Touches()Whether one geometry touches another
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
StartPoint() (deprecated)Start Point of LineString
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
Touches() (deprecated)Whether one geometry touches another
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
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 slave.
WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS()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
Within() (deprecated)Whether MBR of one geometry is within MBR of another
X() (deprecated)Return X coordinate of Point
XORLogical XOR
Y() (deprecated)Return Y coordinate of Point
YEAR()Return the year
YEARWEEK()Return the year and week
|Bitwise OR
~Bitwise inversion

Edit this page on GitHub