婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > MySQL 設計和命令行模式下建立詳解

MySQL 設計和命令行模式下建立詳解

熱門標簽:沈陽智能外呼系統供應商 清遠申請400電話 地圖簡圖標注 谷歌地圖標注位置圖解 東莞外呼企業管理系統 桂林云電銷機器人收費 南通電銷外呼系統哪家強 手機外呼系統違法嗎 如何選擇優質的外呼系統

MySQL 設計和命令行模式下建立詳解

系列文章:

MySQL 設計和命令行模式下建立詳解

C++利用MySQL API連接和操作數據庫實例詳解

1.數據表的設計

MySQL數據庫管理系統(DBMS)中,包含的MySQL中定義數據字段的類型對你數據庫的優化是非常重要的。MySQL支持多種類型,大致可以分為三類:數值、日期/時間和字符串(字符)類型。

下面以大學熟悉的學生選課管理系統中用到的數據庫為例,來設計相應的數據表。主要有三張表:學生表,課程表和選課表。

學生表設計:

字段(Field) 類型(Type) 可空(Null) 鍵(Key) 默認值(Default) 其他(Extra)
學號(studentNo) VARCHAR(12) N PRI NULL
姓名(name) VARCHAR(12) N N NULL
學院(school) VARCHAR(12) N N NULL
年級(grade) VARCHAR(12) N N NULL
專業(major) VARCHAR(12) N N NULL
性別(gender) Boolean N N NULL

課程表設計:

字段(Field) 類型(Type) 可空(Null) 鍵(Key) 默認值(Default) 其他(Extra)
課程號(courseNo) VARCHAR(10) N PRI NULL
課程名(courseName) VARCHAR(10) N N NULL
課時(hour) TINYINT Unsigned N N NULL
課程學分(credit) TINYINT Unsigned N N 2

選課表設計:

字段(Field) 類型(Type) 可空(Null) 鍵(Key) 默認值(Default) 其他(Extra)
編號(id) INT Unsigned N PRI NULL auto_increment
學號(studentNo) VARCHAR(12) N MUL NULL
課程號(courseNo) VARCHAR(10) N MUL NULL
選課時間(time) TIMESTAMP N N CURRENT_TIMESTAMP

對于上面三張數據表的設計,你會發現:

(1)MySQL在為數據定義字符串(字符)類型時,需要在類型名稱的后面的小括號內指明最長字符數,即TypeName(M),這里的M指的是字符數,而不是數據占用的字節數。例如varchar(12),則表述存儲的字符數不能超過12 ,超過12則截斷,小于12個字符則以實際占用的存儲空間來存儲,這樣就節省了存儲空間。

(2)在對選課表的設計時,我們添加外鍵約束,可以使得兩張表關聯,保證數據的一致性和實現一些級聯操作。

(3)MySQL中有三種Key和一個Index: Primary Key(主鍵), Unique Key(唯一鍵),Foreign Key(外鍵)和 Index(索引)。

四者的區別如下:

定義:

主鍵(Primary Key):唯一標識一條記錄,不能有重復,不允許為空。
外鍵(Foreign Key):表的外鍵是另一表的主鍵, 外鍵可以有重復, 可以是空值。
唯一鍵( Unique Key):唯一標識一條記錄,不能有重復,可以為空。
索引(Index):該字段可以有重復值記錄,可以有空值,如果是唯一索引,那么就不可以有重復的記錄,可以有空值。

作用:

主鍵:用來保證數據完整性。
外鍵:用來和其他表建立聯系,以保證數據的一致性和級聯操作。
唯一鍵:用來用防止數據插入的時候重復。
索引:是提高查詢排序的速度。

個數:

主鍵:一個表只能有一個列是主鍵。
外鍵:一個表可以有多個列是外鍵。
唯一鍵:一個表可以有多個列是唯一鍵。
索引:一個表可以有多個列是索引。

從中可以看出,索引和唯一鍵很相似,二者的區別在于作用不同,索引用于提高查詢速度,唯一鍵用于唯一約束。當然如果建立的索引是唯一索引的話,也可以起到唯一約束的作用。在MySQL具體實現上,索引需要建立數據結構,需要額外的磁盤空間來存儲索引,而鍵(主鍵,外鍵和唯一鍵)都是邏輯層面的實現和約束,二者還是有著本質的區別。

還有就是MySQL的索引包括:普通索引(Index)、唯一索引(UNIQUE INDEX)、全文索引(FULLTEXT INDEX)、組合索引。這里就不要把唯一鍵和唯一索引弄混淆了!也不要把索引和其它的三種鍵弄混淆了。

