日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql写偏斜_【MySQL】探究之常用SQL

發布時間:2024/9/27 数据库 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql写偏斜_【MySQL】探究之常用SQL 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一些SQL命令(不斷更新,我總記不住,哭)

List

建庫建表

GBK: CREATE DATABASE `test_db1` DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;

UTF-8: CREATE DATABASE `test_db2` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

CREATE TABLE `test_table` (

`id` bigint(20) unsigned NOT NULL COMMENT '主鍵',

`gmt_create` datetime NOT NULL COMMENT '創建時間',

`content` varchar(20) DEFAULT NULL COMMENT '說明',

PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='test create table'

表的重命名(不區分大小寫)

rename table haha to contestInfo;

列的重命名

mysql中:

alter table 數據表名 change 原列名 新列名 新列類型;

oracle中:

alter table 數據表名 rename 原列名 to 新列名;

編碼

修改數據庫編碼 ALTER DATABASE `test` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin

修改表編碼 ALTER TABLE `category` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin

修改字段編碼 ALTER TABLE `test` CHANGE `dd` `dd` VARCHAR( 45 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL

修改結構

mysql>

#表position增加列test

alter table position add(test char(10));

#表position修改列test

alter table position modify test char(20) not null;

#表position修改列test默認值

alter table position alter test set default 'system';

#表position去掉test默認值

alter table position alter test drop default;

#表position去掉列test

alter table position drop column test;

#表depart_pos刪除主鍵

alter table depart_pos drop primary key;

#表depart_pos增加主鍵

alter table depart_pos add primary key PK_depart_pos (department_id,position_id);

添加刪除索引

show index from tblname;

ALTER TABLE table_name ADD INDEX index_name (column_list)

ALTER TABLE table_name ADD UNIQUE (column_list)

ALTER TABLE table_name ADD PRIMARY KEY (column_list)

CREATE INDEX index_name ON table_name (column_list)

CREATE UNIQUE INDEX index_name ON table_name (column_list)

DROP INDEX index_name ON talbe_name

ALTER TABLE table_name DROP INDEX index_name

ALTER TABLE table_name DROP PRIMARY KEY

大批量刪除

delete from contestinfo where `id`<3000;

select sleep(3);

delete from contestinfo where `id`<6000;

select sleep(3);

delete from contestinfo where `id`<9000;

...

binlog相關

備庫上執行一定要考慮事務是否寫binlog

set session SQL_LOG_BIN = 0; //關閉,不寫binlog

set session SQL_LOG_BIN = 1; //開啟,寫binlog,default

mysql>show master status; 查看當前正在使用的二進制日志

mysql>show binlog events in'mysql-bin.000001'; 查看二進制日志記錄的事件[from position]

mysql>flush logs; 二進制日志滾動

mysql>show binary logs; 查看所有二進制日志

mysql>purge binary logs to 'mysql-bin.000003'; 刪除二進制日志

Master_Log_File & Read_Master_Log_Pos:下一個傳輸的主日志信息。

Relay_Master_Log_File & Exec_Master_Log_Pos:下一個執行的主日志信息。

Relay_Log_File & Relay_Log_Pos:下一個執行的中繼日志信息。

中繼日志出錯:

mysql> CHANGE MASTER TO

MASTER_LOG_FILE='',

MASTER_LOG_POS=;

mysql> START SLAVE;

stop slave ;

reset slave [ALL] relay logs,file and post,ALL will clear ip,port,user,pass;

CHANGE MASTER TO

MASTER_HOST='xxx.xxx.xxx.xxx',

MASTER_PORT=xxxx, 切記int

MASTER_USER='xxxxx',

MASTER_PASSWORD='xxxxx',

MASTER_LOG_FILE='mysql-bin.xxxxxx',

MASTER_LOG_POS=xxxxx; 切記int

start slave;

select相關

查詢時強制區分大小寫

SELECT * FROM U WHERE binary name LIKE 'a%';

行號

SELECT

@row := @row + 1 as row,

t.*

FROM some_table t, (SELECT @row := 0) r

截取

SELECT

SUBSTRING_INDEX(phone,'-',2) AS PNumber,

SUBSTRING_INDEX(phone,'-', -1) AS Ext,

phone

FROM tb_user WHERE ucid=271338;

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

| PNumber | Ext | phone |

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

| 010-88888882 | 5612 | 010-88888882-5612 |

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

拼接

UPDATE tb_user SET

phone=CONCAT( SUBSTRING_INDEX( phone,'-',2 ), '-', '1234' )

WHERE ucid = 271338;

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

| PNumber | Ext | phone |

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

| 010-88888882 | 1234 | 010-88888882-1234 |

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

group_concat([DISTINCT] 要連接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符'])

select id,group_concat(name order by name desc Separator ';') from aa group by id;

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

| id| group_concat(name order by name desc) |

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

|1 | 20;20;10 |

|2 | 20|

|3 | 500;200|

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

3 rows in set (0.00 sec)

數據庫備份和恢復

mysqldump -h127.0.0.1 -uroot -P$MYSQL_PORT --default-character-set=utf8 -q -e --single-transaction --master-data=2 --result_file=/u01/bak/dump_${DB_NAME}.sql -B $candidates

content:

-- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000050', MASTER_LOG_POS=349656998;

CREATE DATABASE /*!32312 IF NOT EXISTS*/ `test_db_1` /*!40100 DEFAULT CHARACTER SET utf8 */;

USE `test_db_1`;

-n, --no-create-db

-t, --no-create-info

-d, --no-data

-B, --databases

-e, --extended-insert Use multiple-row INSERT syntax that include several VALUES lists.

-q, --quick Don't buffer query, dump directly to stdout.

--add-drop-database FALSE

--add-drop-table TRUE

--add-drop-trigger FALSE

--add-locks TRUE

--default-character-set=name utf8

--tz-utc TRUE SET TIME_ZONE='+00:00' at top of dump

--result_file 輸出結果到

--single-transaction --master-data=2組合使用,保留位點

mysql -h localhost -P 6688 -u root -ptest database< test_db.sql

總結

以上是生活随笔為你收集整理的mysql写偏斜_【MySQL】探究之常用SQL的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。