MySQL相關的一些常識

10年積累的成都網(wǎng)站制作、做網(wǎng)站經(jīng)驗,可以快速應對客戶對網(wǎng)站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡服務。我雖然不認識你,你也不認識我。但先做網(wǎng)站后付款的網(wǎng)站建設流程,更有溧陽免費網(wǎng)站建設讓你可以放心的選擇與我們合作。

本文主要給大家介紹MySQL相關的一些常識,文章內容都是筆者用心摘選和編輯的,具有一定的針對性,對大家的參考意義還是比較大的,下面跟筆者一起了解下MySQL相關的一些常識吧。

一、MySQL下載與安裝

    (一)、可以選擇Linux General來下載免編譯的tar.gz的包,解壓以后,具體操作可根據(jù)

    (1)、mv mysql-5.1.40-linux-i686-icc-glibc23 /usr/local/mysql

    (2)、建立mysql用戶: useradd -s /sbin/nologin mysql

    (3)、初始化數(shù)據(jù)庫

        [root@localhost src]# cd /usr/local/mysql
        [root@localhost mysql]# mkdir -p /data/mysql ; chown -R mysql:mysql /data/mysql
        [root@localhost mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql

    (4)、拷貝配置文件

[root@localhost mysql]# cp support-files/my-large.cnf /etc/my.cnf
        [root@localhost mysql]# cp support-files/mysql.server  /etc/init.d/mysqld
        [root@localhost mysql]# chmod 755 /etc/init.d/mysqld
    (6)、
        [root@localhost mysql]# vim /etc/init.d/mysqld

           需要修改的地方有 “datadir=/data/mysql” (前面初始化數(shù)據(jù)庫時定義的目錄)

      (7)、把啟動腳本加入系統(tǒng)服務項,并設定開機啟動,啟動mysql

        [root@localhost mysql]# chkconfig --add mysqld
        [root@localhost mysql]# chkconfig mysqld on
        [root@localhost mysql]# service mysqld start

          如果啟動不了,請到 /data/mysql/ 下查看錯誤日志,這個日志通常是主機名.err. 檢查mysql是否啟動的命令為:[root@localhost mysql]# ps aux |grep mysqld

    (二)、也可以下載rpm包,直接用rpm -ivh filename 來安裝

         rpm -ivh http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm

         yum install mysql mysql-community-server -y

  MySQL相關的一些常識  

二、常用操作

    

 flushprivileges ;//修改權限之后,刷新MySQL的系統(tǒng)權限相關表方可生效

 (一)Linux下MySQL的備份與還原 
1. 備份 
[root@localhost ~]# cd /var/lib/mysql (進入到MySQL庫目錄,根據(jù)自己的MySQL的安裝情況調整目錄) 
[root@localhost mysql]# mysqldump -u root -p voice>voice.sql,輸入密碼即可。
2. 還原
法一:
[root@localhost ~]# mysql -u root -p 回車,輸入密碼,進入MySQL的控制臺"mysql>",同1.2還原。
法二:
[root@localhost ~]# cd /var/lib/mysql (進入到MySQL庫目錄,根據(jù)自己的MySQL的安裝情況調整目錄) 
[root@localhost mysql]# mysql -u root -p voice<voice.sql,輸入密碼即可。

mysqldump: Got error: 1016 when usingLOCK TABLES 

hitidea是一個有很多數(shù)據(jù)表的數(shù)據(jù)庫(Wordpress MU),搜索了一下,發(fā)現(xiàn)只要在mysqldump的時候加上–lock-tables=false就可以解決問題。

 

零、用戶管理:

1、新建用戶:

>CREATEUSER name IDENTIFIED BY 'ssapdrow';

2、更改密碼:

>SETPASSWORD FOR name=PASSWORD('fdddfd');

3、權限管理

>SHOWGRANTS FOR name;    //查看name用戶權限

>GRANTSELECT ON db_name.* TO name;//給name用戶db_name數(shù)據(jù)庫的所有權限

>REVOKESELECT ON db_name.* TO name;//GRANT的反操作,去除權限;

一、數(shù)據(jù)庫操作: 

1、查看數(shù)據(jù)庫:

>SHOWDATABASES;

2、創(chuàng)建數(shù)據(jù)庫:

>CREATEDATABASE db_name;//db_name為數(shù)據(jù)庫名

3、使用數(shù)據(jù)庫:

>USEdb_name;

4、刪除數(shù)據(jù)庫:

>DROPDATABASE db_name;

二、創(chuàng)建表:

1、創(chuàng)建表:

>CREATETABLE table_name;

>idTINYINT UNSIGNED NOT NULL AUTO_INCREMENT,//id值,無符號、非空、遞增——唯一性,可做主鍵。

>nameVARCHAR(60) NOT NULL

>scoreTINYINT UNSIGNED NOT NULL DEFAULT 0,//設置默認列值

>PRIMARYKEY(id)

>ENGINE=InnoDB//設置表的存儲引擎,一般常用InnoDB和MyISAM;InnoDB可靠,支持事務;MyISAM高效不支持全文檢索

>DEFAULTcharset=utf8;//設置默認的編碼,防止數(shù)據(jù)庫中文亂碼

如果有條件的創(chuàng)建數(shù)據(jù)表還可以使用  >CREATE TABLE IF NOT EXISTS tb_name(........

2、復制表:

>CREATETABLE tb_name2 SELECT * FROM tb_name;

或者部分復制:

>CREATETABLE tb_name2 SELECT id,name FROM tb_name;

3、創(chuàng)建臨時表:

>CREATETEMPORARY TABLE tb_name(這里和創(chuàng)建普通表一樣);

4、查看數(shù)據(jù)庫中可用的表:

>SHOWTABLES;

5、查看表的結構:

>DESCRIBEtb_name;

也可以使用:

>SHOWCOLUMNS in tb_name; //from也可以

6、刪除表:

>DROP[ TEMPORARY ] TABLE [ IF EXISTS ] tb_name[ ,tb_name2.......];

實例:

>DROPTABLE IF EXISTS tb_name;

7、表重命名:

>RENAMETABLE name_old TO name_new;

還可以使用:

>ALTERTABLE name_old RENAME name_new;

三、修改表:

1、更改表結構:

>ALTERTABLE tb_name ADD[CHANGE,RENAME,DROP] ...要更改的內容...

實例:

>ALTERTABLE tb_name ADD COLUMN address varchar(80) NOT NULL;

>ALTERTABLE tb_name DROP address;

>ALTERTABLE tb_name CHANGE score score SMALLINT(4) NOT NULL;

四、插入數(shù)據(jù):

1、插入數(shù)據(jù):

>INSERTINTO tb_name(id,name,score)VALUES(NULL,'張三',140),(NULL,'張四',178),(NULL,'張五',134);

這里的插入多條數(shù)據(jù)直接在后邊加上逗號,直接寫入插入的數(shù)據(jù)即可;主鍵id是自增的列,可以不用寫。

2、插入檢索出來的數(shù)據(jù):

>INSERTINTO tb_name(name,score) SELECT name,score FROM tb_name2;

五、更新數(shù)據(jù):

1、指定更新數(shù)據(jù):

>UPDATEtb_name SET score=189 WHERE id=2;

>UPDATEtablename SET columnName=NewValue [ WHERE condition ]

六、刪除數(shù)據(jù):

1、刪除數(shù)據(jù):

>DELETEFROM tb_name WHERE id=3;

七、條件控制:

1、WHERE 語句:

>SELECT* FROM tb_name WHERE id=3;

2、HAVING 語句:

>SELECT* FROM tb_name GROUP BY score HAVING count(*)>2

3、相關條件控制符: 

=、>、<、<>、IN(1,2,3......)、BETWEEN a AND b、NOT

AND、OR

Linke()用法中      %  為匹配任意、  _  匹配一個字符(可以是漢字)

ISNULL 空值檢測

 八、MySQL的正則表達式:

1、Mysql支持REGEXP的正則表達式:

>SELECT* FROM tb_name WHERE name REGEXP '^[A-D]'   //找出以A-D 為開頭的name

2、特殊字符需要轉義。

 九、MySQL的一些函數(shù):

1、字符串鏈接——CONCAT()

>SELECTCONCAT(name,'=>',score) FROM tb_name

2、數(shù)學函數(shù):

AVG、SUM、MAX、MIN、COUNT;

3、文本處理函數(shù):

TRIM、LOCATE、UPPER、LOWER、SUBSTRING

4、運算符:

+、-、*、\

5、時間函數(shù):

DATE()、CURTIME()、DAY()、YEAR()、NOW().....

 十、分組查詢:

 1、分組查詢可以按照指定的列進行分組:

>SELECTCOUNT(*) FROM tb_name GROUP BY score HAVING COUNT(*)>1;

2、條件使用Having;

3、ORDER BY 排序:

ORDERBY DESC|ASC=>按數(shù)據(jù)的降序和升序排列

十一、UNION規(guī)則——可以執(zhí)行兩個語句(可以去除重復行)

十二、全文檢索——MATCH和AGAINST

1、SELECTMATCH(note_text)AGAINST('PICASO') FROM tb_name;

2、InnoDB引擎不支持全文檢索,MyISAM可以;

 十三、視圖

1、創(chuàng)建視圖

>CREATEVIEW name AS SELECT * FROM tb_name WHERE ~~ ORDER BY ~~;

2、視圖的特殊作用:

a、簡化表之間的聯(lián)結(把聯(lián)結寫在select中);

b、重新格式化輸出檢索的數(shù)據(jù)(TRIM,CONCAT等函數(shù));

c、過濾不想要的數(shù)據(jù)(select部分)

d、使用視圖計算字段值,如匯總這樣的值。

十四、觸發(fā)器:

觸發(fā)器是指在進行某項指定操作時,觸發(fā)觸發(fā)器內指定的操作;

1、支持觸發(fā)器的語句有DELETE、INSERT、UPDATE,其他均不支持

2、創(chuàng)建觸發(fā)器:

>CREATETRIGGER trig AFTER INSERT ON ORDERS FOR EACH ROW SELECT NEW.orser_name;

>INSERT語句,觸發(fā)語句,返回一個值

3、刪除觸發(fā)器

>DROPTRIGGER trig;

   三、MySQL拷貝表的幾種方式

CREATE TABLE IF NOT EXISTS `admin` (  

`id` int(6) unsigned NOT NULL auto_increment,  

`username` varchar(50) NOT NULL default '',  

`password` varchar(100) default NULL,  

PRIMARY KEY (`id`)   

) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ; 

1. 下面這個語句會拷貝表結構到新表newadmin中。 (不會拷貝表中的數(shù)據(jù))

CREATE TABLE newadmin LIKE admin  

2. 下面這個語句會拷貝數(shù)據(jù)到新表中。 注意:這個語句其實只是把select語句的結果建一個表。所以newadmin這個表不會有主鍵,索引。

CREATE TABLE newadmin AS  

(   SELECT * FROM admin   )   

3. 如果你要真正的復制一個表??梢杂孟旅娴恼Z句。

CREATE TABLE newadmin LIKE admin;  

INSERT INTO newadmin SELECT * FROM admin; 

 

4. 我們可以操作不同的數(shù)據(jù)庫。

CREATE TABLE newadmin LIKE shop.admin;  

CREATE TABLE newshop.newadmin LIKE shop.admin; 

 

5. 我們也可以拷貝一個表中其中的一些字段。

CREATE TABLE newadmin AS  

(   

SELECT username, password FROM admin  

)  

 

6. 我們也可以講新建的表的字段改名。

CREATE TABLE newadmin AS  

(   

SELECT id, username AS uname, password AS pass FROM admin  

)  

 

7. 我們也可以拷貝一部分數(shù)據(jù)。

CREATE TABLE newadmin AS  

( SELECT * FROM admin WHERE LEFT(username,1) = 's' )  

8. 我們也可以在創(chuàng)建表的同時定義表中的字段信息。

CREATE TABLE newadmin ( id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY ) AS ( SELECT * FROM admin )  

看完以上關于MySQL相關的一些常識,很多讀者朋友肯定多少有一定的了解,如需獲取更多的行業(yè)知識信息 ,可以持續(xù)關注我們的行業(yè)資訊欄目的。

 

名稱欄目:MySQL相關的一些常識
分享鏈接:http://bm7419.com/article20/iipjco.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供建站公司網(wǎng)站內鏈、定制網(wǎng)站、響應式網(wǎng)站、網(wǎng)站策劃、網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設計公司