還有一點需要注意的是,雖然鍵(key)和索引(index)有著本質的區別,但是當我們在建立主鍵或者唯一鍵的時候,也就建立了索引,MySQL和Oracle都是這么做的,要是不明白這一點,很容易把索引和主鍵和唯一鍵弄混淆。

唯一鍵可以起到唯一約束的作用,當然主鍵也可以起到唯一約束的作用。當然我們可以不建立唯一鍵和主鍵,直接為指定的數據表的列添加唯一約束。唯一約束保證指定列的值不能重復。

所以,關于上面的概念,大家不要咬文嚼字,而是根據功能去理解每一種KEY的作用,在什么場合需要去使用它。

比如需要主鍵約束的時候,我們就可以對某一列建立主鍵;

需要對某一列或者多個列進行唯一約束的時候,我們就建立唯一鍵或者唯一約束;
需要加快查詢速度的時候,我們就建立相應類型的索引。

關于四者的理解,上未參考到權威的資料,請讀者保持懷疑的態度接受。

2.數據庫的建立

在安裝完mysql之后,我們要建立自己的數據庫。下面將詳細地一步一步演示如何創建上面設計好的數據庫。
在MySQL模式下,使用status命令可以查看MySQL版本,本人使用的MySQL版本:5.6.30 MySQL Community Server (GPL)。

關于mysql大小寫問題,mysql命令是不區分大小寫的。數據表的表名在windows下不分,linux下分。數據表的字段名在windows和linux下都不分。

(1)登錄mysql DBMS

Linux命令行中輸入如下命令:

mysql -hlocalhost -uroot -p123456

說明:依次指明登錄mysql的主機地址,用戶和用戶密碼。

(2)使用show查看當前mysql服務器上存在什么數據庫

show databases;

說明:在進入mysql模式下,使用mysql命令時,每條語句要以分號結束。但是use [DatabaseName]卻不用,可能是mysql的一個小bug。類似于quit和exit退出mysql的命令,不需要一個分號。(如果你喜歡,你可以用一個分號終止這樣的語句)。

(3)創建數據庫

mysql> CREATE DATABASE StudentCourse;

(4)使用use語句訪問數據庫

mysql>use StudentCourse;

(5)創建數據表student

mysql> create table student(
 studentNo varchar(12) not null,
 name varchar(12) not null,
 school varchar(12) not null,
 grade varchar(12) not null,
 major varchar(12) not null,
 gender boolean not null,
 primary key(studentNo)
)engine=MyISAM default charset=utf8;

觀察上面的建表語句,需注意以下幾點:

(a)其中,布爾類型boolean在MySQL是以類型tinyint(1)來實現,這里的1指代的是數據顯示時最短長度。
實際上tinyint(1)是可以插入-128到127之間的其它數值。因為mysql數據庫中以 :數據類型(m)來定義數據類型,其中 數字m在不同的數據類型中表示含義是不同的。 整型數系統已經限制了取值范圍,tinyint占一個字節、int占4個字節。所以整型數后面的m不是表示的數據長度,而是表示數據在顯示時顯示的最小長度(長度為字符數)。

tinyint(1) 這里的1表示的是最短顯示一個字符。tinyint(2) 這里的2表示的是最短顯示兩個字符,但這里光設置m是沒有意義的,你還需要指定當數據少于長度m時用什么來填充,比如zerofill(表示有0填充)。設置tinyint(2) zerofill你插入1時他會顯示01。設置tinyint(4) zerofill你插1時他會顯示0001。

(b)還要注意一點是,使用engine可指明引擎,如果省略了engine語句,則使用默認的引擎(MYISAM)。MYSQL支持三個引擎:ISAM、MYISAM和HEAP。另外兩種類型INNODB和BERKLEY(BDB),也常常可以使用。

(c)設置default charset指明mysql數據表的編碼方式,不顯示指定編碼方式的話,數據表的默認編碼方式一般是latin1。也可以通過如下命令查看數據表的編碼方式:

show create table student;

如果需要轉換數據表的編碼格式,使用如下命令:

alter table student convert to character set utf8;

如果想查看當前數據庫的編碼格式:

mysql>status;
#或者
show variables like 'character%' ;

為了驗證所建立的數據表是否是按照期望的方式創建的,使用如下命令:

#查看表中的列
SHOW COLUMNS FROM student;
#或者直接使用describe
describe student;

(6)創建數據表course

mysql> create table course(
 studentNo varchar(12) not null primary key,
 courseNo varchar(10) not null,
 hour tinyint unsigned not null,
 credit tinyint unsigned not null default 2 
)engine=MYISAM default charset=utf8;

