mysql基礎知識整理(一)

主要是為了時常拿出來看看,復習用

數(shù)據(jù)庫操作主要包括

1.創(chuàng)建數(shù)據(jù)庫 (CREATE DATABASE)

2.查看數(shù)據(jù)庫 (SHOW DATABASES)

3.修改數(shù)據(jù)庫 (ALTER DATABASE)

4.刪除數(shù)據(jù)庫 (DROP DATABASE)

一 創(chuàng)建數(shù)據(jù)庫?

1. CREATE DATABASE IF NOT EXISTS 數(shù)據(jù)庫名稱 DEFAULT CHARSET 默認編碼集 COLLATE 校對規(guī)則;

2、語法解釋:

IF NOT EXISTS:如果該數(shù)據(jù)庫不存在則創(chuàng)建,防止創(chuàng)建錯誤;

DEFAULT CHARSET:默認編碼集通常選擇utf8,其它編碼集不推薦,ThinkPHP也推薦默認為utf8編碼集;

COLLATE:校對規(guī)則就是默認的排序方式,這與默認編碼集相對應,如果設置了默認編碼集為utf8,這個選項可以省略,直接用默認值:utf8_general_ci。

3、實例:

任務:創(chuàng)建員工數(shù)據(jù)庫

CREATE DATABASE IF NOT EXISTS user ?DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

因為設置了默認編碼集,可以省略校對規(guī)則:COLLATE,語句可簡寫為:

CREATE DATABASE IF NOT EXISTS ?user DEFAULT CHARSET utf8;


二、查看數(shù)據(jù)庫


1、語法:

SHOW DATABASES;

2、語法解釋:

服務器上通常會有很多數(shù)據(jù)庫,因此,這里使用復數(shù)。

3、實例:

SHOW DATABASES;


三、修改數(shù)據(jù)庫

ALTER ?DATABASE ?數(shù)據(jù)庫名稱 ? 修改的項目

2、語法解釋:

數(shù)據(jù)庫創(chuàng)建成功后,可修改項主要是默認編碼集和校對規(guī)則,其它不必修改

如果原數(shù)據(jù)庫編碼集不是utf8,可用該語句修改成為utf8;

如果校對規(guī)則不是utf8-general-ci,也可用該語句進行修改。

3、實例:

任務: 將當前數(shù)據(jù)庫的默認字符編碼集改為utf8,校對規(guī)則修改為utf8-general-ci

3.1、修改編碼和核對規(guī)則:

ALTER DATABASE staff CHARACTER SET utf8 COLLATE utf8_general_ci;

3.2、查看字符編碼集

SHOW CHARACTER SET;

3.3、查看校對規(guī)則

SHOW COLLATION;

四、刪除數(shù)據(jù)庫

1. DROP DATABASE IF NOT EXISTS 數(shù)據(jù)庫名;

2、語法解釋:

刪除數(shù)據(jù)庫是一項非常危險的操作,一旦刪除無法恢復;

IF EXISTS:可以防止出現(xiàn)刪除不存在數(shù)據(jù)庫的錯誤提示;

數(shù)據(jù)庫刪除后,該庫中所有表,一并刪除不可恢復。

3、實例:

任務:刪除剛才創(chuàng)建的員工數(shù)據(jù)庫 user?

語句:DROP DATABASE IF NOT EXISTS ?user ;

數(shù)據(jù)庫表的操作:

?

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

1、基本語法:

CREATE TABLE IF NOT EXISTS 數(shù)據(jù)表名稱 (

字段名稱1? [AS 別名]? 字段類型? [約束條件] [DEFAULT 默認值] [COMMENT 字段注釋],

字段名稱2? [AS 別名]? 字段類型? [約束條件] [DEFAULT 默認值] [COMMENT 字段注釋],

字段名稱3? [AS 別名]? 字段類型? [約束條件] [DEFAULT 默認值] [COMMENT 字段注釋],

......

)ENGINE = 表存儲引擎? DEFAULT CHARSET = 默認編碼集? AUTO_INCREMENT = 自增主鍵起始值;

2.語法解釋:

字段名稱:不與MySQL關鍵字重名的任何有效標識符即可;

IF NOT EXISTS:意思是“如果不存在”再創(chuàng)建數(shù)據(jù)表,防止重復建表引起錯誤;

AS 別名:表中字段名均為英文單詞或縮寫,創(chuàng)建一個有意義的別名,使數(shù)據(jù)表查詢結果更加直觀、人性化;

字段類型:非常重要,本文后面有詳細介紹;

約束條件:主要是NULL(允許為空),NOT NULL(禁止為空)等,具體還要與字段類型相匹配;

DEFAULT 默認值:如某字段設置了默認值,則新增時未賦值則取默認值;

COMMENT 字段注釋:非必須,但可以使字段信息看上去再完整、直觀;

ENGINE = 表存儲引擎:

>* MyISAM:讀取快速、成熟穩(wěn)定、支持全文檢索、最常用,但不支持事務處理;

>* InnoDB:具備提交、回滾的事務處理,支持外鍵,戰(zhàn)用空間大,不支持全文檢索;

DEFAULT CHARSET 默認編碼集: 通常與數(shù)據(jù)庫采用的編碼集相同(utf8)即可;

AUTO_INCREMENT = 自增主鍵起始值:如果設置,將從該值開始自增,如設置為1001,則第一條記錄是1001,第二條是1002。如果不設置,主鍵將默認從1開始自增;

