zoukankan      html  css  js  c++  java
  • mysql基础知识总结

     

    -- 前记

     如果你想算一个两位数乘两位数的结果,首先要学会0910个阿拉伯数字。面对任何复杂需求,首先要沉淀基础知识到信手拈来,这样在复杂需求到来的时候,才能轻松搜罗自己的大脑快速将基本原素运用组合,聚合,衍生,复加,都手法快速形成解决方案。

    mysql亦是如此。

    以下不涉及复杂高深的理论知识,更像是mysql实战的一些基本原素。

    1.mysql系统数据库

    2.mysql常用系统命令

    3.mysql常用系统表及命令

    4.mysql常用函数

    1.mysql系统数据库

    mysql自带的4个数据库

    mysql> show databases;

    +--------------------+

    | Database |

    +--------------------+

    | information_schema |

    | mysql |

    | performance_schema |

    | test |

    +--------------------+

    6 rows in set (0.00 sec)

    1.1 information_schema详细介绍:

    information_schema数据库是MySQL自带的,它提供了访问数据库元数据的方式。什么是元数据呢?元数据是关于数据的数据,如数据库名或表名,列的数据类型,或访问权限等。有些时候用于表述该信息的其他术语包括数据词典系统目录

    MySQL中,把 information_schema 看作是一个数据库,确切说是信息数据库。其中保存着关于MySQL服务器所维护的所有其他数据库的信息。如数据库名,数据库的表,表栏的数据类型与访问权 限等。在INFORMATION_SCHEMA中,有数个只读表。它们实际上是视图,而不是基本表,因此,你将无法看到与之相关的任何文件。

    information_schema数据库表说明:

    SCHEMATA表:提供了当前mysql实例中所有数据库的信息。是show databases的结果取之此表。

    TABLES表:提供了关于数据库中的表的信息(包括视图)。详细表述了某个表属于哪个schema,表类型,表引擎,创建时间等信息。是show tables from schemaname的结果取之此表。

    COLUMNS表:提供了表中的列信息。详细表述了某张表的所有列以及每个列的信息。是show columns from schemaname.tablename的结果取之此表。

    STATISTICS表:提供了关于表索引的信息。是show index from schemaname.tablename的结果取之此表。

    USER_PRIVILEGES(用户权限)表:给出了关于全程权限的信息。该信息源自mysql.user授权表。是非标准表。

    SCHEMA_PRIVILEGES(方案权限)表:给出了关于方案(数据库)权限的信息。该信息来自mysql.db授权表。是非标准表。

    TABLE_PRIVILEGES(表权限)表:给出了关于表权限的信息。该信息源自mysql.tables_priv授权表。是非标准表。

    COLUMN_PRIVILEGES(列权限)表:给出了关于列权限的信息。该信息源自mysql.columns_priv授权表。是非标准表。

    CHARACTER_SETS(字符集)表:提供了mysql实例可用字符集的信息。是SHOW CHARACTER SET结果集取之此表。

    COLLATIONS表:提供了关于各字符集的对照信息。

    COLLATION_CHARACTER_SET_APPLICABILITY表:指明了可用于校对的字符集。这些列等效于SHOW COLLATION的前两个显示字段。

    TABLE_CONSTRAINTS表:描述了存在约束的表。以及表的约束类型。

    KEY_COLUMN_USAGE表:描述了具有约束的键列。

    ROUTINES表:提供了关于存储子程序(存储程序和函数)的信息。此时,ROUTINES表不包含自定义函数(UDF)。名为“mysql.proc name”的列指明了对应于INFORMATION_SCHEMA.ROUTINES表的mysql.proc表列。

    VIEWS表:给出了关于数据库中的视图的信息。需要有show views权限,否则无法查看视图信息。

    TRIGGERS表:提供了关于触发程序的信息。必须有super权限才能查看该表

    1.2 mysql作用介绍:

    mysql:这个是mysql的核心数据库,类似于sql server中的master表,主要负责存储数据库的用户、权限设置、关键字等mysql自己需要使用的控制和管理信息。不可以删除,如果对mysql不是很了解,也不要轻易修改这个数据库里面的表信息。

    mysql> show tables;

    +---------------------------+

    | Tables_in_mysql |

    +---------------------------+

    | column_stats |

    | columns_priv |

    | db |

    | event |

    | func |

    | general_log |

    | gtid_slave_pos |

    | help_category |

    | help_keyword |

    | help_relation |

    | help_topic |

    | host |

    | index_stats |

    | innodb_index_stats |

    | innodb_table_stats |

    | plugin |

    | proc |

    | procs_priv |

    | proxies_priv |

    | roles_mapping |

    | servers |

    | slow_log |

    | table_stats |

    | tables_priv |

    | time_zone |

    | time_zone_leap_second |

    | time_zone_name |

    | time_zone_transition |

    | time_zone_transition_type |

    | user |

    +---------------------------+

    30 rows in set (0.00 sec)

    1.3  performance_schema作用介绍:

    mysql 5.5 版本 新增了一个性能优化的引擎: PERFORMANCE_SCHEMA这个功能默认是关闭的:

    需要设置参数: performance_schema 才可以启动该功能,这个参数是静态参数,只能写在my.ini 中 不能动态修改。

    先看看有什么东西吧:

    mysql> use performance_schema;

    Database changed

    mysql> show tables ;

    +----------------------------------------------+

    | Tables_in_performance_schema |

    +----------------------------------------------+

    | cond_instances |

    | events_waits_current |

    | events_waits_history |

    | events_waits_history_long |

    | events_waits_summary_by_instance |

    | events_waits_summary_by_thread_by_event_name |

    | events_waits_summary_global_by_event_name |

    | file_instances |

    | file_summary_by_event_name |

    | file_summary_by_instance |

    | mutex_instances |

    | performance_timers |

    | rwlock_instances |

    | setup_consumers |

    | setup_instruments |

    | setup_timers |

    | threads |

    +----------------------------------------------+

    17 rows in set (0.00 sec)

    这里的数据表分为几类:

    1setup table : 设置表,配置监控选项。

    2current events table : 记录当前那些thread 正在发生什么事情。

    3history table 发生的各种事件的历史记录表

    4summary table 对各种事件的统计表

    5) 杂项表,乱七八糟表。

    setup 表:

    mysql> SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES

    -> WHERE TABLE_SCHEMA = 'performance_schema'

    -> AND TABLE_NAME LIKE 'setup%';

    +-------------------+

    | TABLE_NAME |

    +-------------------+

    | setup_consumers |

    | setup_instruments |

    | setup_timers |

    +-------------------+

    setup_consumers 描述各种事件

    setup_instruments 描述这个数据库下的表名以及是否开启监控。

    setup_timers 描述 监控选项已经采样频率的时间间隔

    1.4  sys

    sys_config : 这是在这个系统库上存在的唯一一个表

    sys数据库表说明

    CREATE TABLE `sys_config` (

      `variable` varchar(128) NOT NULL,

      `value` varchar(128) DEFAULT NULL,

      `set_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

      `set_by` varchar(128) DEFAULT NULL,

      PRIMARY KEY (`variable`)) ENGINE=InnoDB DEFAULT CHARSET=utf8

    • variable : 配置选项名称
    • value : 配置选项值
    • set_time : 该行配置修改的时间
    • set_by : 该行配置信息修改者,如果从被安装没有修改过,那么这个数据应该为NULL

    以上值的会话变量为@sys.+表中variable字段,如:

    @sys.statement_truncate_len

    可以

    set @sys.statement_truncate_len = 32

    临时改变值,在会话中会一直使用这个值,如果想要恢复使用表的默认值,只需要将这个会话值设置为null

    set @sys.statement_truncate_len = null;

    diagnostics.allow_i_s_tables

    默认为OFF ,如果开启表示允许diagnostics() 存储过程执行扫描information_schema.tables 表,如果表很多,那么可能会很耗性能

    diagnostics.include_raw

    默认为OFF,开启将会从metrics 视图输出未加工处理的数据

    statement_performance_analyzer.limit

    视图在没有加limit限制时,返回的最大行数

    statement_truncate_len

    通过format_statement()函数返回值的最大长度

    debug

    这个表非默认选项还有一个@sys.debug参数,可以手动加入

    INSERT INTO sys_config (variable, value) VALUES('debug', 'ON');

    UPDATE sys_config SET value = 'OFF' WHERE variable = 'debug';

    SET @sys.debug = NULL;

    关于此表有两个触发器

    sys_config_insert_set_user触发器

    如果加入新行通过insert语句,那么这个触发器会把set_by列设置为当前操作者

    sys_config_update_set_user触发器

    如果加入新行通过update语句,那么这个触发器会把set_by列设置为当前操作者

    2.mysql常用系统命令

    命令

    注释

    desc [table_name]

    表信息

    show columns from [table_name]

    表字段

    describe [table_name]

    表信息

    show create table [table_name]

    表创建语句

    show create database [database_name]

    显示数据库信息

    show table status from [database_name]

    数据库状态

    show tables

    显示当前数据库中所有表的名称

    show tables from [database_name]

    显示当前数据库中所有表的名称(同上)

    show databases

    显示mysql中所有数据库的名称

    show processlist

    显示系统中正在运行的所有进程,也就是当前正在执行的查询。

    show table status

    显示当前使用或者指定的database中的每个表的信息。信息包括表类型和表的最新更新时间

    show columns from [table_name] from [database_name]

    显示表中列名称

    show grants for user_name@localhost

    显示一个用户的权限,显示结果类似于grant 命令

    show index from [table_name]

    显示表的索引

    show status

    显示一些系统特定资源的信息,例如,正在运行的线程数量

    show variables

    显示系统变量的名称和值

    show privileges

    显示服务器所支持的不同权限

    show create database [database_name]

    显示create database 语句是否能够创建指定的数据库

    show create table [table_name]

    显示create database 语句是否能够创建指定的数据库

    show engies

    显示安装以后可用的存储引擎和默认引擎

    show innodb status

    显示innoDB存储引擎的状态

    show logs

    显示BDB存储引擎的日志

    show warnings

    显示最后一个执行的语句所产生的错误、警告和通知

    show errors

    只显示最后一个执行语句所产生的错误

    整理转载自: https://blog.csdn.net/xlxxcc/article/details/51754524

    1. mysql 常用系统表及命令

    常用系统表
    查看当前数据库连接ip信息
    – select * from information_schema.PROCESSLIST

    当前mysql实例中所有数据库的信息
    – select * from information_schema.SCHEMATA

    数据库中的表信息
    – select * from information_schema.TABLES

    当前数据库中的列信息
    – select * from information_schema.COLUMNS

    数据库中的索引信息
    – select * from information_schema.STATISTICS

    用户权限
    – select * from information_schema.USER_PRIVILEGES

    方案权限
    – select * from information_schema.SCHEMA_PRIVILEGES

    表权限
    – select * from information_schema.TABLE_PRIVILEGES

    列权限
    – select * from information_schema.COLUMN_PRIVILEGES

    字符集
    – select * from information_schema.CHARACTER_SETS

    字符集 对照信息
    – select * from information_schema.COLLATIONS

    存在约束的表信息
    – select * from information_schema.TABLE_CONSTRAINTS

    存在约束的列信息
    – select * from information_schema.KEY_COLUMN_USAGE

    数据库中的视图
    – select * from information_schema.VIEWS

    触发器信息
    – select * from information_schema.TRIGGERS

    常用命令
    所有数据库名
    – show DATABASES

    所有表名
    – show TABLES

    abc数据库中的所有表名
    – show tables from abc

    所有表信息
    – show table status
    – show table status from abc

    表信息
    – desc information_schema.TABLES

    某表的列信息
    – show columns from information_schema.TABLES

    某表的创建语句
    – show create table test

    某数据库的创建语句
    – show create database abc

    数据库的连接及操作信息
    – show processlist

    表状态 包括表
    – show table status

    某表的索引信息
    – show index from information_schema.tables

    系统变量名和值
    – show variables

    存储引擎信息
    – show ENGINES

    显示当前用户
    – select user()

    获取当前日期
    – select now()

    获取当前日期
    – select dayofmonth(current_date)
    – select month(current_date)
    – select year(current_date)

    4. Mysql常用函数

    4.1 数学函数

    ABS(x)       返回x的绝对值
    BIN(x)       返回x的二进制(OCT返回八进制,HEX返回十六进制)
    CEILING(x)   返回大于x的最小整数值
    EXP(x)       返回值e(自然对数的底)的x次方
    FLOOR(x)       返回小于x的最大整数值
    GREATEST(x1,x2,...,xn)       返回集合中最大的值
    LEAST(x1,x2,...,xn)       返回集合中最小的值
    LN(x)                     返回x的自然对数
    LOG(x,y)                  返回x的以y为底的对数
    MOD(x,y)                  返回x/y的模(余数)
    PI()              返回pi的值(圆周率)
    RAND()            返回0到1内的随机值,可以通过提供一个参数(种子)使RAND()随机数生成器生成一个指定的值。
    ROUND(x,y)       返回参数x的四舍五入的有y位小数的值
    SIGN(x)          返回代表数字x的符号的值
    SQRT(x)          返回一个数的平方根
    TRUNCATE(x,y)       返回数字x截短为y位小数的结果

    4.2 聚合函数(常用于GROUP BY从句的SELECT查询中)

    AVG(col)       返回指定列的平均值
    COUNT(col)     返回指定列中非NULL值的个数
    MIN(col)       返回指定列的最小值
    MAX(col)       返回指定列的最大值
    SUM(col)       返回指定列的所有值之和
    GROUP_CONCAT(col) 返回由属于一组的列值连接组合而成的结果

    "列出每个部门最高薪水的结果"sql语句如下:

    SELECT DEPT, MAX(SALARY) AS MAXIMUM FROM STAFF GROUP BY DEPT

    "查询每个部门的总的薪水数"
    SELECT DEPT, sum( SALARY ) AS total FROM STAFF GROUP BY DEPT

    具体用法参考:mysql group by where having 用法详情 

    4.3 字符串函数

    ASCII(char)返回字符的ASCII码值
    BIT_LENGTH(str)返回字符串的比特长度
    CONCAT(s1,s2...,sn)s1,s2...,sn连接成字符串
    CONCAT_WS(sep,s1,s2...,sn)s1,s2...,sn连接成字符串,并用sep字符间隔
    INSERT(str,x,y,instr) 将字符串str从第x位置开始,y个字符长的子串替换为字符串instr,返

    回结果
    FIND_IN_SET(str,list)分析逗号分隔的list列表,如果发现str,返回strlist中的位置
    LCASE(str)LOWER(str) 返回将字符串str中所有字符改变为小写后的结果
    LEFT(str,x)返回字符串str中最左边的x个字符
    LENGTH(s)返回字符串str中的字符数
    LTRIM(str) 从字符串str中切掉开头的空格
    POSITION(substr,str) 返回子串substr在字符串str中第一次出现的位置
    QUOTE(str) 用反斜杠转义str中的单引号
    REPEAT(str,srchstr,rplcstr)返回字符串str重复x次的结果
    REVERSE(str) 返回颠倒字符串str的结果
    RIGHT(str,x) 返回字符串str中最右边的x个字符
    RTRIM(str) 返回字符串str尾部的空格
    STRCMP(s1,s2)比较字符串s1s2
    TRIM(str)去除字符串首部和尾部的所有空格
    UCASE(str)UPPER(str) 返回将字符串str中所有字符转变为大写后的结果


    4.4  日期和时间函数
    CURDATE()CURRENT_DATE() 返回当前的日期
    CURTIME()CURRENT_TIME() 返回当前的时间
    DATE_ADD(date,INTERVAL int keyword) 返回日期date加上间隔时间int的结果(int必须按照关键

    字进行格式化),如:SELECT 

    DATE_ADD(CURRENT_DATE,INTERVAL 6 MONTH);
    DATE_FORMAT(date,fmt)   依照指定的fmt格式格式化日期date
    DATE_SUB(date,INTERVAL int keyword) 返回日期date加上间隔时间int的结果(int必须按照关键

    字进行格式化),如:SELECT 

    DATE_SUB(CURRENT_DATE,INTERVAL 6 MONTH);
    DAYOFWEEK(date)    返回date所代表的一星期中的第几天(1~7)
    DAYOFMONTH(date)   返回date是一个月的第几天(1~31)
    DAYOFYEAR(date)    返回date是一年的第几天(1~366)
    DAYNAME(date)    返回date的星期名,如:SELECT DAYNAME(CURRENT_DATE);
    FROM_UNIXTIME(ts,fmt)   根据指定的fmt格式,格式化UNIX时间戳ts
    HOUR(time)    返回time的小时值(0~23)
    MINUTE(time)    返回time的分钟值(0~59)
    MONTH(date)    返回date的月份值(1~12)
    MONTHNAME(date)    返回date的月份名,如:SELECT MONTHNAME(CURRENT_DATE);
    NOW()     返回当前的日期和时间
    QUARTER(date)    返回date在一年中的季度(1~4),如SELECT QUARTER(CURRENT_DATE);
    WEEK(date)    返回日期date为一年中第几周(0~53)
    YEAR(date)    返回日期date的年份(1000~9999)
    一些示例:
    获取当前系统时间:SELECT FROM_UNIXTIME(UNIX_TIMESTAMP());
    SELECT EXTRACT(YEAR_MONTH FROM CURRENT_DATE);
    SELECT EXTRACT(DAY_SECOND FROM CURRENT_DATE);
    SELECT EXTRACT(HOUR_MINUTE FROM CURRENT_DATE);
    返回两个日期值之间的差值(月数)SELECT PERIOD_DIFF(200302,199802);
    Mysql中计算年龄:
    SELECT DATE_FORMAT(FROM_DAYS(TO_DAYS(NOW())-TO_DAYS(birthday)), '%Y')+0 AS age FROM 

    employee;
    这样,如果Brithday是未来的年月日的话,计算结果为0
    下面的SQL语句计算员工的绝对年龄,即当Birthday是未来的日期时,将得到负值。
    SELECT DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(birthday, '%Y') - (DATE_FORMAT(NOW(), 

    '00-%m-%d') < DATE_FORMAT

    (birthday, '00-%m-%d')) AS age from employee

    4.5  加密函数

    AES_ENCRYPT(str,key)   返回用密钥key对字符串str利用高级加密标准算法加密后的结果,调用

    AES_ENCRYPT的结果是一个二进制

    字符串,以BLOB类型存储
    AES_DECRYPT(str,key)   返回用密钥key对字符串str利用高级加密标准算法解密后的结果
    DECODE(str,key)    使用key作为密钥解密加密字符串str
    ENCRYPT(str,salt)   使用UNIX crypt()函数,用关键词salt(一个可以惟一确定口令的字符串,

    就像钥匙一样)加密字符串str
    ENCODE(str,key)    使用key作为密钥加密字符串str,调用ENCODE()的结果是一个二进制字符串

    ,它以BLOB类型存储
    MD5()     计算字符串strMD5校验和
    PASSWORD(str)    返回字符串str的加密版本,这个加密过程是不可逆转的,和UNIX密码加密过

    程使用不同的算法。
    SHA()     计算字符串str的安全散列算法(SHA)校验和
    示例:
    SELECT ENCRYPT('root','salt');
    SELECT ENCODE('xufeng','key');
    SELECT DECODE(ENCODE('xufeng','key'),'key');#加解密放在一起
    SELECT AES_ENCRYPT('root','key');
    SELECT AES_DECRYPT(AES_ENCRYPT('root','key'),'key');
    SELECT MD5('123456');
    SELECT SHA('123456');

    4.6 控制流函数

    MySQL4个函数是用来进行条件操作的,这些函数可以实现SQL的条件逻辑,允许开发者将一些应

    用程序业务逻辑转换到数据库后台


    MySQL控制流函数:
    CASE WHEN[test1] THEN [result1]...ELSE [default] END 如果testN是真,则返回resultN,否

    则返回default
    CASE [test] WHEN[val1] THEN [result]...ELSE [default] END   如果testvalN相等,则返

    resultN,否则返回default
    IF(test,t,f)   如果test是真,返回t;否则返回 f
    IFNULL(arg1,arg2) 如果arg1不是空,返回arg1,否则返回arg2
    NULLIF(arg1,arg2) 如果arg1=arg2返回NULL;否则返回arg1
    这些函数的第一个是IFNULL(),它有两个参数,并且对第一个参数进行判断。如果第一个参数不

    NULL,函数就会向调用者返回第

    一个参数;如果是NULL,将返回第二个参数。
    如:SELECT IFNULL(1,2), IFNULL(NULL,10), IFNULL(4*NULL,'false');
    NULLIF()函数将会检验提供的两个参数是否相等,如果相等,则返回NULL,如果不相等,就返回

    第一个参数。
    如:SELECT NULLIF(1,1),NULLIF('A','B'),NULLIF(2+3,4+1);
    和许多脚本语言提供的IF()函数一样,MySQLIF()函数也可以建立一个简单的条件测试,这个函

    数有三个参数,第一个是要被判断

    的表达式,如果表达式为真,IF()将会返回第二个参数,如果为假,IF()将会返回第三个参数。
    如:SELECT IF(1<10,2,3),IF(56>100,'true','false');
    IF()函数在只有两种可能结果时才适合使用。然而,在现实世界中,我们可能发现在条件测试中

    会需要多个分支。在这种情况下,

    MySQL提供了CASE函数,它和PHPPerl语言的switch-case条件例程一样。
    CASE函数的格式有些复杂,通常如下所示:
    CASE [expression to be evaluated]
    WHEN [val 1] THEN [result 1]
    WHEN [val 2] THEN [result 2]
    WHEN [val 3] THEN [result 3]
    ......
    WHEN [val n] THEN [result n]
    ELSE [default result]
    END
    这里,第一个参数是要被判断的值或表达式,接下来的是一系列的WHEN-THEN块,每一块的第一个

    参数指定要比较的值,如果为真,

    就返回结果。所有的 WHEN-THEN块将以ELSE块结束,当END结束了所有外部的CASE块时,如果前面

    的每一个块都不匹配就会返回ELSE

    块指定的默认结果。如果没有指定ELSE块,而且所有的WHEN-THEN比较都不是真,MySQL将会返回

    NULL
    CASE函数还有另外一种句法,有时使用起来非常方便,如下:
    CASE
    WHEN [conditional test 1] THEN [result 1]
    WHEN [conditional test 2] THEN [result 2]
    ELSE [default result]
    END
    这种条件下,返回的结果取决于相应的条件测试是否为真。
    示例:
    mysql>SELECT CASE 'green'
          WHEN 'red' THEN 'stop'
          WHEN 'green' THEN 'go' END;
    SELECT CASE 9 WHEN 1 THEN 'a' WHEN 2 THEN 'b' ELSE 'N/A' END;
    SELECT CASE WHEN (2+2)=4 THEN 'OK' WHEN (2+2)<>4 THEN 'not OK' END AS STATUS;
    SELECT Name,IF((IsActive = 1),'已激活','未激活') AS RESULT FROM UserLoginInfo;
    SELECT fname,lname,(math+sci+lit) AS total,
    CASE WHEN (math+sci+lit) < 50 THEN 'D'
    WHEN (math+sci+lit) BETWEEN 50 AND 150 THEN 'C'
    WHEN (math+sci+lit) BETWEEN 151 AND 250 THEN 'B'
    ELSE 'A' END
    AS grade FROM marks;
    SELECT IF(ENCRYPT('sue','ts')=upass,'allow','deny') AS LoginResult FROM users WHERE 

    uname = 'sue';#一个登陆验证

    4.7、格式化函数

    DATE_FORMAT(date,fmt)   依照字符串fmt格式化日期date
    FORMAT(x,y)    x格式化为以逗号隔开的数字序列,y是结果的小数位数
    INET_ATON(ip)    返回IP地址的数字表示
    INET_NTOA(num)    返回数字所代表的IP地址
    TIME_FORMAT(time,fmt)   依照字符串fmt格式化时间time
    其中最简单的是FORMAT()函数,它可以把大的数值格式化为以逗号间隔的易读的序列。
    示例:
    SELECT FORMAT(34234.34323432,3);
    SELECT DATE_FORMAT(NOW(),'%W,%D %M %Y %r');
    SELECT DATE_FORMAT(NOW(),'%Y-%m-%d');
    SELECT DATE_FORMAT(19990330,'%Y-%m-%d');
    SELECT DATE_FORMAT(NOW(),'%h:%i %p');
    SELECT INET_ATON('10.122.89.47');
    SELECT INET_NTOA(175790383);

    4.8 、类型转化函数

    为了进行数据类型转化,MySQL提供了CAST()函数,它可以把一个值转化为指定的数据类型。类型

    有:

    BINARY,CHAR,DATE,TIME,DATETIME,SIGNED,UNSIGNED
    示例:
    SELECT CAST(NOW() AS SIGNED INTEGER),CURDATE()+0;
    SELECT 'f'=BINARY 'F','f'=CAST('F' AS BINARY);

    4.9 、系统信息函数

    DATABASE()    返回当前数据库名
    BENCHMARK(count,expr)   将表达式expr重复运行count
    CONNECTION_ID()    返回当前客户的连接ID
    FOUND_ROWS()    返回最后一个SELECT查询进行检索的总行数
    USER()SYSTEM_USER()   返回当前登陆用户名
    VERSION()    返回MySQL服务器的版本
    示例:
    SELECT DATABASE(),VERSION(),USER();
    SELECT BENCHMARK(9999999,LOG(RAND()*PI()));#该例中,MySQL计算LOG(RAND()*PI())表达式

  • 相关阅读:
    HBASE学习笔记(一)
    模板:循环数据库表
    where(泛型类型约束)
    如何很好的使用Linq的Distinct方法
    Sql自定义表类型批量导入数据
    Linq select 语法
    JTemplate学习(四)
    JTemplate学习(三)
    JTemplate学习(二)
    正则表达式学习
  • 原文地址:https://www.cnblogs.com/shoshana-kong/p/11431661.html
Copyright © 2011-2022 走看看