真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Mysql數(shù)據(jù)庫理論基礎(chǔ)二

 MySQL數(shù)據(jù)庫理論基礎(chǔ)二

一、簡介

由MySQL AB公司開發(fā),是最流行的開放源碼SQL數(shù)據(jù)庫管理系統(tǒng),主要特點(diǎn):

我們提供的服務(wù)有:網(wǎng)站設(shè)計(jì)、成都網(wǎng)站設(shè)計(jì)、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、阿爾山ssl等。為成百上千家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的阿爾山網(wǎng)站制作公司

  • 1、是一種數(shù)據(jù)庫管理系統(tǒng)

  • 2、是一種關(guān)聯(lián)數(shù)據(jù)庫管理系統(tǒng)

  • 3、是一種開放源碼軟件,且有大量可用的共享MySQL軟件

  • 4、MySQL數(shù)據(jù)庫服務(wù)器具有快速、可靠和易于使用的特點(diǎn)

  • 5、MySQL服務(wù)器工作在客戶端/服務(wù)器模式下,或嵌入式系統(tǒng)中

  • InnoDB存儲引擎將InnoDB表保存在一個(gè)表空間內(nèi),該表空間可由數(shù)個(gè)文件創(chuàng)建。這樣,表的大小就能超過單獨(dú)文件的最大容量。表空間可包括原始磁盤分區(qū),從而使得很大的表成為可能。表空間的最大容量為64TB。

二、MySQL相關(guān)概念:MySQL是單進(jìn)程多線程接收應(yīng)用的請求

2.1. SQL/MySQL

1.事務(wù),隔離,并發(fā)控制,鎖

2.用戶和權(quán)限

3.監(jiān)控

   STATUS

4.索引類型:查詢

   VARIABLES

5.備份和恢復(fù)

6.復(fù)制功能

7.集群


2.2. DML:數(shù)據(jù)操作語言

   INSERT:插入

   DELETE:刪除

   SELECT:挑選,選擇,查詢

   UPDATE:更新,修改


2.3. DDL:數(shù)據(jù)定義語言

   CREATE:創(chuàng)建

   DROP:刪除

   ALTER:修改


2.4. DCL:數(shù)據(jù)控制語言

  GRANT:授權(quán)

  REVOKE:取消權(quán)限


2.5. MySQL插件式存儲引擎:

 1.MyISAM: 不支持事務(wù)處理,應(yīng)用于查詢比較多,但修改比較少的數(shù)據(jù)存儲倉庫

   該引擎中,每個(gè)表有三個(gè)文件:

         .frm: 表結(jié)構(gòu)文件

         .MYD: 表數(shù)據(jù)文件

         .MYI: 表索引文件

 2.InnoDB:支持事務(wù)處理,查詢沒有那么快,應(yīng)用于經(jīng)常需要修改的,比如論壇數(shù)據(jù)存儲

   該引擎所以表共享一個(gè)表空間文件;

   建議:每表一個(gè)獨(dú)立的表空間文件;

         .frm:表結(jié)構(gòu)文件

         .ibd:表空間(包含表數(shù)據(jù)和表索引文件)

   ----------------------------------------------------------------------

   為mysql打開innodb每表建立一個(gè)獨(dú)立表空間文件的設(shè)置:

   編輯配置文件/etc/my.cnf添加一行后重啟mysql服務(wù):

   #vim /etc/my.cnf

   ....

   innoda_file_per_table = 1    #1為啟用,0為禁用

   ----------------------------------------------------------------------

2.6. MYSQL數(shù)據(jù)庫功能:

   1、數(shù)據(jù)庫創(chuàng)建、刪除

   2、創(chuàng)建表、刪除表、修改表

   3、索引的創(chuàng)建、刪除

   4、用戶和權(quán)限

   5、數(shù)據(jù)增、刪、改

   6、查詢


2.7. MySQL二進(jìn)制程序:mysql數(shù)據(jù)庫的database存放路徑為/var/lib/mysql目錄中