3.字段類型:

字段類型也叫列類型,主要有:數(shù)值、字符串、日期/時間三大類。

數(shù)值型:有無符號和有符號之分,直接書寫,不要加引號,長度僅影響顯示,不影響精度。

整型:又分為五類

INT : 標準整型,4字節(jié),取值范圍大約正負21億,足以應付正常開發(fā)需要;

SMALLINT:小整數(shù),2字節(jié),取值范圍大約正負3.2萬之間,無符號翻倍。

TINYINT:極小整數(shù),1字節(jié),取值-128~127,無符號:0~255。

其它:MEDIUMINT(3字節(jié)),BIGINT(8字節(jié)),不太常用。

浮點型:

FLOAT:最常用,用4字節(jié)或8字節(jié)表示,具體依平臺而定;

DOUBLE:雙精度8字節(jié);

DECIMAL:以字符串形式存儲的浮點數(shù),大小自定義,用于會計領域等。

字符串類型:

CHAR(長度): 固定寬度存儲字符串,忽略原始字符串長度;

VARCHAR(長度):可變長度字符串,根據(jù)原始字符串長度存儲;

TEXT:小型文本,不能設默認值和長度;

LONGTEXT:超大文本,同樣不可設默認值和長度;

ENUM(枚舉):在括號中集合數(shù)據(jù)中,只可以單選,無默認值;

SET(集合):集合最大64個成員,可以多選,無默認值。

日期/時間類型(不要設置長度):

DATE:3字節(jié),格式 YYYY-MM-DD,如 2016-10-20;

TIME:3字節(jié),格式 hh:mm:ss,如 12:25:35;

DATETIME:8字節(jié),格式 YYYY-MM-DD hh:mm:ss,如 2016-10-20 12:25:35;

TIMESTAMP:3字節(jié)時間戳,格式YYYYMMDDhhmmss共14位,可設置顯示長度進行截取操作,必須是偶數(shù)長度,常見6位,8位,12位;

YEAR:單字節(jié),格式 YYYY,顯示年份,如2016。


4、約束條件:

任務:創(chuàng)建員工信息表 user

user數(shù)據(jù)表結構如下:

| 序號 | 字段名 | 類型 | 寬度 | 約束 | 默認值|備注 |

| — | — | — | — | — | — |

| 1 | id | 整型 | 4位 | 無符號、不為空、自增、主鍵|無 | 編號 |

| 2 | name | 變長字符串 | 30位 | 不為空 | 無 |姓名 |

| 3 | sex | 整型 | 1位 | 不為空 | 1 |性別1男0女|

| 4 | salary |浮點型 | 共10位小數(shù)2位 |無符號、不為空 |2000 |工資|

| 5 | dept |變長字符串 | 20位 |不為空 | 開發(fā)部 |部門|

| 6 | hiredate |日期 | 默認 | 不為空 | 0000-00-00 |入職日期|

要求數(shù)據(jù)表存儲引擎為InnoDB,默認編碼:utf8,自增主鍵起始:1001。

創(chuàng)建數(shù)據(jù)表SQL語句:(實例)

CREATE TABLE IF NOT EXISTS ?user (

id INT(4) unsigned NOT NULL AUTO_INCREMENT COMMENT '編號',

name VARCHAR(30) NOT NULL? ? COMMENT '姓名',

sex TINYINT(2)? unsigned? NOT NULL? DEFAULT 1? COMMENT '性別1男0女',

salary FLOAT(10,2) NOT NULL DEFAULT 2000.00 COMMENT '工資',

dept VARCHAR(20)? NOT NULL? DEFAULT '開發(fā)部' COMMENT '部門' ,

hiredate DATE? NOT NULL? DEFAULT '0000-00-00' COMMENT '入職日期',

PRIMARY KEY (id)

)ENGINE =InnoDB ?DEFAULT CHARSET = utf8? AUTO_INCREMENT = 1001;

查看表結構:

語法:DESC 表名

總結:
數(shù)據(jù)表,是php開發(fā)中,數(shù)據(jù)庫操作的重要載體。而創(chuàng)建數(shù)據(jù)表,則是最重要的一環(huán)。一個結構良好、健壯的表結構是我們所有模型操作的基礎。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,544評論 19 139
  • .數(shù)據(jù)庫 數(shù)據(jù)庫的發(fā)展: 文件系統(tǒng)(使用磁盤文件來存儲數(shù)據(jù))=>第一代數(shù)據(jù)庫(出現(xiàn)了網狀模型,層次模型的數(shù)據(jù)庫)=...
    小Q逛逛閱讀 1,075評論 0 2
  • MySQL5.6從零開始學 第一章 初始mysql 1.1數(shù)據(jù)庫基礎 數(shù)據(jù)庫是由一批數(shù)據(jù)構成的有序的集合,這些數(shù)據(jù)...
    星期四晚八點閱讀 1,228評論 0 4
  • Unicode Unicode 是一種編碼,它將世界上所有的符號都納入其中。每一個符號都給予一個獨一無二的編碼。這...
    大富帥閱讀 1,880評論 0 2
  • 各位簡友,大家好,“你是多久沒有用文字表達自己了”,我文章寫的不好,沒有出色的文采和華麗的詞藻,但是我認為不應該因...
    簡書_蝸牛的夢想閱讀 221評論 0 1

友情鏈接更多精彩內容