mysql操作集合 内置函数

《mysql操作集合 内置函数》

内置函数

--------------------------------内置函数-数学函数-----------------------------------------
//十进制转换二进制
BIN(decimal_number)
mysql>select BIN('192'); //11000000
//四舍五入
ROUND()
//向上取整
CEILING(number);
//向下取整
FLOOR(number);
//取最大值
MAX(col);  //group by 时用
mysql>select student_name,min(test_score),max(test_score) from student group by student_name;
//取最小值
MIN(col);  //group by 时用
//开平方
SQRT(number)
//0-1内的随机值
RAND();
mysql> select * from t1 order by rand();

--------------------------------内置函数-日期函数-----------------------------------------
//返回当前日期   2015-05-11
CURDATE();
//返回当前时间  14:48:52
CURTIME();
//返回当前日期时间 2015-05-11 14:48:52;
NOW()
//返回当前date的UNIX时间戳  1334772617
NUIX_TIMESTAMP(date)
//返回当前的UNIX时间戳的日期值
FROM_NUIXTIME()
//返回当前date的第几周
WEEK(date)
//返回当前date的年份
YEAR(date)
//返回起始时间 和结束时间 之间的天数
DATEDIFF(expr,expr2)

--------------------------------内置函数-正则表达式-----------------------------------------
mysql> select "linux is very good!" REGEXP "^linux";
mysql> select "linux is very good!" REGEXP ".*";
mysql> select name,email form t3 where email REGEXP "@163[.,]com$"; //邮箱
相当于 select name,email form t3 where email like "%@163.com" or email like "%@163,com";

--------------------------------内置函数-统计----------------------------------------------
mysql> select cname,pname,count(pname) from demo group by cname,pname with rollup;
+---------+--------+--------+
|cname    |pname   |count(pname)|
+---------+--------+--------+
|bj		  |hd	   |3		|
|bj		  |xc	   |2		|
|bj		  |NULL	   |5		|  //统计结果
|sh		  |hd	   |3		|
|sh		  |xc	   |1		|
|sh		  |NULL	   |4		|	//统计结果
|NULL	  |NULL	   |9		|	//总计结果
+---------+--------+--------+
--------------------------------内置函数-查询操作次数-----------------------------------------
mysql> show status; //所有事件
mysql> show status like "com%"; //所有com事件
mysql> show status like "com_select%"; //所有select事件

MariaDB [test]> show global status like "com_select%"; //从本次登录以来,所有查询事件的次数
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Com_select    | 5     |
+---------------+-------+

mysql> show status like "innodb_rows%"; //所有select事件
+----------------------+-------+
| Variable_name        | Value |
+----------------------+-------+
| Innodb_rows_deleted  | 0     |
| Innodb_rows_INSERTed | 0     |
| Innodb_rows_read     | 0     |
| Innodb_rows_updated  | 0     |
+----------------------+-------+


MariaDB [test]> show status like "connections%";  //连接次数
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Connections   | 5     |
+---------------+-------+


MariaDB [test]> show status like "connections%"; //服务器工作的秒器
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Connections   | 5     |
+---------------+-------+


MariaDB [test]> show status like "slow_queries%";  //慢查询次数
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Slow_queries  | 0     |
+---------------+-------+
MariaDB [(none)]> show variables like "%slow%"; //慢查询设置
+---------------------+--------------------------------------------------------------------------------------------------------------+
| Variable_name       | Value                                                                                                        |
+---------------------+--------------------------------------------------------------------------------------------------------------+
| log_slow_filter     | admin,filesort,filesort_on_disk,full_join,full_scan,query_cache,query_cache_miss,tmp_table,tmp_table_on_disk |
| log_slow_queries    | OFF  //慢查询没有开启                                                                                           |
| log_slow_rate_limit | 1                                                                                                            |
| log_slow_verbosity  |                                                                                                              |
| slow_launch_time    | 2                                                                                                            |
| slow_query_log      | OFF                                                                                                          |
| slow_query_log_file | localhost-slow.log                                                                                           |
+---------------------+--------------------------------------------------------------------------------------------------------------+

MariaDB [(none)]> show variables like "%long%";
+---------------------------------------------------+-----------+
| Variable_name                                     | Value     |
+---------------------------------------------------+-----------+
| deadlock_search_depth_long                        | 15        |
| deadlock_timeout_long                             | 50000000  |
| long_query_time                                   | 10.000000 |   //慢查询的时间
| max_long_data_size                                | 1048576   |
| performance_schema_events_waits_history_long_size | 10000     |
+---------------------------------------------------+-----------+


--------------------------------内置函数-查询表结构-----------------------------------------
MariaDB [test]> desc t3;
+-------+------------------+------+-----+---------+----------------+
| Field | Type             | Null | Key | Default | Extra          |
+-------+------------------+------+-----+---------+----------------+
| id    | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| name  | varchar(8)       | NO   |     | NULL    |                |
+-------+------------------+------+-----+---------+----------------+