2.8. 客戶端命令:mysql

       -u USERNAME     #以那個(gè)用戶連接mysql (不指定默認(rèn)用戶為root)

       -p           #指定輸入用戶密碼   (不指定默認(rèn)是空密碼)

       -h MYSQL_SERVER  #指定mysql服務(wù)器主機(jī) (不指定默認(rèn)為localhost本機(jī))

       -D DATA       #連接mysql的時(shí)候指定默認(rèn)的數(shù)據(jù)庫

eg1: mysql -D mydb -uroot -p -h 10.109.134.249 -D mydb

  -uroot 指定用戶 -p:輸入用戶密碼  -h:指定連接那臺mysql服務(wù)器(ip地址)

  -D: 指定登錄mysql默認(rèn)的數(shù)據(jù)庫(相當(dāng)于在客戶端內(nèi)輸入U(xiǎn)SE mydb;命令)


MySQL客戶端:

    交互式模式:一步一步的手動(dòng)輸入執(zhí)行

    批處理模式:執(zhí)行mysql腳本,批處理執(zhí)行


MySQL客戶端工具:

    mysql

    mysqldump:常見的mysql備份工具

    mysqladmin:mysql管理工具 

      mysqladmin extended-status  顯示狀態(tài)變量

       mysqladmin status

                  --sleep N   顯示頻率

                  --count N   顯示多個(gè)狀態(tài)

       mysqladmin variables     顯示服務(wù)器變量;

       mysqladmin flush-privileges  mysqld重讀授權(quán)表,等同于reload;

       mysqladmin flush-status    重置大多數(shù)服務(wù)器狀態(tài)變量;

       mysqladmin flush-logs   二進(jìn)制和中繼日志滾動(dòng);

       mysqladmin flush-hosts  刷新主機(jī)列表;

       mysqladmin refresh 刷新日志和主機(jī)列表,相當(dāng)于同時(shí)執(zhí)行flush-hosts和flush-logs;

       mysqladmin shutdown   關(guān)閉mysql服務(wù)器進(jìn)程;

       mysqladmin version    服務(wù)器版本及當(dāng)前狀態(tài)信息;

       mysqladmin start-slave 啟動(dòng)復(fù)制,啟動(dòng)從服務(wù)器復(fù)制線程;

       mysqladmin stop-slave 關(guān)閉復(fù)制,關(guān)閉從服務(wù)器復(fù)制線程。

    格式:mysqladmin [option] command [arg] [command [arg]] ...

      eg: mysqladmin -uroot -p password 'NEW_PASS' 

[root@lamp ~]# mysqladmin create hellodb;

[root@lamp ~]# mysql

.........

mysql> SHOW DATABASES;

+--------------------+

| Database       |

+--------------------+

| information_schema |

| hellodb        |  #通過mysqladmin可以直接管理mysql

...

+--------------------+

7 rows in set (0.00 sec)

       mysqlcheck:檢查工具   

       mysqlimport:接口工具


2.9. MySQL非客戶端工具:

        myisamchk

        myisampack


2.10. 交互式模式中的命令類別:

  客戶端命令:

?      (\?) Synonym for `help'.  獲取幫助

quit    (\q) Quit mysql.  退出mysql客戶端 

clear   (\c) Clear the current input statement.

       \c:提前終止語句執(zhí)行,但是必須在結(jié)束符前,否則該條指令依舊執(zhí)行。

go     (\g) Send command to mysql server.

        \g:無論語句結(jié)束符是什么,直接將此語句送至服務(wù)器端執(zhí)行;

ego    (\G) Send command to mysql server, display result vertically.

        \G:無論語句結(jié)束符是什么,直接將此語句送至服務(wù)器端執(zhí)行,而且結(jié)果以豎排顯示;

system   (\!) Execute a system shell command.

         \! COMMAND:執(zhí)行shell命令;

warnings  (\W) Show warnings after every statement.

         \W:語句執(zhí)行結(jié)束后顯示警告信息;

  服務(wù)器端命令:

必須使用語句結(jié)束符,默認(rèn)結(jié)束符為分號;SHOW DATABASES; #查看數(shù)據(jù)庫 

delimiter  (\d) Set statement delimiter.

         \d:定義語句結(jié)束符 (默認(rèn)語句結(jié)束符為分號,可以設(shè)定為其他)

help KEYWORD: 獲取關(guān)鍵字命令的幫助信息;

   eg: mysql>help SELECT;  #獲取SELECT命令的相關(guān)幫助信息;

    

--------------------------------------------------------------------------

在mysql客戶端中,名稱補(bǔ)全命令: rehash

# vim /etc/my.cnf        #修改配置文檔,使得命令補(bǔ)全永久有效;

[mysql]

#no-auto-rehash

auto-rehash = 1

# Remove the next comment character if you are not familiar with SQL

#safe-updates

mysql> rehash   #若不改配制,用命令rehash可tab鍵補(bǔ)全命令,但重新打開mysql將失效

mysql> u    #按tab鍵就有很多以U開頭的命令出來

unlock tables      user.Execute_priv     user.Shutdown_priv

updates       user.File_priv      user.Super_priv

...

--------------------------------------------------------------------------

三、MySQL關(guān)系數(shù)據(jù)庫對象:

   庫、表、索引、視圖、約束、存儲過程、存儲函數(shù)、觸發(fā)器、游標(biāo)、用戶、權(quán)限、事務(wù)。


   數(shù)據(jù)庫最基本的對象-->表:行(row),列(field,column)

   服務(wù)端命名:mysqld 

   Mysql常用命令不區(qū)分大小寫,但是需保持一致(都大寫或者都小寫):


 

3.1. DDL:定義數(shù)據(jù)對象  (Data Definition Language)
   3.1.1關(guān)鍵字:CREATE(創(chuàng)建)、ALTER(修改)、DROP(刪除)
 主要作用的范圍:數(shù)據(jù)庫,表,表的字段
    創(chuàng)建用戶:
             
CREATE USER 'USERNAME'@'HOST' IDENTIFIED BY 'PASSWORD';  #可以不指定密碼
               USERNAME:用戶名        HOST:主機(jī)   IDENTIFIED:指定密碼   BY‘密碼’
   刪除用戶:
               DROP USER 'USERNAME'@'HOST';  刪除用戶(需具體指定刪除那個(gè)用戶)
       
--------------------------------------------------------------------------
   為用戶設(shè)定密碼方法:(建議用1和3這兩種)
*1、mysql>SET PASSWORD FOR 'USERNAME'@'HOST'=PASSWORD('PASSWORD')
   eg. SET PASSWORD FOR 'root'@'localhost'=PASSWORD('123456')  
#設(shè)定root@localhost用戶名密碼為123456

2、直接在linux下輸入,不需要進(jìn)入mysql客戶端輸入(易導(dǎo)致修改同user不同host的密碼):
  # mysqladmin -uUSERNAME -hHOST -p password 'password'
  eg: [root@johntest ~]#mysqladmin -uroot -h20.109.13.9 -p password '123456'
 
*3、直接修改表中的內(nèi)容:
  mysql>UPDATE user SET password=PASSWORD('password') WHERE USER='root'  AND Host='10.109.13.9';
  #AND與關(guān)系(需同時(shí)滿足) OR或關(guān)系(兩者滿足一個(gè)即可) NOT非關(guān)系(取反)
--------------------------------------------------------------------------


3.1.2. HOST可以使用的格式:
       IP , HOSTNAME(主機(jī)名),NETWORK(網(wǎng)絡(luò)地址),通配符(需用'通配符'引號)
      通配符包含:
                  _:匹配任意單個(gè)字符,172.16.0._
                 %:匹配任意字符
                 
3.1.3. 新建數(shù)據(jù)庫:
       創(chuàng)建數(shù)據(jù)庫:CREATE DATABASE IF NOT EXISTS db_name;   同名數(shù)據(jù)庫不存在時(shí)創(chuàng)建
       創(chuàng)建表:  CREATE TABLE tb_name(col1,col2,...);    創(chuàng)建tb_name表  col表示字段
       查看庫中的表:SHOW TABLES FROM db_name     查看db_name數(shù)據(jù)庫中的表
       查看表的結(jié)構(gòu):DESC tb_name                 查看tb_name表的結(jié)構(gòu)      
       刪除表:DROP TABLE IF EXISTS tb_name    如果表存在刪除tb_name表    
       
3.1.4.修改表:ALTER TABLE tb_name
                  MODIFY:  修改某字段 (變更屬性,權(quán)限)
                 CHANGE:   改變某字段 (變更字段名稱)
                 ADD:      增加某字段
                 DROP :      刪除某字段
  eg: ALTER TABLE students ADD course VARCHAR(100);      #新增空間長度為100course字段

 
3.2. DML:數(shù)據(jù)操縱語言 (Data Manipulation Language)
   關(guān)鍵字:   INSERT (插入)、  DELETE (刪除)、 UPDATE (更新、修改)
  主要作用范圍:針對表中字段的值進(jìn)行操作
     插入數(shù)據(jù):  col表示字段
INSERT INTO tb_name (col1,col2,...) VALUES|VALUE ('STRING',NUM,...),   ('STRING',NUM,...);   

     更新、修改數(shù)據(jù): 
WHERE表示修改那個(gè)具體數(shù)據(jù),并不是把column整個(gè)這個(gè)字段的值修改為value.
 UPDATE tb_name SET column=value WHERE ..... ;   
 
   eg: UPDATE students SET Course='Jiuyinzhenjing' WHERE Name='LHC';                                      #表示修改表students中Name值為LHC的Course字段的值變?yōu)椤甁iuyinzhenjing’
                     
3.3. DCL:數(shù)據(jù)庫控制語言 (Data Control Language)
   關(guān)鍵字:  GRANT(允許、授權(quán))、REVOKE  (取消權(quán)限)
   ALL PRIVILEGES:  表示所有權(quán)限
 
3.3.1   GRANT:      給用戶授權(quán)
   eg: GRANT pri1,pri2,... ON DB_NAME.TB_NAME TO 'USERNAME'@'HOST' IDENTIFIED BY 'PASSWORD'  
   #在數(shù)據(jù)庫DB_NAME中的表TB_NAME中,用戶USERNAME@'HOST'授予pri1,pri2等權(quán)限也可以設(shè)定密碼IDENTIFIED BY 'PASSWORD',若此用戶不存在則直接新建該用戶并授權(quán)

 3.3.2  REVOKE :    取消用戶權(quán)限
   eg:REVOKE pri1,pri2,... ON DB_NAME.TB_NAME FROM 'USERNAME'@'HOST';
#在數(shù)據(jù)庫DB_NAME中的表TB_NAME中,取消用戶'USERNAME'@'HOST'的pri1,pri2等權(quán)限
      
   3.3.3  查看用戶的授權(quán): SHOW GRANTS FOR 'USERNAME'@'HOST';
   
  3.3.4  刷新用戶權(quán)限列表: FLUSH PRIVILEGES;


 3.4. DQL:數(shù)據(jù)庫查詢語言 ( Data Query Language )
關(guān)鍵字:SELECT  (挑選,選擇)
      SELECT 字段 FROM tb_name WHERE CONDITION;
      *:表示所有字段
      WHERE:沒有條件表示顯示所有行;
     eg: SELECT Name,Course FROM students WHERE Gender='M';
       #表示只選擇表students中的Gender字段值為M的Name和Course字段的信息

---end---


網(wǎng)頁名稱:Mysql數(shù)據(jù)庫理論基礎(chǔ)二
瀏覽路徑:http://weahome.cn/article/jjjpsc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部