同樣可以使用describe查看表信息:

(7)創建數據表courseSelection

mysql> create table courseSelection(
 id int unsigned not null auto_increment primary key,
 studentNo varchar(12) not null,
 courseNo varchar(10) not null,
 time timestamp not null default CURRENT_TIMESTAMP,
 FOREIGN KEY(studentNo) REFERENCES student(ISBN) ON UPDATE CASCADE ON DELETE CASCADE,
 FOREIGN KEY(courseNo) REFERENCES course(courseNo) ON UPDATE CASCADE ON DELETE CASCADE
)engine=MYISAM default charset=utf8 AUTO_INCREMENT=0;

查看表信息:

(8)其它關于數據庫和數據表的操作命令

刪除數據庫:

mysql> DROP DATABASE 庫名;

刪除數據表:

mysql> DROP TABLE 表名;

將表中記錄清空:

mysql> DELETE FROM 表名;

參考文獻:

[1]http://www.runoob.com/mysql/mysql-data-types.html
[2]Mysql 查看、創建、更改 數據庫和表
[3]php里tinyint(1)為什么還能插入99這個值?搜索
[4]MySQL引擎
[5]MySQL中的四種Key
[6]SQL的主鍵和外鍵約束
[7]唯一索引和唯一約束有什么區別

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

您可能感興趣的文章:
  • PHP+MySQL投票系統的設計和實現分享
  • PHP+Mysql樹型結構(無限分類)數據庫設計的2種方式實例
  • MYSQL 數據庫命名與設計規范
  • mysql 數據庫設計
  • MySQL分表實現上百萬上千萬記錄分布存儲的批量查詢設計模式詳解
  • MySQL 數據庫設計復習筆記及項目實戰
  • 基于PHP+MySQL的聊天室設計
  • MySQL和MongoDB設計實例對比分析
  • 如何設計高效合理的MySQL查詢語句

標簽:貴州 臨沂 內蒙古 成都 湖州 天津 重慶 常德

