MySQL基礎,快速入門

2021-08-13 10:26:07 字數 4994 閱讀 1134

mysql有三大類資料型別, 分別為數字、日期\時間、字串, 這三大類中又更細緻的劃分了許多子型別:

日期和時間: date、time、datetime、timestamp、year

字串型別

1、整型

mysql資料型別

含義(有符號)

tinyint(m)

1個位元組  範圍(-128~127)

smallint(m)

2個位元組  範圍(-32768~32767)

mediumint(m)

3個位元組  範圍(-8388608~8388607)

int(m)

4個位元組  範圍(-2147483648~2147483647)

bigint(m)

8個位元組  範圍(+-9.22*10的18次方)

取值範圍如果加了unsigned,則最大值翻倍,如tinyint unsigned的取值範圍為(0~256)。 

int(m)裡的m是表示select查詢結果集中的顯示寬度,並不影響實際的取值範圍,沒有影響到顯示的寬度,不知道這個m有什麼用。

2、浮點型(float和double)

mysql資料型別

含義float(m,d)

單精度浮點型    8位精度(4位元組)     m總個數,d小數字

double(m,d)

雙精度浮點型    16位精度(8位元組)    m總個數,d小數字

設乙個字段定義為float(5,3),如果插入乙個數123.45678,實際資料庫裡存的是123.457,但總個數還以實際為準,即6位。

3、字串(char,varchar,_text)

mysql資料型別

含義char(n)

固定長度,最多255個字元

varchar(n)

固定長度,最多65535個字元

tinytext

可變長度,最多255個字元

text

可變長度,最多65535個字元

mediumtext

可變長度,最多2的24次方-1個字元

longtext

可變長度,最多2的32次方-1個字元

char和varchar:

1.char(n) 若存入字元數小於n,則以空格補於其後,查詢之時再將空格去掉。所以char型別儲存的字串末尾不能有空格,varchar不限於此。 

2.char(n) 固定長度,char(4)不管是存入幾個字元,都將占用4個位元組,varchar是存入的實際字元數+1個位元組(n<=255)或2個位元組(n>255),所以varchar(4),存入3個字元將占用4個位元組。 

3.char型別的字串檢索速度要比varchar型別的快。

varchar和text: 

1.varchar可指定n,text不能指定,內部儲存varchar是存入的實際字元數+1個位元組(n<=255)或2個位元組(n>255),text是實際字元數+2個位元組。 

2.text型別不能有預設值。 

3.varchar可直接建立索引,text建立索引要指定前多少個字元。varchar查詢速度快於text,在都建立索引的情況下,text的索引似乎不起作用。

4.二進位制資料(_blob)

1._blob和_text儲存方式不同,_text以文字方式儲存,英文儲存區分大小寫,而_blob是以二進位制方式儲存,不分大小寫。 

2._blob儲存的資料只能整體讀出。 

3._text可以指定字符集,_blo不用指定字符集。

5.日期時間型別

mysql資料型別

含義date

日期 '2008-12-2'

time

時間 '12:25:36'

datetime

日期時間 '2008-12-2 22:06:44'

timestamp

自動儲存記錄修改時間

若定義乙個欄位為timestamp,這個欄位裡的時間資料會隨其他字段修改的時候自動重新整理,所以這個資料型別的字段可以存放這條記錄最後被修改的時間。

資料型別的屬性

mysql關鍵字

含義null

資料列可包含null值

not null

資料列不允許包含null值

default

預設值primary key

主鍵auto_increment

自動遞增,適用於整數型別 

unsigned

無符號character set name

指定乙個字符集

當 mysql 服務已經執行時, 我們可以通過mysql自帶的客戶端工具登入到mysql資料庫中, 首先開啟命令提示符, 輸入以下格式的命名:

mysql -h 主機名 -u 使用者名稱 -p

使用 create database 語句可完成對資料庫的建立, 建立命令的格式如下:

create database 資料庫名 [其他選項];

例如我們需要建立乙個名為 samp_db 的資料庫, 在命令列下執行以下命令:

create database samp_db character set gbk;

可以使用 show databases; 命令檢視已經建立了哪些資料庫。

選擇資料庫

一:在登入資料庫時指定, 命令: mysql -d 所選擇的資料庫名 -h 主機名 -u 使用者名稱 -p

例如登入時選擇剛剛建立的資料庫: mysql -d samp_db -u root -p

