阿里雲資料庫常用SQL語句大全

2021-09-29 13:34:33 字數 4343 閱讀 7331

日常工作或學習過程中,會常用到某些sql語句,又不太容易記憶的。建議大家多多整理記錄下這些常用的sql,這樣後續用到會方便很多。老魏在工作及學習過程中也整理了下個人常用的sql,現在借雲棲社群這個平台分享給大家。可能有些sql你還不常用,但還是希望有所幫助,說不定將來哪天有需求就能用到。

注:下文分享的sql適用於mysql 5.7 版本,低版本可能稍許不同。有些sql可能執行需要較高許可權。都在阿里雲rds資料庫中使用過沒問題。

1.show相關語句

show variables like 『%innodb%』;

show global variables like 『%innodb%』;

show status like 『uptime%』;

show global status like 『connection%』;

show processlist;

show full processlist;

show create table tb_name;

show full columns from tb_name;

show index from tb_name;

show tables like 『cd%』;

show table status where comment=『view』;

show grants for 『test_user』@』%』;

2.檢視賬戶相關資訊

利用此函式我們可以將原來一步無法得到的sql拼接出來,後面部分語句有用到該函式。

select distinct

concat(

『user: 『』,

user,

『』@』』,

host,

『』;』

) as query

from

mysql.user;

select user,

host,

authentication_string,

password_expired,

password_lifetime,

password_last_changed,

account_locked

from

mysql.user;

3.kill資料庫鏈結

select

concat( 'kill ', id, 『;』 )

from

information_schema.processlist

where

command = 『sleep』

and time > 2000;

select

concat( 'kill ', id, 『;』 )

from

information_schema.processlist

where

state like 『creating sort index』;

select

concat( 'kill ', id, 『;』 )

from

information_schema.processlist

where

where user=『root』;

4.拼接建立資料庫或使用者語句

​select

concat( 'kill ', id, 『;』 )

from

information_schema.processlist

where

command = 『sleep』

and time > 2000;

select

concat( 'kill ', id, 『;』 )

from

information_schema.processlist

where

state like 『creating sort index』;

select

concat( 'kill ', id, 『;』 )

from

information_schema.processlist

where

where user=『root』;

​5.檢視庫或表大小

select

concat( round( sum( data_length / 1024 / 1024 ), 2 ), 『mb』 ) as data_length_mb,

concat( round( sum( index_length / 1024 / 1024 ), 2 ), 『mb』 ) as index_length_mb

from

information_schema.tables;

select

table_schema,

concat( truncate ( sum( data_length )/ 1024 / 1024, 2 ), 』 mb』 ) as data_size,

concat( truncate ( sum( index_length )/ 1024 / 1024, 2 ), 『mb』 ) as index_size

from

information_schema.tables

group by

table_schema;

select

concat( round( sum( data_length / 1024 / 1024 ), 2 ), 『mb』 ) as data_length_mb,

concat( round( sum( index_length / 1024 / 1024 ), 2 ), 『mb』 ) as index_length_mb

from

information_schema.tables

where

table_schema = 『test_db』;

select

concat( round( sum( data_length / 1024 / 1024 ), 2 ), 『mb』 ) as data_length_mb,

concat( round( sum( index_length / 1024 / 1024 ), 2 ), 『mb』 ) as index_length_mb

from

information_schema.tables

where

table_schema = 『test_db』

and table_name = 『tbname』;

6.檢視表碎片及收縮語句

select

t.table_schema,

t.table_name,

t.table_rows,

concat( round( t.data_length / 1024 / 1024, 2 ), 『m』 ) as size,

t.index_length,

concat( round( t.data_free / 1024 / 1024, 2 ), 『m』 ) as datafree

from

information_schema.tablest

where

t.table_schema = 『test_db』

order by

datafree desc;

alter table tb_name engine = innodb;

optimize table tb_name;

7.查詢無主鍵表

​select

t.table_schema,

t.table_name,

t.table_rows,

concat( round( t.data_length / 1024 / 1024, 2 ), 『m』 ) as size,

t.index_length,

concat( round( t.data_free / 1024 / 1024, 2 ), 『m』 ) as datafree

from

information_schema.tablest

where

t.table_schema = 『test_db』

order by

datafree desc;

alter table tb_name engine = innodb;

optimize table tb_name;

更多參閱資料庫文件

​希望這些sql語句能對你有所幫助,可以收藏一下,說不定某次就用到了呢!

Oracle 資料庫常用操作語句大全

文件摘自 一 oracle資料庫操作 1 建立資料庫 create database databasename 2 刪除資料庫 drop database dbname 3 備份資料庫 exp demo demo orcl buffer 1024 file d back.dmp full y dem...

Oracle 資料庫常用操作語句大全

轉 一 oracle資料庫操作 1 建立資料庫 create database databasename 2 刪除資料庫 drop database dbname 3 備份資料庫 exp demo demo orcl buffer 1024 file d back.dmp full y demo 使...

資料庫管理常用sql語句

一 creating a database 1 以系統管理員使用者登入。sqlplus as sysdba 2 啟動資料庫導nomount狀態。sql startup nomount 3 執行建立資料庫語句。sql create database invrep controlfile reuse m...