巨人網絡通訊聲明:本文標題《MySQL 設計和命令行模式下建立詳解》,本文關鍵詞  MySQL,設計,和,命令行,模式,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《MySQL 設計和命令行模式下建立詳解》相關的同類信息!
  • 本頁收集關于MySQL 設計和命令行模式下建立詳解的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    99re视频精品| 精品捆绑美女sm三区| 精品国产sm最大网站免费看| 国产精品美女一区二区三区 | 欧美色手机在线观看| 久久女同精品一区二区| 亚洲永久免费av| 国产一区二区在线观看免费| 色就色 综合激情| 久久婷婷国产综合精品青草| 亚洲午夜久久久| 成人av动漫网站| 久久久噜噜噜久久人人看| 亚洲第一福利视频在线| 99久久精品国产精品久久| 国产亚洲女人久久久久毛片| 日日夜夜一区二区| 欧美日韩一区二区三区四区| 亚洲色图欧洲色图婷婷| 懂色一区二区三区免费观看| 日韩视频永久免费| 日韩电影在线免费看| 欧美丝袜丝交足nylons图片| 亚洲少妇屁股交4| 国产91在线|亚洲| 国产偷国产偷精品高清尤物| 久久精品免费观看| 欧美一级一区二区| 麻豆精品国产91久久久久久| 欧美嫩在线观看| 亚欧色一区w666天堂| 欧美色区777第一页| 亚洲愉拍自拍另类高清精品| 在线视频你懂得一区| 亚洲欧美日韩电影| 色999日韩国产欧美一区二区| 国产精品欧美一级免费| 成人国产精品免费观看视频| 国产女主播一区| 成人午夜免费视频| 亚洲精品免费看| 欧美私人免费视频| 美女视频黄a大片欧美| 日韩欧美中文字幕精品| 国产精一品亚洲二区在线视频| 日韩免费性生活视频播放| 麻豆传媒一区二区三区| 精品欧美一区二区久久| 国产福利视频一区二区三区| 国产精品天干天干在线综合| 91在线观看污| 亚洲成人免费观看| 日韩一区二区影院| 国产精品一区久久久久| 国产精品理论片| 欧美午夜电影一区| 狠狠色狠狠色合久久伊人| 中文字幕欧美区| 在线免费精品视频| 男男视频亚洲欧美| 国产精品护士白丝一区av| 欧美午夜免费电影| 国产在线精品一区二区夜色| 国产精品婷婷午夜在线观看| 欧美午夜视频网站| 国产精选一区二区三区| 夜夜嗨av一区二区三区| 日韩精品一区二区三区蜜臀| heyzo一本久久综合| 视频在线观看国产精品| 久久久.com| 欧美日韩综合一区| 国产河南妇女毛片精品久久久| 亚洲免费观看视频| 精品理论电影在线观看| 一本色道久久加勒比精品| 美女高潮久久久| 亚洲精品欧美综合四区| 久久久久国产精品免费免费搜索| 在线精品观看国产| 国产精品小仙女| 午夜精品免费在线观看| 国产精品区一区二区三区| 日韩一区二区三区观看| 欧美色图免费看| 97精品超碰一区二区三区| 久久99久久精品| 亚洲成年人影院| 亚洲日本成人在线观看| 久久综合久色欧美综合狠狠| 欧美精选午夜久久久乱码6080| 色综合婷婷久久| 国产成人99久久亚洲综合精品| 日本伊人色综合网| 亚洲福利视频一区二区| 亚洲日本在线视频观看| 国产亚洲一区二区三区四区| 日韩美一区二区三区| 欧美喷水一区二区| 欧美日韩久久一区| 欧美日韩国产小视频| 91丨九色porny丨蝌蚪| 国产91色综合久久免费分享| 久久91精品久久久久久秒播| 日本强好片久久久久久aaa| 亚洲国产一区二区三区| 亚洲成人动漫精品| 亚洲国产cao| 首页国产欧美日韩丝袜| 亚洲国产精品精华液网站| 国产精品国模大尺度视频| 国产精品素人一区二区| 国产精品私人影院| 国产精品二三区| 综合在线观看色| 亚洲三级免费电影| 亚洲黄一区二区三区| 亚洲一卡二卡三卡四卡五卡| 亚洲成人tv网| 久久99久国产精品黄毛片色诱| 久久99国产精品麻豆| 国产精品一色哟哟哟| 成人性生交大片免费看在线播放 | 亚洲欧洲性图库| 国产精品福利在线播放| 一区二区国产盗摄色噜噜| 一区二区三区美女| 五月激情丁香一区二区三区| 美女网站色91| 成人网在线播放| 在线观看国产日韩| 欧美一区二区三区四区视频| 精品国产sm最大网站免费看| 欧美高清一级片在线观看| 亚洲精品免费电影| 免费观看91视频大全| 国产精品一级片| 97久久精品人人做人人爽50路| 欧美日韩在线观看一区二区| 日韩一卡二卡三卡四卡| 欧美国产亚洲另类动漫| 亚洲欧美日韩中文播放 | 一区二区高清免费观看影视大全| 一区二区三区在线播| 精品一区精品二区高清| 豆国产96在线|亚洲| 精品视频在线看| 久久精品欧美日韩精品| 亚洲综合在线视频| 久久99精品国产麻豆婷婷| jlzzjlzz亚洲日本少妇| 日韩欧美在线影院| 亚洲精品乱码久久久久| 狠狠色丁香久久婷婷综合丁香| 色综合 综合色| 久久久久9999亚洲精品| 亚洲一区二区三区小说| 国产电影精品久久禁18| 69堂成人精品免费视频| 中文字幕永久在线不卡| 蜜桃视频免费观看一区| 91免费版在线| 久久精品人人做人人综合 | 亚洲国产精品久久一线不卡| 国产一区二区三区电影在线观看| 在线观看国产精品网站| 欧美国产日韩在线观看| 免费在线观看成人| 欧美色视频在线| 亚洲欧美综合色| 国产成人在线视频免费播放| 3atv在线一区二区三区| 亚洲色图一区二区三区| 国产高清不卡二三区| 日韩欧美国产午夜精品| 首页国产欧美久久| 欧美日韩精品一区二区天天拍小说| 国产精品丝袜一区| 福利视频网站一区二区三区| 精品免费日韩av| 蜜臀久久99精品久久久久宅男| 在线亚洲免费视频| 亚洲欧美日韩中文字幕一区二区三区| 国产精品一区二区三区99| 精品久久久久久无| 美女国产一区二区| 欧美久久久久中文字幕| 亚洲aaa精品| 777奇米四色成人影色区| 午夜精品福利一区二区三区av | 亚洲www啪成人一区二区麻豆| 日本精品视频一区二区| 亚洲欧洲成人av每日更新| 成人午夜av在线| 亚洲欧洲日韩一区二区三区| 99精品视频在线观看免费| 综合久久综合久久| 91福利在线观看| 亚洲地区一二三色| 日韩精品在线看片z|