2019獨角獸企業重金招聘Python工程師標準>>>
MySQL客戶端操作
- $db$是數據庫名稱
- $table$是數據表名稱
- $field$是數據表里的字段名稱
- 有些語句最后加上**/G**可以使結果更美觀
數據庫相關
創建數據庫,修改數據庫
create database $db$; 使用默認設置create database $db$ default character set "utf8";指定編碼show databases; 查看所有數據庫show create database $db$; 查看數據庫信息alter database $db$ default character set $code$ collate $cc$;修改數據編碼drop database $db$;刪除數據庫create database $db$ default character set utf8 collate utf8_general_ci;$完整的建庫語句use $db$;使用數據庫數據庫權限grant $privileges$ on $db$.$table$ to $user$@'$host$' identified by "$passwd$" with grant option;1. $privileges$ 指權限; ALL PRIVILEGES是表示所有權限,可以使用select,update等權限.2. ON 用來指定權限針對哪些庫和表.3. $db$.$table$ 數據庫和表;*.*指所有數據庫的所有表4. TO 表示將權限賦予某個用戶.5. $user$@'$host$' 指定用戶和主機;@后面接限制的主機,可以是IP,IP段,域名以及%,%表示任何地方.注意:這里%有的版本不包括本地,以前碰到過給某個用戶設置了%允許任何地方登錄,但是在本地登錄不了,這個和版本有關系,遇到這個問題再加一個localhost的用戶就可以了.6. IDENTIFIED BY 指定用戶的登錄密碼.7. WITH GRANT OPTION 這個選項表示該用戶可以將自己擁有的權限授權給別人.注意:經常有人在創建操作用戶的時候不指定WITH GRANT OPTION選項導致后來該用戶不能使用GRANT命令創建用戶或者給其它用戶授權.刷新權限flush privileges;查詢權限show grants;show grants for $user$@'$host$';回收權限revoke delete on *.* from $user$@'$host$';修改密碼SET PASSWORD FOR $user$@'$host$' = PASSWORD('$passwd$');update user set PASSWORD = PASSWORD('$passwd$') where user = $user$;
數據表相關
對數據庫里面的表做相關的操作
-
創建表
create table $table$($field1$ 數據類型 [完整性約束條件],...$field*$ 數據類型,[UNIQUE|FULLTEXT|SPATIAL] INDEX|KEY)ENGINE=[MyISAM|INODB|...];
-
查看數據表
show tables;查看數據庫下面的所有表查看數據表信息desc $table$show create table $table$;show columns from $table$;
-
修改數據表
alter table $table_src$ rename $table_dest$;修改表名$table_src$為原來數據表的名稱,而$table_dest$為新的數據表名稱.alter table $table$ change $field_src$ $field_dest$;修改字段名alter table $table$ modify $field$ int(20);修改字段的數據類型alter table $table$ add $field$ int;增加字段alter table $table$ drop $field$;刪除字段drop table $table$;刪除表truncate table $table$;清空表
-
索引相關
創建索引創建普通索引create index $index_name$ on $table$($field$);alter table $table$ add index $index_name$($field$);創建唯一性索引create unique index $index_name$ on $table$($field$);alter table $table$ add unique $index_name$($field$);刪除索引alter table $table$ drop index $index_name$;drop index $index_name$ on $table$;
-
數據表里面的數據的操作
添加數據insert into $table$($field1$,$field2$,...) values($value1$,$value2$,...);insert into $table$ values($value1$,$value2$,...);insert into $table$ set $field1$=$value1$,$field2$=$value2$,...;insert into $table$ values($value1$,$value2$,...),($value1$,$value2$,...),...;查詢數據select * from $table$;select * from $table$ limit $count$;select * from $table$ limit $start$,$count$;select * from $table$ where $field$=$value$;select $field1$,$field2$,... from $table$ where $field$=$value$;%:代表0個、1個或者多個任意字符_:代表1個任意字符select * from $table$ where $field$ like "%|_";select * from $table$ group by $field$;分組select $field1$,$field2$,...,group_concat($field$) from $table$ group by $field$;select $field1$,group_concat($field$) as $variable1$,count(*) as $variable2$,max($field$) as $variable3$,sum($field$) as $variable4$from $table$ group by $field$ having count(*) > 2;select * from $src$ order by $field$ desc; $降序select * from $src$ order by $field$ asc; $升序更新數據update $table$ set $field$=$value$ where $field$=$value$;刪除數據delete from $table$ where $field$=$value$;
備份
備份數據庫到文件mysqldump -u$user$ -p$passwd$ $db$ > $path$/$file$.sql創建一個新的數據庫mysql -u$user$ -p$passwd$ -e "create database $db$"導入數據到新的數據庫mysql -u$user$ -p$passwd$ $db$ < $path$/$file$.sql查看數據庫歷史命令cat /root/.mysql_history遠程登陸數據庫并查詢mysql -u$user$ -p$passwd$ -h 127.0.0.1 -P 3306 -e "select * from $db$.$table$ limit 2;"查看數據表的詳細信息show table status like '$table$';導出數據庫的一個數據表mysqldump $db$.$table$ > $path$/$file$.sql將數據表導入數據庫mysql $db$ < $path$/$file$.sql需要注意的是,導入的數據表名稱為導出時候,數據表在源數據庫中的名稱,因此保證在源數據庫中的名稱和新數據庫中表名稱不會重復,否則會發生數據覆蓋.