MariaDB [test]> desc select * from t3\G;
+------+-------------+-------+------+---------------+------+---------+------+------+-------+
| id   | select_type | table | type | possible_keys|| key  | key_len | ref  | rows | Extra |
+------+-------------+-------+------+---------------+------+---------+------+------+-------+
|    1 | SIMPLE      | t3    | ALL  | NULL          | NULL | NULL    | NULL |    1 |       |
+------+-------------+-------+------+---------------+------+---------+------+------+-------+
table 表名
select_type 查询类型:  SIMPLE单表查询, UNION多表查询,PRIMARY主键查询,SUBQUERY子查询
key 普通索引
key_len 索引字段的长度 
rows 影响行数
Extra 可能用过什么 Using where Using index
type 查询类型 ALL通过全表扫描得到数据 range范围查询 index索引查询 system表仅一行 const仅一行匹配 eq_ref对于前面的每一行使用主键和唯一 index_merge索引合并优化 unique_subquery主键子查询 index_subquery非主键子查询
possible_keys 可能用到的索引
MariaDB [test]> select * from t3 where id !=0;
+----+------+
| id | name |
+----+------+
|  1 | abc  |
|  2 | bbb  |
|  3 | ccc  |
+----+------+

MariaDB [test]> show index from t3;
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| t3    |          0 | PRIMARY  |            1 | id          | A         |           3 |     NULL | NULL   |      | BTREE      |         |               |
| t3    |          1 | in_name  |            1 | name        | A         |           3 |     NULL | NULL   |      | BTREE      |         |               |
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+


MariaDB [test]> desc select * from t3 where name = 'abc';
+------+-------------+-------+------+---------------+---------+---------+-------+------+--------------------------+
| id   | select_type | table | type | possible_keys | key     | key_len | ref   | rows | Extra                    |
+------+-------------+-------+------+---------------+---------+---------+-------+------+--------------------------+
|    1 | SIMPLE      | t3    | ref  | in_name       | in_name | 10      | const |    1 | Using where; Using index |
+------+-------------+-------+------+---------------+---------+---------+-------+------+--------------------------+


--------------------------------索引优化-索引使用情况-----------------------------------------
MariaDB [test]> show status like 'handler_read%';
+--------------------------+-------+
| Variable_name            | Value |
+--------------------------+-------+
| Handler_read_first       | 1     |
| Handler_read_key         | 2     |
| Handler_read_last        | 0     |
| Handler_read_next        | 4     |
| Handler_read_prev        | 0     |
| Handler_read_rnd         | 0     |
| Handler_read_rnd_deleted | 0     |
| Handler_read_rnd_next    | 22    |
+--------------------------+-------+
handler-read_key 这个值代表了一个行被索引值读的次数
Handler_read_rnd_next 这个值越高,说明查询效率越低,应建立索引补救!!!!!

--------------------------------分析优化-检查一个表是否有错误-----------------------------------------
MariaDB [test]> check table t3;
+---------+-------+----------+----------+
| Table   | Op    | Msg_type | Msg_text |
+---------+-------+----------+----------+
| test.t3 | check | status   | OK       |
+---------+-------+----------+----------+

服务器字符集

--------------------------------优化-服务器字符集-----------------------------------------
MariaDB [(test)]> \s
--------------
mysql  Ver 15.1 Distrib 5.5.37-MariaDB, for Linux (x86_64) using readline 5.1

Connection id:		4
Current database:	test
Current user:		root@localhost
SSL:			Not in use
Current pager:		stdout
Using outfile:		''
Using delimiter:	;
Server:			MariaDB
Server version:		5.5.37-MariaDB-log MariaDB Server
Protocol version:	10
Connection:		Localhost via UNIX socket
Server characterset:	utf8
Db     characterset:	utf8
Client characterset:	utf8
Conn.  characterset:	utf8
UNIX socket:		/var/lib/mysql/mysql.sock
Uptime:			3 hours 57 min 11 sec

Threads: 2  Questions: 60  Slow queries: 0  Opens: 10  Flush tables: 2  Open tables: 33  Queries per second avg: 0.004
--------------

如果服务器不是utf8,
在vi /etc/my.cnf 中[mysqld]中加入:charater-set-server=utf8

