MySQL筆記(1)

來源:互聯網
上載者:User

標籤:file   jar   blog   nas   安裝mysql   tmg   ctc   aop   avd   

資料庫和 SQL 概念

  資料庫(Database)是按照資料結構來組織、儲存和管理資料的倉庫,它的產生距今已有六十多年。隨著資訊技術和市場的發展,資料庫變得無處不在:它在電子商務、銀行系統  等眾多領域都被廣泛使用,且成為其系統的重要組成部分。

  資料庫用於記錄資料,使用資料庫記錄資料可以表現出各種資料間的聯絡,也可以很方便地對所記錄的資料進行增、刪、改、查等操作。

  結構化查詢語言 (SQL)(Structured Query Language)簡稱 SQL,是上世紀 70 年代由 IBM 公司開發,用於對資料庫進行操作的語言。更詳細地說,SQL 是一種資料庫查詢和程式設計語  言,用於存取資料以及查詢、更新和管理關聯性資料庫系統,同時也是資料庫指令碼檔案的副檔名。

MySQL 介紹

  MySQL 是一個 DBMS(資料庫管理系統),由瑞典 MySQLAB 公司開發,目前屬於 Oracle 公司,MySQL 是最流行的關係型資料庫管理系統(關聯式資料庫,是建立在關聯式資料庫  模型基礎上的資料庫,藉助於集合代數等概念和方法來處理資料庫中的資料)。由於其體積 小、速度快、總體擁有成本低,尤其是開放源碼這一特點,一般中小型網站的開發人員都  選擇 MySQL 作為網站資料庫。MySQL 使用 SQL 語言進行操作。

 MySQL安裝

以下是在Linux下安裝Mysql的過程,在Windows下我用的是WampIntegration Environment

1 安裝之前的檢查

先要檢查Linux系統中是否已經安裝了MySQL,輸入命令嘗試開啟MySQL服務:

1 sudo service mysql start

輸入密碼後,如果出現以下提示,則說明系統中已經安裝有 MySQL:

如果提示是這樣的,則說明系統中沒有 MySQL,需要繼續安裝:

1 mysql: unrecognized service
2 Ubuntu Linux 安裝配置 MySQL

在Ubuntu上安裝MySQL,最簡單的方式是線上安裝。只需要幾行簡單的命令( # 號後面是注釋):

1 #安裝 MySQL 服務端、核心程式2 sudo apt-get install mysql-server3 4 #安裝 MySQL 用戶端5 sudo apt-get install mysql-client

在安裝過程中會提示確認輸入YES,設定 root 使用者密碼(之後也可以修改)等,稍等片刻便可安裝成功。

安裝結束後,用命令驗證是否安裝並啟動成功:

1 sudo netstat -tap | grep mysql

如果出現如下提示,則安裝成功:

此時,可以根據自己的需求,用 gedit 修改 MySQL 的設定檔(my.cnf),使用以下命令:

1 sudo gedit /etc/mysql/my.cnf
嘗試MySQL

1). 開啟MySQL

使用如下兩條命令,開啟MySQL服務並使用root使用者登入:

1 # 啟動 MySQL 服務2 sudo service mysql start             3 4 # 使用 root 使用者登入,實驗樓環境的密碼為空白,直接斷行符號就可以登入5 mysql -u root

執行成功會出現如下提示:

2). 查看資料庫

使用命令 show databases;,查看有哪些資料庫(注意不要漏掉分號 ;):

可見已有三個資料庫,分別是 “information-schema”、“mysql”、“performance-schema”。

3). 串連資料庫

選擇串連其中一個資料庫,語句格式為 use <資料庫名>,這裡可以不用加分號,這裡我們選擇 information_schema 資料庫:

1 use information_schema

4). 查看錶

使用命令 show tables; 查看資料庫中有哪些表(注意不要漏掉“;”):

5). 退出

使用命令 quit 、 exit 或者快速鍵(ctrl+c)退出 MySQL。

至此,MySQL 已經安裝、配置完成,可以正常使用了。

 

建立資料庫並插入資料以下內容有:建立資料庫,建立表,插入資料以及基礎資料型別 (Elementary Data Type)的相關知識。

在使用實驗樓 Linux 環境進行本次實驗之前,先用以下兩條命令開啟MySQL 服務並使用 root 登入:

1 建立資料庫

首先,建立一個資料庫,給它一個名字,比如  test

語句格式為 CREATE DATABASE <資料庫名字>;,(注意不要漏掉分號 ;),前面的 CREATE DATABASE 也可以使用小寫,具體命令為:

1 CREATE DATABASE test;

 

建立成功後輸入命令 show databases; (注意不要漏掉;)檢查一下:

