Mysql 基礎學習

1、MySQL 如何導入匯出個別需要資料記錄?

– 先導出資料所在的表結構:
mysql> show create table CHARBASE into outfile “/db/mysql/RS.sql” ;

– 將需要單獨匯出的內容存放在文字檔裡,這裡一定要注意存放的位置必須是mysql用戶有許可權的位置:
mysql> select * from CHARBASE order by CHARID desc limit 15 into outfile “/db/mysql/record.sql” ;
– (注意 into outfile 只能用於 select 語句)

– 創建同樣的表結構:
mysql> create database test;
mysql> source RS.sql;

– 將檔資料導入新的資料庫:
mysql> LOAD DATA INFILE ‘/db/mysql/record.sql’ INTO TABLE CHARBASE;

2、如何導入匯出一個表的內容?

– 可以select整個表的內容,用load導入!
– mysqldump
– mysqldump -h127.0.0.1 -uroot -p DBNAME TableName > table.sql

3、如何備份還原整個資料庫?

– 備份還原整個MySQL資料庫其實是最最簡單的一件事情,通常我們不需要任何工具,而是把整個目錄拷貝出來即可!(注意,如果是遷移伺服器最好把 mysql資料庫也一起拷貝過去。)
– 在拷貝完畢之後我們只要將許可權做一簡單設置即可:
– chown mysql.mysql /db -R
– mysql.server restart
– 也可以用 mysqldump 來備份整個資料庫.
– mysqldump -h127.0.0.1 -uroot -p DBNAME > table.sql

4、如何用mysql命令來備份mysql資料庫?

– 如果是比較小的mysql資料庫,當然也可以將整個資料庫備份成一個標準的SQL指令檔,然後還原.
– mysqldump -h127.0.0.1 -uroot -p test > /db/mysql/test.sql;
– create database test02;
– use test02;
– source /db/mysql/test.sql;

5、如何匯出一個資料庫結構,但不匯出任何資料?
– mysqldump -h127.0.0.1 -uroot -p -d RecordServer > /db/mysql/RecordServer.sql;

6、如何查看資料庫、表、表結構、建表、建庫SQL腳本?

mysql> show databases;
mysql> show tables;
mysql> desc CHARBASE;
mysql> show create table CHARBASE;
– mysqldump -h127.0.0.1 -uroot -p -d RecordServer > /db/mysql/RecordServer.sql;

7、MySQL裡邊存放時間和存放IP位址的欄位通常都是轉換過的寫法,請問如何查看他們本來的格式?

mysql> select CHARID,CREATEIP,CREATETIME,MAC,INET_NTOA(CREATEIP) AS IP,FROM_UNIXTIME(CREATETIME) AS TIME FROM CREATEIP WHERE CHARID=13566952;
+———-+————+————+—————–+—————-+———————+
| CHARID | CREATEIP | CREATETIME | MAC | IP | TIME |
+———-+————+————+—————–+—————-+———————+
| 13566952 | 2329037786 | 1208804488 | 176940240538368 | 138.210.75.218 | 2008-04-22 03:01:28 |
+———-+————+————+—————–+—————-+———————+
[注意]:這裡得出的IP位址是不對的,正確的應該是反向的,比如上邊正確的應該是 218.75.210.138 .

8、請舉例說明如何在一個表中插入,修改或刪除一個欄位?

– 在某個欄位後插入:
mysql> ALTER TABLE `RELATION` ADD `COUNTRYWARKILL` int(10) unsigned NOT NULL default ‘0′ after `ZEROCLEAR`;

– 在最後一個欄位後面插入:
mysql> ALTER TABLE `RELATION` ADD `COUNTRYWARKILL` int(10) unsigned NOT NULL default ‘0′;

– 刪除一個欄位:
mysql> alter table CHARBASE drop ZONE; 或:
mysql> alter table CHARBASE drop COLUMN ZONE;

– 重命名欄位:
mysql> alter table CHARBASE change ZONE ZONE01 integer not null default ‘0′;

– 如何重命名表
mysql> ALTER TABLE CHARBASE RENAME CHARNAME;

9、Linux 終端不支援在 MySQL 命令模式下寫中文,如何解決?

– 直接在命令中執行:
mysql -e “use RecordServer;select CHARBASE.NAME,RELATION.COUNTRYWARKILL FROM CHARBASE,RELATION WHERE CHARBASE.COUNTRY=4 AND CHARBASE.NAME LIKE ‘豪MeN%’”

– 將 update 的更新中文名字的語句寫入到文字檔,用source來執行:
mysql> source /db/mysql/test.sql;

– 寫成shell腳本執行:
#/bin/bash
mysql -e “use RecordServer;UPDATE RELATION SET NAME=’最不厲害2′ WHERE CHARID=15292694;UPDATE RELATION SET NAME=’旺角口水文2′ WHERE CHARID=14771293;”

– 直接執行:
mysql -umysql -p123456 -h192.168.1.50 RecordServer -e “INSERT INTO CHARBASE (ACCID,NAME) VALUES(85164210,’Droney.zhao’);”

10、如何對表進行插入,修改,刪除的操作?

– 對表格的插入操作:
mysql> INSERT INTO CHARBASE (ACCID,NAME) VALUES(85164210,’Droney’);

– 清空這個表:
mysql> delete from COUNTRY;

– 刪除表中的某些記錄:
mysql> DELETE FROM COUNTRY WHERE ID NOT IN(2,3,4,5,6);
mysql> DELETE FROM COUNTRY WHERE NAME = ‘Droney’;
mysql> DELETE FROM COUNTRY WHERE NAME like ‘%三秦浪子%’;

– 更新表中的某些記錄:
mysql> UPDATE COUNTRY SET EXP=500 WHERE ID IN(2,3,4,5,6);