MariaDB [test]> show charset;
+----------+-----------------------------+---------------------+--------+
| Charset  | Description                 | Default collation   | Maxlen |
+----------+-----------------------------+---------------------+--------+
| big5     | Big5 Traditional Chinese    | big5_chinese_ci     |      2 |
| dec8     | DEC West European           | dec8_swedish_ci     |      1 |
| cp850    | DOS West European           | cp850_general_ci    |      1 |
| hp8      | HP West European            | hp8_english_ci      |      1 |
| koi8r    | KOI8-R Relcom Russian       | koi8r_general_ci    |      1 |
| latin1   | cp1252 West European        | latin1_swedish_ci   |      1 |
| latin2   | ISO 8859-2 Central European | latin2_general_ci   |      1 |
| swe7     | 7bit Swedish                | swe7_swedish_ci     |      1 |
| ascii    | US ASCII                    | ascii_general_ci    |      1 |
| ujis     | EUC-JP Japanese             | ujis_japanese_ci    |      3 |
| sjis     | Shift-JIS Japanese          | sjis_japanese_ci    |      2 |
| hebrew   | ISO 8859-8 Hebrew           | hebrew_general_ci   |      1 |
| tis620   | TIS620 Thai                 | tis620_thai_ci      |      1 |
| euckr    | EUC-KR Korean               | euckr_korean_ci     |      2 |
| koi8u    | KOI8-U Ukrainian            | koi8u_general_ci    |      1 |
| gb2312   | GB2312 Simplified Chinese   | gb2312_chinese_ci   |      2 |
| greek    | ISO 8859-7 Greek            | greek_general_ci    |      1 |
| cp1250   | Windows Central European    | cp1250_general_ci   |      1 |
| gbk      | GBK Simplified Chinese      | gbk_chinese_ci      |      2 |
| latin5   | ISO 8859-9 Turkish          | latin5_turkish_ci   |      1 |
| armscii8 | ARMSCII-8 Armenian          | armscii8_general_ci |      1 |
| utf8     | UTF-8 Unicode               | utf8_general_ci     |      3 |
| ucs2     | UCS-2 Unicode               | ucs2_general_ci     |      2 |
| cp866    | DOS Russian                 | cp866_general_ci    |      1 |
| keybcs2  | DOS Kamenicky Czech-Slovak  | keybcs2_general_ci  |      1 |
| macce    | Mac Central European        | macce_general_ci    |      1 |
| macroman | Mac West European           | macroman_general_ci |      1 |
| cp852    | DOS Central European        | cp852_general_ci    |      1 |
| latin7   | ISO 8859-13 Baltic          | latin7_general_ci   |      1 |
| utf8mb4  | UTF-8 Unicode               | utf8mb4_general_ci  |      4 |
| cp1251   | Windows Cyrillic            | cp1251_general_ci   |      1 |
| utf16    | UTF-16 Unicode              | utf16_general_ci    |      4 |
| cp1256   | Windows Arabic              | cp1256_general_ci   |      1 |
| cp1257   | Windows Baltic              | cp1257_general_ci   |      1 |
| utf32    | UTF-32 Unicode              | utf32_general_ci    |      4 |
| binary   | Binary pseudo charset       | binary              |      1 |
| geostd8  | GEOSTD8 Georgian            | geostd8_general_ci  |      1 |
| cp932    | SJIS for Windows Japanese   | cp932_japanese_ci   |      2 |
| eucjpms  | UJIS for Windows Japanese   | eucjpms_japanese_ci |      3 |
+----------+-----------------------------+---------------------+--------+
39 rows in set (0.00 sec)

优化-慢查询

--------------------------------优化-慢查询-----------------------------------------
MariaDB [test]> show variables like "%slow%";
+---------------------+--------------------------------------------------------------------------------------------------------------+
| Variable_name       | Value                                                                                                        |
+---------------------+--------------------------------------------------------------------------------------------------------------+
| log_slow_filter     | admin,filesort,filesort_on_disk,full_join,full_scan,query_cache,query_cache_miss,tmp_table,tmp_table_on_disk |
| log_slow_queries    | OFF                                                                                                          |
| log_slow_rate_limit | 1                                                                                                            |
| log_slow_verbosity  |                                                                                                              |
| slow_launch_time    | 2                                                                                                            |
| slow_query_log      | OFF                                                                                                          |
| slow_query_log_file | localhost-slow.log                                                                                           |
+---------------------+--------------------------------------------------------------------------------------------------------------+
7 rows in set (0.00 sec)
如果服务器没有开启慢查询,
在vi /etc/my.cnf 中[mysqld]中加入:charater-set-server=utf8
log_slow_queries=slow.log
long_query_time=10 

MariaDB [test]> show variables like "%long%";
+---------------------------------------------------+-----------+
| Variable_name                                     | Value     |
+---------------------------------------------------+-----------+
| deadlock_search_depth_long                        | 15        |
| deadlock_timeout_long                             | 50000000  |
| long_query_time                                   | 10.000000 |
| max_long_data_size                                | 1048576   |
| performance_schema_events_waits_history_long_size | 10000     |
+---------------------------------------------------+-----------+
5 rows in set (0.00 sec)

密码丢失

--------------------------------优化-密码丢失-----------------------------------------
1.先关闭进制
2.以路过授权表的形式启动进程:/usr/local/mysql/bin/mysqld_safe --skip-grant-tables --user=mysql &;
--skip-grant-tables: 跳过用户授权表
点赞

发表评论

邮箱地址不会被公开。 必填项已用*标注