在大多數系統中,SQL 陳述式都是不區分大小寫,因此以下語句都是合法的:

1 CREATE DATABASE name1;2 create database name2;3 CREATE database name3;4 create DAtabaSE name4;

但是出於嚴謹,而且便於區分保留字(保留字(reserved word):指在進階語言中已經定義過的字,使用者不能再將這些字作為變數名或過程名使用。)和變數名,

我們把保留字大寫,把變數和資料小寫。

2 串連資料庫

接下來的操作,就在剛才建立的 test 中進行,首先要串連資料庫,使用語句 use <資料庫名字>

1 use test

顯示,則串連成功:

輸入命令 show tables; 可以查看當前資料庫裡有幾張表,現在test 裡還是空的:

3 資料表

資料表(table)簡稱表,它是資料庫最重要的組成部分之一。資料庫只是一個架構,表才是實質內容。

而一個資料庫中一般會有多張表,這些各自獨立的表通過建立關係被聯結起來,才成為可以交叉查閱、一目瞭然的資料庫。如下便是一張表:

ID name phone
01 Tom 110110110
02 Jack 119119119
03 Rose 114114114
4 建立資料表

在資料庫中建立一張表的語句格式為:

1 CREATE TABLE 表的名字2 (3 列名a 資料類型(資料長度),4 列名b 資料類型(資料長度),5 列名c 資料類型(資料長度)6 );

test 中建立一張表  people,包含姓名,ID 和電話資訊,所以語句為:

1 CREATE TABLE people (id int(10),name char(20),phone int(12));

然後再建立一張表 department,包含名稱和電話資訊,想讓命令看起來更整潔,你可以這樣輸入命令:

這時候再 show tables; 一下,可以看到剛才添加的兩張表:

5 資料類型

在剛才建立表的過程中,用到了資料類型,MySQL 的資料類型和其他程式設計語言大同小異,下表是一些 MySQL 常用資料類型:

資料類型 大小(位元組) 用途 格式
INT 4 整數  
FLOAT 4 單精確度浮點數  
DOUBLE 8 雙精確度浮點數  
       
ENUM   單選,比如性別 ENUM(‘a‘,‘b‘,‘c‘)
SET   多選 SET(‘1‘,‘2‘,‘3‘)
       
DATE 3 日期 YYYY-MM-DD
TIME 3 時間點或期間 HH:MM:SS
YEAR 1 年份值 YYYY
       
CHAR 0~255 定長字串  
VARCHAR 0~255 變長字串  
TEXT 0~65535 長文本資料  

整數除了 INT 外,還有 TINYINT、SMALLINT、MEDIUMINT、BIGINT。

CHAR 和 VARCHAR 的區別: CHAR 的長度是固定的,而 VARCHAR 的長度是可以變化的,比如,儲存字串 “abc",對於 CHAR(10),表示儲存的字元將佔 10 個位元組(包括 7 個Null 字元),而同樣的 VARCHAR(12) 則只佔用4個位元組的長度,增加一個額外位元組來儲存字串本身的長度,12 只是最大值,當你儲存的字元小於 12 時,按實際長度儲存。

ENUM和SET的區別: ENUM 類型的資料的值,必須是定義時枚舉的值的其中之一,即單選,而 SET 類型的值則可以多選。

6 插入資料

剛才我們建立了兩張表,使用語句 SELECT * FROM people; 查看錶中的內容,可以看到people 表中現在還是空的:

通過 INSERT 語句向表中插入資料,語句格式為:

1 INSERT INTO 表的名字(列名a,列名b,列名c) VALUES(值1,值2,值3);

向 people 中加入 Tom、Jack 和 Rose:

1 INSERT INTO people(id,name,phone) VALUES(01,‘Tom‘,110110110);2 3 INSERT INTO people VALUES(02,‘Jack‘,119119119);4 5 INSERT INTO people(id,name) VALUES(03,‘Rose‘);

有的資料需要用單引號括起來,比如 Tom、Jack、Rose 的名字,這是由於它們的資料類型是 CHAR 型。

此外 VARCHAR,TEXT,DATE,TIME,ENUM 等類型的資料也需要單引號修飾,而 INT,FLOAT,DOUBLE 等則不需要。

第一條語句比第二條語句多了一部分:(id,name,phone) 這個括弧裡列出的,是將要添加的資料 (01,‘Tom‘,110110110) 其中每個值在表中對應的列。而第三條語句只添加了 (id,name) 兩列的資料,所以在表中Rose的phone為NULL

現在我們再次使用語句 SELECT * FROM employee; 查看 employee 表,可見 Tom 和 Jack 的相關資料已經儲存在其中了:

MySQL筆記(1)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.