五、使用MySQL數(shù)據(jù)庫(kù)

2018-02-24 16:10 更新

登錄到MySQL

當(dāng) MySQL 服務(wù)已經(jīng)運(yùn)行時(shí), 我們可以通過(guò)MySQL自帶的客戶端工具登錄到MySQL數(shù)據(jù)庫(kù)中, 首先打開(kāi)命令提示符, 輸入以下格式的命名:

mysql -h 主機(jī)名 -u 用戶名 -p
  • -h : 該命令用于指定客戶端所要登錄的MySQL主機(jī)名, 登錄當(dāng)前機(jī)器該參數(shù)可以省略;
  • -u : 所要登錄的用戶名;
  • -p : 告訴服務(wù)器將會(huì)使用一個(gè)密碼來(lái)登錄, 如果所要登錄的用戶名密碼為空, 可以忽略此選項(xiàng)。

以登錄剛剛安裝在本機(jī)的MySQL數(shù)據(jù)庫(kù)為例, 在命令行下輸入

mysql -u root -p 

按回車確認(rèn), 如果安裝正確且MySQL正在運(yùn)行, 會(huì)得到以下響應(yīng):

Enter password:

若密碼存在, 輸入密碼登錄, 不存在則直接按回車登錄, 按照本文中的安裝方法, 默認(rèn) root 賬號(hào)是無(wú)密碼的。登錄成功后你將會(huì)看到

Welecome to the MySQL monitor... 

的提示語(yǔ)。

然后命令提示符會(huì)一直以 mysql> 加一個(gè)閃爍的光標(biāo)等待命令的輸入, 輸入 exit 或 quit 退出登錄。

創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)

使用 create database 語(yǔ)句可完成對(duì)數(shù)據(jù)庫(kù)的創(chuàng)建, 創(chuàng)建命令的格式如下:

create database 數(shù)據(jù)庫(kù)名 [其他選項(xiàng)];

例如我們需要?jiǎng)?chuàng)建一個(gè)名為 samp_db 的數(shù)據(jù)庫(kù), 在命令行下執(zhí)行以下命令:

create database samp_db character set gbk;

為了便于在命令提示符下顯示中文, 在創(chuàng)建時(shí)通過(guò) character set gbk 將數(shù)據(jù)庫(kù)字符編碼指定為 gbk。創(chuàng)建成功時(shí)會(huì)得到 Query OK, 1 row affected(0.02 sec) 的響應(yīng)。

注意: MySQL語(yǔ)句以分號(hào)(;)作為語(yǔ)句的結(jié)束, 若在語(yǔ)句結(jié)尾不添加分號(hào)時(shí), 命令提示符會(huì)以 -> 提示你繼續(xù)輸入(有個(gè)別特例, 但加分號(hào)是一定不會(huì)錯(cuò)的);

提示: 可以使用 show databases; 命令查看已經(jīng)創(chuàng)建了哪些數(shù)據(jù)庫(kù)。

選擇所要操作的數(shù)據(jù)庫(kù)

要對(duì)一個(gè)數(shù)據(jù)庫(kù)進(jìn)行操作, 必須先選擇該數(shù)據(jù)庫(kù), 否則會(huì)提示錯(cuò)誤:

ERROR 1046(3D000): No database selected

兩種方式對(duì)數(shù)據(jù)庫(kù)進(jìn)行使用的選擇:

一: 在登錄數(shù)據(jù)庫(kù)時(shí)指定, 命令: mysql -D 所選擇的數(shù)據(jù)庫(kù)名 -h 主機(jī)名 -u 用戶名 -p

例如登錄時(shí)選擇剛剛創(chuàng)建的數(shù)據(jù)庫(kù):

mysql -D samp_db -u root -p

二: 在登錄后使用 use 語(yǔ)句指定, 命令: use 數(shù)據(jù)庫(kù)名;

use 語(yǔ)句可以不加分號(hào), 執(zhí)行

use samp_db 

來(lái)選擇剛剛創(chuàng)建的數(shù)據(jù)庫(kù), 選擇成功后會(huì)提示: Database changed

創(chuàng)建數(shù)據(jù)庫(kù)表

使用 create table 語(yǔ)句可完成對(duì)表的創(chuàng)建, create table 的常見(jiàn)形式:

create table 表名稱(列聲明);

以創(chuàng)建 students 表為例, 表中將存放 學(xué)號(hào)(id)、姓名(name)、性別(sex)、年齡(age)、聯(lián)系電話(tel) 這些內(nèi)容:

create table students
(
    id int unsigned not null auto_increment primary key,
    name char(8) not null,
    sex char(4) not null,
    age tinyint unsigned not null,
    tel char(13) null default "-"
);

對(duì)于一些較長(zhǎng)的語(yǔ)句在命令提示符下可能容易輸錯(cuò), 因此我們可以通過(guò)任何文本編輯器將語(yǔ)句輸入好后保存為 createtable.sql 的文件中, 通過(guò)命令提示符下的文件重定向執(zhí)行執(zhí)行該腳本。

打開(kāi)命令提示符, 輸入:

mysql -D samp_db -u root -p 

提示:
1.如果連接遠(yuǎn)程主機(jī)請(qǐng)加上 -h 指令;

  1. createtable.sql 文件若不在當(dāng)前工作目錄下需指定文件的完整路徑。

語(yǔ)句解說(shuō):

create table tablename(columns) 為創(chuàng)建數(shù)據(jù)庫(kù)表的命令, 列的名稱以及該列的數(shù)據(jù)類型將在括號(hào)內(nèi)完成;

括號(hào)內(nèi)聲明了5列內(nèi)容, id、name、sex、age、tel為每列的名稱, 后面跟的是數(shù)據(jù)類型描述, 列與列的描述之間用逗號(hào)(,)隔開(kāi);

以 "id int unsigned not null auto_increment primary key" 行進(jìn)行介紹:

  • "id" 為列的名稱;
  • "int" 指定該列的類型為 int(取值范圍為 -8388608到8388607), 在后面我們又用 "unsigned" 加以修飾, 表示該類型為無(wú)符號(hào)型, 此時(shí)該列的取值范圍為 0到16777215;
  • "not null" 說(shuō)明該列的值不能為空, 必須要填, 如果不指定該屬性, 默認(rèn)可為空;
  • "auto_increment" 需在整數(shù)列中使用, 其作用是在插入數(shù)據(jù)時(shí)若該列為 NULL, MySQL將自動(dòng)產(chǎn)生一個(gè)比現(xiàn)存值更大的唯一標(biāo)識(shí)符值。在每張表中僅能有一個(gè)這樣的值且所在列必須為索引列。
  • "primary key" 表示該列是表的主鍵, 本列的值必須唯一, MySQL將自動(dòng)索引該列。

下面的 char(8) 表示存儲(chǔ)的字符長(zhǎng)度為8, tinyint的取值范圍為 -127到128, default 屬性指定當(dāng)該列值為空時(shí)的默認(rèn)值。

更多的數(shù)據(jù)類型請(qǐng)參閱 《MySQL數(shù)據(jù)類型》 : http://www.cnblogs.com/zbseoag/archive/2013/03/19/2970004.html

提示:

  1. 使用 show tables; 命令可查看已創(chuàng)建了表的名稱;
  2. 使用 describe 表名; 命令可查看已創(chuàng)建的表的詳細(xì)信息。
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)