二:在登入後使用 use 語句指定, 命令: use 資料庫名;

使用 create table 語句可完成對錶的建立, create table 的常見形式:

create table 表名稱(列宣告);

以建立 students 表為例, 表中將存放 學號(id)、姓名(name)、性別(***)、年齡(age)、聯絡**(tel) 這些內容:

create table students

( id int unsigned not null auto_increment primary key,

name char(8) not null,

*** char(4) not null,

age tinyint unsigned not null,

tel char(13) null default "-"

);

create table tablename(columns) 為建立資料庫表的命令, 列的名稱以及該列的資料型別將在括號內完成;

insert 語句可以用來將一行或多行資料插到資料庫表中, 使用的一般形式如下:

insert [into] 表名 [(列名1, 列名2, 列名3, ...)] values (值1, 值2, 值3, ...);

其中 內的內容是可選的, 例如, 要給 samp_db 資料庫中的 students 表插入一條記錄, 執行語句:

insert into students values(null, "王剛", "男", 20, "13811371377");

按回車鍵確認後若提示 query ok, 1 row affected (0.05 sec) 表示資料插入成功。 若插入失敗請檢查是否已選擇需要操作的資料庫。

有時我們只需要插入部分資料, 或者不按照列的順序進行插入, 可以使用這樣的形式進行插入:

insert into students (name, ***, age) values("孫麗華", "女", 21);

select 語句常用來根據一定的查詢規則到資料庫中獲取資料, 其基本的用法為:

select 列名稱 from 表名稱 [查詢條件];

例如要查詢 students 表中所有學生的名字和年齡, 輸入語句 select name, age from students; 執行結果如下:

mysql> select name, age from students;

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

| name | age |

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

| 王剛 | 20 |

| 孫麗華 | 21 |

| 王永恆 | 23 |

| 鄭俊傑 | 19 |

| 陳芳 | 22 |

| 張偉朋 | 21 |

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

6 rows in set (0.00 sec)

mysql>

也可以使用萬用字元 * 查詢表中所有的內容, 語句: select * from students;

以查詢所有性別為女的資訊為例, 輸入查詢語句: select * from students where ***="女";

where 子句不僅僅支援 "where 列名 = 值" 這種名等於值的查詢形式, 對一般的比較運算的運算子都是支援的, 例如 =、>、<、>=、<、!= 以及一些擴充套件運算子 is [not] null、in、like 等等。 還可以對查詢條件使用 or 和 and 進行組合查詢, 以後還會學到更加高階的條件查詢方式, 這裡不再多做介紹。

update 語句可用來修改表中的資料, 基本的使用形式為:

update 表名稱 set 列名稱=新值 where 更新條件;

delete 語句用於刪除表中的資料, 基本用法為:

delete from 表名稱 where 刪除條件;

建立表後的操作

基本形式: alter table 表名 add 列名 列資料型別 [after 插入位置];

基本形式: alter table 表名 change 列名稱 列新名稱 新資料型別;

基本形式: alter table 表名 drop 列名稱;

基本形式: alter table 表名 rename 新錶名;

基本形式: drop table 表名;

基本形式: drop database 資料庫名;

MySQL快速入門

mysql是乙個關係型資料庫管理系統,由瑞典mysql ab公司開發,目前屬於oracle公司。mysql是一種關聯資料庫管理系統,關聯資料庫將資料儲存在不同的表中。mysql是開源的可以免費使用,並且支援大型的資料庫可以處理擁有上千萬條記錄。她採用了gpl協議,你可以修改原始碼來開發自己的mysq...

MySQL資料庫基礎快速入門

如果你還不會安裝mysql和連線mysql資料庫,你應該選擇上面部分內容學習之後,再看以下內容 1.登入資料庫 mysql uroot p 引數說明 u 在上面示例中 u引數後面緊跟的是 root 關鍵字,意思就是使用root賬號登入 p 此引數代表使用密碼登入,加上此引數之後,命令行會提示使用者輸...

LaTex快速基礎入門

首先我們要了解latex是什麼?latex是乙個高質量的排版系統 typeseting system 主要用於設計高質量專業的科學技術類文件 學習它的起因是因為他強大的書寫數學公式的能力,因為用jupyter notebook記錄學習麻省理工公開課 線性代數的時候,需要用到。jupyter note...