10年積累的成都網(wǎng)站制作、做網(wǎng)站經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先做網(wǎng)站后付款的網(wǎng)站建設(shè)流程,更有溧陽免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
本文主要給大家介紹MySQL相關(guān)的一些常識(shí),文章內(nèi)容都是筆者用心摘選和編輯的,具有一定的針對(duì)性,對(duì)大家的參考意義還是比較大的,下面跟筆者一起了解下MySQL相關(guān)的一些常識(shí)吧。
一、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ù)庫時(shí)定義的目錄)
(7)、把啟動(dòng)腳本加入系統(tǒng)服務(wù)項(xiàng),并設(shè)定開機(jī)啟動(dòng),啟動(dòng)mysql
[root@localhost mysql]# chkconfig --add mysqld [root@localhost mysql]# chkconfig mysqld on [root@localhost mysql]# service mysqld start
如果啟動(dòng)不了,請(qǐng)到 /data/mysql/ 下查看錯(cuò)誤日志,這個(gè)日志通常是主機(jī)名.err. 檢查mysql是否啟動(dòng)的命令為:[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
二、常用操作
flushprivileges ;//修改權(quán)限之后,刷新MySQL的系統(tǒng)權(quán)限相關(guān)表方可生效
(一)Linux下MySQL的備份與還原
1. 備份
[root@localhost ~]# cd /var/lib/mysql (進(jìn)入到MySQL庫目錄,根據(jù)自己的MySQL的安裝情況調(diào)整目錄)
[root@localhost mysql]# mysqldump -u root -p voice>voice.sql,輸入密碼即可。
2. 還原
法一:
[root@localhost ~]# mysql -u root -p 回車,輸入密碼,進(jìn)入MySQL的控制臺(tái)"mysql>",同1.2還原。
法二:
[root@localhost ~]# cd /var/lib/mysql (進(jìn)入到MySQL庫目錄,根據(jù)自己的MySQL的安裝情況調(diào)整目錄)
[root@localhost mysql]# mysql -u root -p voice<voice.sql,輸入密碼即可。
hitidea是一個(gè)有很多數(shù)據(jù)表的數(shù)據(jù)庫(Wordpress MU),搜索了一下,發(fā)現(xiàn)只要在mysqldump的時(shí)候加上–lock-tables=false就可以解決問題。
零、用戶管理:
1、新建用戶:
>CREATEUSER name IDENTIFIED BY 'ssapdrow';
2、更改密碼:
>SETPASSWORD FOR name=PASSWORD('fdddfd');
3、權(quán)限管理
>SHOWGRANTS FOR name; //查看name用戶權(quán)限
>GRANTSELECT ON db_name.* TO name;//給name用戶db_name數(shù)據(jù)庫的所有權(quán)限
>REVOKESELECT ON db_name.* TO name;//GRANT的反操作,去除權(quán)限;
一、數(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值,無符號(hào)、非空、遞增——唯一性,可做主鍵。
>nameVARCHAR(60) NOT NULL
>scoreTINYINT UNSIGNED NOT NULL DEFAULT 0,//設(shè)置默認(rèn)列值
>PRIMARYKEY(id)
>ENGINE=InnoDB//設(shè)置表的存儲(chǔ)引擎,一般常用InnoDB和MyISAM;InnoDB可靠,支持事務(wù);MyISAM高效不支持全文檢索
>DEFAULTcharset=utf8;//設(shè)置默認(rèn)的編碼,防止數(shù)據(jù)庫中文亂碼
如果有條件的創(chuàng)建數(shù)據(jù)表還可以使用 >CREATE TABLE IF NOT EXISTS tb_name(........
2、復(fù)制表:
>CREATETABLE tb_name2 SELECT * FROM tb_name;
或者部分復(fù)制:
>CREATETABLE tb_name2 SELECT id,name FROM tb_name;
3、創(chuàng)建臨時(shí)表:
>CREATETEMPORARY TABLE tb_name(這里和創(chuàng)建普通表一樣);
4、查看數(shù)據(jù)庫中可用的表:
>SHOWTABLES;
5、查看表的結(jié)構(gòu):
>DESCRIBEtb_name;
也可以使用:
>SHOWCOLUMNS in tb_name; //from也可以
6、刪除表:
>DROP[ TEMPORARY ] TABLE [ IF EXISTS ] tb_name[ ,tb_name2.......];
實(shí)例:
>DROPTABLE IF EXISTS tb_name;
7、表重命名:
>RENAMETABLE name_old TO name_new;
還可以使用:
>ALTERTABLE name_old RENAME name_new;
三、修改表:
1、更改表結(jié)構(gòu):
>ALTERTABLE tb_name ADD[CHANGE,RENAME,DROP] ...要更改的內(nèi)容...
實(shí)例:
>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ù)直接在后邊加上逗號(hào),直接寫入插入的數(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、相關(guān)條件控制符:
=、>、<、<>、IN(1,2,3......)、BETWEEN a AND b、NOT
AND、OR
Linke()用法中 % 為匹配任意、 _ 匹配一個(gè)字符(可以是漢字)
ISNULL 空值檢測(cè)
八、MySQL的正則表達(dá)式:
1、Mysql支持REGEXP的正則表達(dá)式:
>SELECT* FROM tb_name WHERE name REGEXP '^[A-D]' //找出以A-D 為開頭的name
2、特殊字符需要轉(zhuǎn)義。
九、MySQL的一些函數(shù):
1、字符串鏈接——CONCAT()
>SELECTCONCAT(name,'=>',score) FROM tb_name
2、數(shù)學(xué)函數(shù):
AVG、SUM、MAX、MIN、COUNT;
3、文本處理函數(shù):
TRIM、LOCATE、UPPER、LOWER、SUBSTRING
4、運(yùn)算符:
+、-、*、\
5、時(shí)間函數(shù):
DATE()、CURTIME()、DAY()、YEAR()、NOW().....
十、分組查詢:
1、分組查詢可以按照指定的列進(jìn)行分組:
>SELECTCOUNT(*) FROM tb_name GROUP BY score HAVING COUNT(*)>1;
2、條件使用Having;
3、ORDER BY 排序:
ORDERBY DESC|ASC=>按數(shù)據(jù)的降序和升序排列
十一、UNION規(guī)則——可以執(zhí)行兩個(gè)語句(可以去除重復(fù)行)
十二、全文檢索——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、簡(jiǎn)化表之間的聯(lián)結(jié)(把聯(lián)結(jié)寫在select中);
b、重新格式化輸出檢索的數(shù)據(jù)(TRIM,CONCAT等函數(shù));
c、過濾不想要的數(shù)據(jù)(select部分)
d、使用視圖計(jì)算字段值,如匯總這樣的值。
十四、觸發(fā)器:
觸發(fā)器是指在進(jìn)行某項(xiàng)指定操作時(shí),觸發(fā)觸發(fā)器內(nèi)指定的操作;
1、支持觸發(fā)器的語句有DELETE、INSERT、UPDATE,其他均不支持
2、創(chuàng)建觸發(fā)器:
>CREATETRIGGER trig AFTER INSERT ON ORDERS FOR EACH ROW SELECT NEW.orser_name;
>INSERT語句,觸發(fā)語句,返回一個(gè)值
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. 下面這個(gè)語句會(huì)拷貝表結(jié)構(gòu)到新表newadmin中。 (不會(huì)拷貝表中的數(shù)據(jù))
CREATE TABLE newadmin LIKE admin
2. 下面這個(gè)語句會(huì)拷貝數(shù)據(jù)到新表中。 注意:這個(gè)語句其實(shí)只是把select語句的結(jié)果建一個(gè)表。所以newadmin這個(gè)表不會(huì)有主鍵,索引。
CREATE TABLE newadmin AS
( SELECT * FROM admin )
3. 如果你要真正的復(fù)制一個(gè)表??梢杂孟旅娴恼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. 我們也可以拷貝一個(gè)表中其中的一些字段。
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. 我們也可以拷貝一部分?jǐn)?shù)據(jù)。
CREATE TABLE newadmin AS
( SELECT * FROM admin WHERE LEFT(username,1) = 's' )
8. 我們也可以在創(chuàng)建表的同時(shí)定義表中的字段信息。
CREATE TABLE newadmin ( id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY ) AS ( SELECT * FROM admin )
看完以上關(guān)于MySQL相關(guān)的一些常識(shí),很多讀者朋友肯定多少有一定的了解,如需獲取更多的行業(yè)知識(shí)信息 ,可以持續(xù)關(guān)注我們的行業(yè)資訊欄目的。
名稱欄目:MySQL相關(guān)的一些常識(shí)
分享鏈接:http://aaarwkj.com/article20/iipjco.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、網(wǎng)站內(nèi)鏈、定制網(wǎng)站、響應(yīng)式網(wǎng)站、網(wǎng)站策劃、網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)