php mysql 常用語句 mysql常用語句

2021-10-18 12:36:44 字數 4863 閱讀 2967

一、修改mysql使用者密碼:

mysql -h localhost -u root -p;命令列登入

update user set password = password('123456') where user = 'root'

二、資料庫操作

show databases; 顯示資料庫

create database name;建立資料庫

use databasename;選擇資料庫

drop database name;直接刪除資料庫,不提醒

mysqladmin drop databasename;刪除資料庫前,有提示

三、字符集相關:

檢視資料庫支援的所有字符集:show character set;或show char set;

檢視系統字符集設定,包括所有的字符集設定:show variables like 'char%';

檢視資料表中字符集設定:show full columns from tablename; 或者 show create table tablename\g

檢視資料庫編碼:show create database dnname;

修改資料庫字符集:alter database dnname default character set utf8

修改資料表字符集:alter table table_name default character set utf8

修改mysql字符集:set character_set_client=utf8;

set character_set_connection=utf8;

set character_set_database=utf8;

set character_set_server=utf8;

set character_set_results=utf8;

顯示表:show tables;

顯示表結構:describe tablename或 desc tablename;

檢視表索引:show create table table_name 或者 show index from table_name

show index from tablename得到的結果中,cardinality表示雜湊程度,表示某個索引對應的列包含多少個不同的值,如果cardinality大大少於資料的實際雜湊程度,那麼索引就基本失效了。

修復索引:analyze local table table_name;

匯出結果集:select * from table_name into outfile '/tmp/xyz.txt';

新建索引:

普通索引:alter table table_name add key `key_name`(field_name)

唯一索引:alter table table_name add unique key `key_name`(field_name)

主鍵索引:alter table table_name add primary key (field_name)

刪除索引:alter table table_name drop index key_name

匯入資料:source /tmp/users.sql //先登入mysql

清除磁碟碎片:optimize local table table_name

檢查表是否損壞:check table table_name

修復損壞的表:repair table table_name

檢查是否有碎片:select table_name,data_free from information_schema.tables where data_free > 0;

修改欄位名:

alter table `ppd_ev_cat` change `ev_cat_id` `submission_to_catalog_id` int(10) unsigned not null auto_increment;

alter table `ppd_ev_cat` change `ev_catalog_id` `catalog_id` int(10) unsigned not null;

修改表名:alter table `ppd_ev_cat` rename to `ppd_submission_to_catalog`;

五、sql語句:

查詢去除重覆記錄:distinct;

顯示當前mysql版本和當前日期:select version(),current_date;

把時間戳格式化為「2001-01-02 00:00:00」格式:select from_unixtime('1234564');

把時間格式化為時間戳(轉為整型):select unix_timestamp('2011-01-01');

查詢連線字串:select concat(field_name,field_name2);

查詢逗號隔開的字段:where find_in_set('1', responsible_user)

字串擷取: select left(content, 20); select right(content, 20);

獲得插入記錄的id:

insert into `abgent_modules` (`parent_id`, `name`, `description`, `status`, `is_show`, `sort`) values (4, 'feedback_categories', 'feedback categories', 1, 1, 0);

insert into `abgent_modules` (`parent_id`, `name`, `description`, `status`, `is_show`, `sort`) values

((select last_insert_id()), 'feedback_categories.index', 'list', 1, 1, 0),

((select last_insert_id()), 'feedback_categories.category_add', 'add', 1, 1, 0),

((select last_insert_id()), 'feedback_categories.category_detail', 'detail', 1, 0, 0),

((select last_insert_id()), 'feedback_categories.category_modify', 'modify' , 1, 0, 0);

查詢結果插入另乙個表:

select into from語句,語句形式為:select vale1, value2 into table2 from table1,要求目標表table2不存在,因為在插入時會自動建立表table2,並將table1中指定字段資料複製到table2中。

insert into select語句,語句形式為:insert into table2(field1,field2,...) select value1,value2,... from table1,要求目標表table2必須存在。

insert into `sta_local`.`sta_news` (`title`, `content`, `news_time`, `out_link`, `img_path`, `is_top`, `operator_id`) select `title`, `content`, `newtime`, `outlink`, `imgpath`, `istop`, 2 from `wuxi_global`.`p_news`;

六、檢驗sql語句效能:(explain或者describe)explain select ....

七、檢視mysql當前狀態:status或者\s

八、檢視mysql程序:show processlist

id,執行緒編號,當要關閉某一程序時執行 kill id;

user列,顯示當前程序使用者;

host列,顯示當前程序是從哪個ip位址和哪個埠號發出來的;

db列,顯示當前這個程序目前連線的是哪個資料庫;

command列,顯示當前連線程序所執行命令的型別或狀態,一般就是休眠(sleep),查詢(query),連線 (connect);

time列,這個狀態持續的時間,單位是秒;

state列,顯示使用當前連線sql語句的狀態,如查詢語句,可能中間需要經歷copying to tmp table,sorting result,sending data等狀態才可以完成;

info列,顯示這個連線所執行的sql語句,因為長度有限,所以長的sql語句就顯示不全,但是乙個判斷問題語句的重要依據。

九、檢視mysql狀態:show global status like 'open_%';

十、檢視mysql配置

show global variables like '%open%';

show global variables like 'max_connections';

十一、指標復位(php函式)

$result = mysql_query($sql);

mysql_data_seek($result, 0);

十二、benchmark: select benchmark,它顯示mysql在該系統上在x秒內可以執行1,000,000個簡單的+表示式運算。

十三、設定時區

show variables like '%time_zone%';

set time_zone=timezone

例如:比如北京時間(gmt+0800)

set time_zone='+8:00'

十四、檢視sqlite表結構

sqlite3 /usr/sqlite/ot.db

select * from sqlite_master where type="table" and name="nmo_message_log";

mysql常用語句 MySQL常用語句

create table student id int primary key auto increment comment 學號 name varchar 200 comment 姓名 age int comment 年齡 comment 學生資訊 修改表注釋 alter table studen...

sql常用語句

use myoa select from delete from department where departmentid 1 insert department departmentid,departmentname values 1,技術部 update department set depa...

Sybase常用語句

sybase常用語句 收藏 sp helpdb 檢視資料庫的使用情況!sp helpsort 檢視當前服務的排序!select from sysobjects 檢視資料庫中有多少張表!select from sysdatabases 檢視sybase中資料庫中的資訊!dbcc checkdb dat...