11、如何重命名表?
mysql> ALTER TABLE CHARBASE RENAME CHARNAME;

12、怎麼查詢欄位值為1的記錄中相同使用者的個數,只將擁有這樣的記錄的個數 >9 的欄位顯示出來?
SELECT CHARID,COUNT(*) FROM FRIEND WHERE WHICH=1 GROUP BY CHARID HAVING COUNT(WHICH)>9;

13、如何修改mysql使用者密碼?
mysql> use mysql;
mysql> update user set password=password(‘123456′) where user=’mysql’;
mysql> FLUSH PRIVILEGES;
或者:
mysqladmin -h192.168.1.1 -uusername -poldpassword password newpassword

– 如何添加、刪除一個MySQL用戶?
– 可以用以下方法添加,建議還是用上邊設置許可權的方式去添加新的使用者.
mysql> INSERT INTO `user` VALUES (‘192.168.76.250′, ‘Droney’, PASSWORD( ‘123456′ ) , ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ”, ”, ”, ”, ‘0′, ‘0′, ‘0′);
mysql> FLUSH PRIVILEGES;

14、mysql使用者密碼忘記或者IP限制登錄怎麼辦?

– 需要重新初始化資料庫.
su – dbadmin -c “/usr/local/mysql/bin/mysql_db_install”

mv /db/mysql/mysql /db/mysql/mysql_bak && /usr/local/mysql/bin/mysql_db_install

chown mysql.mysql /db/ -R && mysql.server restart

15、如何查看mysql資料庫編碼?
mysql> show variables like ‘character_set_%’;

16、如何建立一個表,並插入一條記錄?
mysql> CREATE TABLE `SERVERLIST` (
`ID` int(10) unsigned NOT NULL auto_increment,
`NAME` varchar(32) NOT NULL default ”,
PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

mysql> INSERT INTO `SERVERLIST` VALUES (1,’Droney’);

17、如何為MySQL設置存取權限?

– 下面設置了只允許 192.168.1.0 網段連接,且添加dbadmin使用者,密碼123456,並刪除所有密碼為空的mysql使用者.
mysql> GRANT ALL PRIVILEGES ON *.* TO dbadmin@’192.168.1.%’ IDENTIFIED BY ‘123456′ WITH GRANT OPTION;
mysql> delete from mysql.user where password=””;
mysql> flush privileges;

– 其他設置示範:
mysql> grant all on *.* to dbadmin@localhost identified by ‘password’;
mysql> grant all on dbname.* to dbadmin@% identified by ‘password’;
mysql> grant select,insert on dbname.tablename to dbadmin@192.168.1.% identified by ‘password’;

18、如何添加、刪除一個MySQL用戶?

– 可以用以下方法添加,建議還是用上邊設置許可權的方式去添加新的使用者.
mysql> INSERT INTO `user` VALUES (‘192.168.76.250′, ‘Droney’, PASSWORD( ‘123456′ ) , ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ”, ”, ”, ”, ‘0′, ‘0′, ‘0′);
mysql> FLUSH PRIVILEGES;

19、如果用mysqldump匯出的資料出現了亂碼怎麼辦?
iconv -c -f UTF-8 -t GB2312 庫檔案名 > 新的庫檔案名

20、忘記了mysql 密碼,我不想重新初始mysql資料庫,我該怎麼辦?

– 殺掉原來mysql進程,用如下命令來啟動mysql,這樣mysql就可以不需要密碼,也沒有IP限制的輕鬆登陸了!
mysql> /usr/local/mysql/bin/mysqld_safe –skip-grant-tables &

21、如何查看mysql建立的執行緒:
mysql> show processlist;

22、其它常用語句:

mysql> status 可以查看mysql的狀態資訊

mysql> tee history.txt 以後在mysql中操作的所有指令將被存儲在history.txt文件中;

mysql> notee; 取消將指令存入檔的操作;

mysql> system clear; 可以在mysql shell下臨時調用系統命令對系統檔進行操作;

– 備份整個資料庫(用cp要簡單快捷一些)
mysqldump -h192.168.1.1 -uroot -p SuperServer > /SuperServer.sql;

– 匯出整個資料庫結構
mysqldump -h192.168.1.1 -uroot -p -d SuperServer > /SuperServer.sql;

– 匯出表結構
mysql> show create table CHARBASE;

– 匯出表結構及內容
mysqldump -h192.168.1.1 -uroot -p -d SuperServer CHARBASE > /SuperServer.sql;

– 匯出建表結構的腳本
mysql> show create table CHARBASE;

– 將查詢的結果直接保存到檔
mysql> select * from mysql.user into outfile ‘aaa.sql’;

23 修改表結構:

– 創建欄位 NAME51 ,將該欄位的位置移至 DSTZONE 之後
SQL> ALTER TABLE `CHARBASE` add `NAME51` varchar(33) NOT NULL default ”;
SQL> ALTER TABLE `CHARBASE` change `NAME51` `NAME51` varchar(33) NOT NULL default ” AFTER `DSTZONE`;

24 創建索引:

create index ID on TEMP(CHARID);

25 高級查詢:

CREATE TABLE `C` (
`ID` varchar(100) NOT NULL default ”,
`NAME` varchar(100) NOT NULL default ”
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

update A,B set B.ID=A.ID where A.name=B.name;

insert into B(ID,NAME) select ID,NAME from A;

insert into B(ID,NAME,AGE) select ID,NAME,25 from A;

insert into C(NAME) VALUES (‘zhaohang’),(‘zhouzhou’),(‘xiaoxiao’);

26 設置自增欄位的自增起始值:

Alter tableName auto_increment = 4000;

本文轉載自作者:muxi,原文链接:http://www.99wee.com/article/112.html

Leave a Reply

*