logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Alzabo::SQLMaker::MySQL - Alzabo SQL making class for MySQL

Author

       Dave Rolsky, <dave@urth.org>

perl v5.34.0                                       2022-06-14                       Alzabo::SQLMaker::MySQL(3pm)

Description

       This class implementes MySQL-specific SQL creation.  MySQL does not allow subselects.  Any attempt to use
       a subselect (by passing an "Alzabo::SQMaker" object in as parameter to a method) will result in an
       "Alzabo::Exception::SQL" error.

Exported Sql Functions

       SQL may be imported by name or by tags.  They take arguments as documented in the MySQL documentation
       (version 3.23.39).  The functions (organized by tag) are:

   :math
        PI
        RAND
        MOD
        ROUND
        POW
        POWER
        ATAN2
        ABS
        SIGN
        FLOOR
        CEILING
        EXP
        LOG
        LOG10
        SQRT
        COS
        SIN
        TAN
        ACOS
        ASIN
        ATAN
        COT
        DEGREES
        RADIANS
        TRUNCATE

   :string
        CHAR
        POSITION
        INSTR
        LEFT
        RIGHT
        FIND_IN_SET
        REPEAT
        LEAST
        GREATEST
        CONCAT
        ELT
        FIELD
        MAKE_SET
        LOCATE
        SUBSTRING
        CONV
        LPAD
        RPAD
        MID
        SUBSTRING_INDEX
        REPLACE
        CONCAT_WS
        EXPORT_SET
        INSERT
        ASCII
        ORD
        BIN
        OCT
        HEX
        LENGTH
        OCTET_LENGTH
        CHAR_LENGTH
        CHARACTER_LENGTH
        TRIM
        LTRIM
        RTRIM
        SOUNDEX
        SPACE
        REVERSE
        LCASE
        LOWER
        UCASE
        UPPER

   :datetime
        CURDATE
        CURRENT_DATE
        CURTIME
        CURRENT_TIME
        NOW
        SYSDATE
        CURRENT_TIMESTAMP
        UNIX_TIMESTAMP
        WEEK
        PERIOD_ADD
        PERIOD_DIFF
        DATE_ADD
        DATE_SUB
        ADDDATE
        SUBDATE
        DATE_FORMAT
        TIME_FORMAT
        FROM_UNIXTIME
        DAYOFWEEK
        WEEKDAY
        DAYOFYEAR
        MONTH
        DAYNAME
        MONTHNAME
        QUARTER
        YEAR
        YEARWEEK
        HOUR
        MINUTE
        SECOND
        TO_DAYS
        FROM_DAYS
        SEC_TO_TIME
        TIME_TO_SEC

   :aggregate
       These are functions which operate on an aggregate set of values all at once.

        COUNT
        AVG
        MIN
        MAX
        SUM
        STD
        STDDEV

   :system
       These are functions which return information about the MySQL server.

        DATABASE
        USER
        SYSTEM_USER
        SESSION_USER
        VERSION
        CONNECTION_ID
        LAST_INSERT_ID
        GET_LOCK
        RELEASE_LOCK
        BENCHMARK
        MASTER_POS_WAIT

   :control
       These are flow control functions:

        IFNULL
        NULLIF
        IF

   :misc
       These are functions which don't fit into any other categories.

        ENCRYPT
        ENCODE
        DECODE
        FORMAT
        INET_NTOA
        INET_ATON
        BIT_OR
        BIT_AND
        PASSWORD
        MD5
        LOAD_FILE

   :fulltext
       These are functions related to MySQL's fulltext searching capabilities.

        MATCH
        AGAINST
        IN_BOOLEAN_MODE

       NOTE: In MySQL 4.0 and greater, it is possible to say that a search is in boolean mode in order to change
       how MySQL handles the argument given to AGAINST.  This will not work with earlier versions.

   :common
       These are functions from other groups that are most commonly used.

        NOW
        COUNT
        AVG
        MIN
        MAX
        SUM
        DISTINCT

Methods

       Almost all of the functionality inherited from Alzabo::SQLMaker is used as is.  The only overridden
       methods are "limit()" and "get_limit()", as MySQL does allow for a "LIMIT" clause in its SQL.

Name

       Alzabo::SQLMaker::MySQL - Alzabo SQL making class for MySQL

Synopsis

         use Alzabo::SQLMaker;

         my $sql = Alzabo::SQLMaker->new( sql => 'MySQL' );

See Also