這個周末最完成了一項很重要的任務(wù):MySQL操作實戰(zhàn)。周內(nèi)只是在Windows系統(tǒng)下載好了數(shù)據(jù)庫,但是光看了關(guān)于一些基礎(chǔ)教程,連界面都不知道是怎樣的。
昨天在男友的一同學(xué)習(xí)下,選擇在Linux系統(tǒng)的終端進(jìn)行操作,其中他也給我講解了關(guān)于操作系統(tǒng)、硬盤與內(nèi)存等計算機(jī)相關(guān)知識,也算是讓我加深了理解??粗K端的界面,我是有點排斥的,畢竟平日看的都是整齊好看的UI界面,現(xiàn)在看著黑底白字、一行又一行的代碼著實有點頭暈呀。
基礎(chǔ)教程
首先要先登錄用戶:mysqlL -u root -p;不用輸入密碼,直接回車進(jìn)入mysql;

先看一下mysql內(nèi)部現(xiàn)有的數(shù)據(jù)庫有哪些:show databases;

然后創(chuàng)建一個新的數(shù)據(jù)庫:create database database_name;
查看一下是否新建成功:show databases;
接下來使用這個數(shù)據(jù)庫:use database_name;

查看選擇的數(shù)據(jù)庫中存在哪些表:show tables;

創(chuàng)建新表:create table table_name(列名稱1 數(shù)據(jù)類型,列名稱2 數(shù)據(jù)類型,……);

查看表是否創(chuàng)建成功:show tables;

查看表的所有列及數(shù)據(jù)類型相關(guān)信息:describe table_name;

添加新數(shù)據(jù):insert into table_name values(值1,值2……);
選取全部數(shù)據(jù):select * from table_name;
設(shè)置主鍵約束:create table table_name(列名稱1 數(shù)據(jù)類型 primary key,列名稱2 數(shù)據(jù)類型,……);列1的內(nèi)容不能為空且不能重復(fù);

設(shè)置聯(lián)合主鍵約束:create table table_name(列名稱1 數(shù)據(jù)類型 primary key auto_increment,列名稱2 數(shù)據(jù)類型,……);(列1?列2)的內(nèi)容不能重復(fù);
如果創(chuàng)建表時忘記主鍵約束怎么辦:alter table table_name add primary key(字段名);

刪除主鍵:alter table table_name drop primary key;

(不常用)使用modify修改字段,添加約束:alter table table_name modify 字段名 字段類型 primary key;

唯一約束unique:創(chuàng)建表時直接添加

或者直接添加在字段后:
或者alter table table_name add unique(字段名);

非空約束:create table table_name(字段名 字段類型 not null);
默認(rèn)約束:就是當(dāng)我們插入字段值的時候,如果沒有傳值就會使用默認(rèn)值。
外鍵約束:涉及到兩個表,父表子表,主表副表。
數(shù)據(jù)表設(shè)計的第一范式1NF:數(shù)據(jù)表中的所有字段都應(yīng)是不可分割的原子值。
數(shù)據(jù)表設(shè)計的第二范式2NF:必須在滿足第一范式的前提下,要求除主鍵外的每一列都必須完全依賴于主鍵,如果要出現(xiàn)不完全依賴,只可能發(fā)生在聯(lián)合主鍵的情況下。
數(shù)據(jù)表設(shè)計的第二范式3NF:必須先滿足第二范式,除開主鍵列的其他列之間不能有傳遞依賴關(guān)系。