10年積累的成都網站制作、做網站經驗,可以快速應對客戶對網站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網絡服務。我雖然不認識你,你也不認識我。但先做網站后付款的網站建設流程,更有溧陽免費網站建設讓你可以放心的選擇與我們合作。
本文主要給大家介紹MySQL相關的一些常識,文章內容都是筆者用心摘選和編輯的,具有一定的針對性,對大家的參考意義還是比較大的,下面跟筆者一起了解下MySQL相關的一些常識吧。
一、MySQL下載與安裝
(一)、可以選擇Linux General來下載免編譯的tar.gz的包,解壓以后,具體操作可根據
(1)、mv mysql-5.1.40-linux-i686-icc-glibc23 /usr/local/mysql
(2)、建立mysql用戶: useradd -s /sbin/nologin mysql
(3)、初始化數據庫
[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” (前面初始化數據庫時定義的目錄)
(7)、把啟動腳本加入系統服務項,并設定開機啟動,啟動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
二、常用操作
flushprivileges ;//修改權限之后,刷新MySQL的系統權限相關表方可生效
(一)Linux下MySQL的備份與還原
1. 備份
[root@localhost ~]# cd /var/lib/mysql (進入到MySQL庫目錄,根據自己的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庫目錄,根據自己的MySQL的安裝情況調整目錄)
[root@localhost mysql]# mysql -u root -p voice<voice.sql,輸入密碼即可。
hitidea是一個有很多數據表的數據庫(Wordpress MU),搜索了一下,發現只要在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數據庫的所有權限
>REVOKESELECT ON db_name.* TO name;//GRANT的反操作,去除權限;
一、數據庫操作:
1、查看數據庫:
>SHOWDATABASES;
2、創建數據庫:
>CREATEDATABASE db_name;//db_name為數據庫名
3、使用數據庫:
>USEdb_name;
4、刪除數據庫:
>DROPDATABASE db_name;
二、創建表:
1、創建表:
>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;//設置默認的編碼,防止數據庫中文亂碼
如果有條件的創建數據表還可以使用 >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、創建臨時表:
>CREATETEMPORARY TABLE tb_name(這里和創建普通表一樣);
4、查看數據庫中可用的表:
>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;
四、插入數據:
1、插入數據:
>INSERTINTO tb_name(id,name,score)VALUES(NULL,'張三',140),(NULL,'張四',178),(NULL,'張五',134);
這里的插入多條數據直接在后邊加上逗號,直接寫入插入的數據即可;主鍵id是自增的列,可以不用寫。
2、插入檢索出來的數據:
>INSERTINTO tb_name(name,score) SELECT name,score FROM tb_name2;
五、更新數據:
1、指定更新數據:
>UPDATEtb_name SET score=189 WHERE id=2;
>UPDATEtablename SET columnName=NewValue [ WHERE condition ]
六、刪除數據:
1、刪除數據:
>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的一些函數:
1、字符串鏈接——CONCAT()
>SELECTCONCAT(name,'=>',score) FROM tb_name
2、數學函數:
AVG、SUM、MAX、MIN、COUNT;
3、文本處理函數:
TRIM、LOCATE、UPPER、LOWER、SUBSTRING
4、運算符:
+、-、*、\
5、時間函數:
DATE()、CURTIME()、DAY()、YEAR()、NOW().....
十、分組查詢:
1、分組查詢可以按照指定的列進行分組:
>SELECTCOUNT(*) FROM tb_name GROUP BY score HAVING COUNT(*)>1;
2、條件使用Having;
3、ORDER BY 排序:
ORDERBY DESC|ASC=>按數據的降序和升序排列
十一、UNION規則——可以執行兩個語句(可以去除重復行)
十二、全文檢索——MATCH和AGAINST
1、SELECTMATCH(note_text)AGAINST('PICASO') FROM tb_name;
2、InnoDB引擎不支持全文檢索,MyISAM可以;
十三、視圖
1、創建視圖
>CREATEVIEW name AS SELECT * FROM tb_name WHERE ~~ ORDER BY ~~;
2、視圖的特殊作用:
a、簡化表之間的聯結(把聯結寫在select中);
b、重新格式化輸出檢索的數據(TRIM,CONCAT等函數);
c、過濾不想要的數據(select部分)
d、使用視圖計算字段值,如匯總這樣的值。
十四、觸發器:
觸發器是指在進行某項指定操作時,觸發觸發器內指定的操作;
1、支持觸發器的語句有DELETE、INSERT、UPDATE,其他均不支持
2、創建觸發器:
>CREATETRIGGER trig AFTER INSERT ON ORDERS FOR EACH ROW SELECT NEW.orser_name;
>INSERT語句,觸發語句,返回一個值
3、刪除觸發器
>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中。 (不會拷貝表中的數據)
CREATE TABLE newadmin LIKE admin
2. 下面這個語句會拷貝數據到新表中。 注意:這個語句其實只是把select語句的結果建一個表。所以newadmin這個表不會有主鍵,索引。
CREATE TABLE newadmin AS
( SELECT * FROM admin )
3. 如果你要真正的復制一個表。可以用下面的語句。
CREATE TABLE newadmin LIKE admin;
INSERT INTO newadmin SELECT * FROM admin;
4. 我們可以操作不同的數據庫。
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. 我們也可以拷貝一部分數據。
CREATE TABLE newadmin AS
( SELECT * FROM admin WHERE LEFT(username,1) = 's' )
8. 我們也可以在創建表的同時定義表中的字段信息。
CREATE TABLE newadmin ( id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY ) AS ( SELECT * FROM admin )
看完以上關于MySQL相關的一些常識,很多讀者朋友肯定多少有一定的了解,如需獲取更多的行業知識信息 ,可以持續關注我們的行業資訊欄目的。
名稱欄目:MySQL相關的一些常識
分享鏈接:http://vcdvsql.cn/article20/iipjco.html
成都網站建設公司_創新互聯,為您提供建站公司、網站內鏈、定制網站、響應式網站、網站策劃、網站制作
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