1. 程式人生 > >【Mysql】Headfirst系列第四章:表的關係及ALTER/CHANGE/RENAME TO

【Mysql】Headfirst系列第四章:表的關係及ALTER/CHANGE/RENAME TO

  1. RDMBS Relational Database  Management  System

只關心一個詞語‘關係’

設計表的時候,考慮彼此列之間如何產生關係,如何一起描述某項事物。

  1. 原子性 atom 資料已經被分割至最小塊,不能或者不應該再被分割
  2. 幾個問題:
    1. 你的表在描述什麼事物?
    2. 以何種方式使用表取得描述的事物?
    3. 列是否包含原子性資料,可讓查詢既簡短又直逼要害?
  1. 主鍵

可獨一無二地識別出每條記錄

  1. 主鍵不可以為null
  2. 插入新紀錄時必須指定主鍵值
  3. 主鍵必須簡潔
  4. 主鍵不可以被修改
  5. 一個例子

CREATE TABLE my_contacts

{

contact_id INT NOTNULL,//主鍵非空

last_name varchar(30) default NULL,

first_name varchar(30) default NULL,

email varchar(50) default NULL,

gender char(1) default NULL,

birthday date default NULL,

profession varchar(50) default NULL,

location varchar(50) default NULL,

status varchar(50) default NULL,

interests varchar(100) default NULL,

seeking varchar(100) default NULL,

PRIMARY KEY (contact_id)

}//新增主鍵的語法:PRIMARY KEY 括號內為主鍵列的列名

  1. SHOW 命令
    1. 看列名 SHOW colomns FROM table_name;
    2. 看警告資訊 SHOW WARNING
  2. 主鍵ID自動遞增

CREATE TABLE my_contacts

{

contact_id INT NOT NULL AUTO_INCREMENT,//主鍵非空

last_name varchar(30) default NULL,

first_name varchar(30) default NULL,

email varchar(50) default NULL,

gender char(1) default NULL,

birthday date default NULL,

profession varchar(50) default NULL,

location varchar(50) default NULL,

status varchar(50) default NULL,

interests varchar(100) default NULL,

seeking varchar(100) default NULL,

PRIMARY KEY (contact_id)

}//新增主鍵的語法:PRIMARY KEY 括號內為主鍵列的列名

  1. ALTER指令 對錶進行修改 但不捨棄資料

關鍵字: ALTER TABLE

ALTER TABLE my_contacts ADD COLUMN eyes_color;

利用關鍵字 AFTER 可以指明新加入的列放在哪個列的後面

相關的關鍵字還有 BEFORE/SECOND/FIFTH

如果加入多個列,ADD COLUMNS

如果加入主鍵 ADD PRIMARY KEY(column_name)

  1. 表的改名換姓

RENAME  關鍵字

ALTER TABLE table_name

RENAME TO table_name1;

  1. Change 指令

Change column 不僅可以改名字還可以同時修改列的型別

配合ALTER指令

ALTER TABLE mycontacts

CHANGE COLUMN eyes_color hair_color varchar(32);

BUT 如果你要把資料改為其他型別,可能會出現資料截斷的情況

  1. 如果只想改變列的資料型別而不改變名稱的話 改變位置

用modify這個關鍵字

ALTER TABLE table_name

MODIFY COLOUMN column_name type;

MODIFY COLUMN color AFTER make;

建立表之後還能通過關鍵字改變列的順序嗎?不可以

只能在新增新列時指定特定位置。

  1. 過多的列會使表變得臃腫,查詢序列也會變低

通過drop卸掉用不著的列

ALTER TABLE project_list

DROP COLUMN start-end;

9/6 今日的練習

alter table hooptie

add column car_id int not null AUTO_INCREMENT first,

add primary key (car_id);

修改列名,用change column old_name new_name new_type ;


相關推薦

MysqlHeadfirst系列關係ALTER/CHANGE/RENAME TO

RDMBS Relational Database  Management  System只關心一個詞語‘關係’ 設計表的時候,考慮彼此列之間如何產生關係,如何一起描述某項事物。 原子性 atom 資料已經被分割至最小塊,不能或者不應該再被分割幾個問題: 你的表在描述什麼

卜若的程式碼筆記-python系列-Function

#1.不帶引數不返回 def outMyName():     print('我是doge'); #2.不帶引數返回 def outMyNameAndReturen():     print('我不是doge');     return '真的假的??'; #3.

SpringCloud Greenwich版本服務消費者(ribbon)

一、SpringCloud版本 本文介紹的Springboot版本為2.1.1.RELEASE,SpringCloud版本為Greenwich.RC1,JDK版本為1.8,整合環境為IntelliJ IDEA 二、Ribbon介紹 Ribbon是一個客戶端負載均衡器,它可以很好地

[作業系列]實踐報告

級別 () 時間復雜度 nlog [1] pan 最小 假設 哈夫曼樹 實踐題目 7-1 最優合並問題 問題描述 題目來源:王曉東《算法設計與分析》 給定k 個排好序的序列, 用 2 路合並算法將這k 個序列合並成一個序列。 假設所采用的 2 路合並算法合並 2 個長度分

轉載SpringCloud教程 | 篇:斷路器(Hystrix)

在微服務架構中,根據業務來拆分成一個個的服務,服務與服務之間可以相互呼叫(RPC),在Spring Cloud可以用RestTemplate+Ribbon和Feign來呼叫。為了保證其高可用,單個服務通常會叢集部署。由於網路原因或者自身的原因,服務並不

學習筆記演算法導論2演算法基礎

//====================================== //Ch2_1_Basic_Sort_Algorthm //====================================== #include<iostream> #

卜若的程式碼筆記系列-mysql系列-通過cmd登入mysql,可實現遠端登入,以及退出,切換賬號

1.通過cmd進入到各個硬碟 舉個例子:比如我現在要進入到c盤 直接: C:\Users\Skady_cat>cd/ 或者: C:\Users\Skady_cat>d: 然後cd到mysql的根目錄,如果預設安裝的話應該是這個目錄 C:\Progra

PMPPMBOK 筆記 1 引論

第1章 引論 總結 本章是對整本書的知識體系的前提。 重點在於理解專案組合、專案集和專案之間的關係,以及對應管理的區別。 第一章提到了5個過程組,但是沒有深入。 重點不多,在於理解。 1.1 目的 專案管理體系,能夠提高很多專案成功的可能性。 1

PMPPMBOK 筆記 6 專案時間管理

第6章 專案時間管理 進度模型 -> 《進度計劃實踐標準》 通過把填有專案資料的進度規劃工具看做進度模型,可以把專案進度的呈現形式(進度計劃)與產生專案進度計劃(見 6.6.3.2 節)的進度資料(見 6.6.3.3 節)和計算工具區分開來。 進度規

PMPPMBOK 筆記 7 專案成本管理

第7章 專案成本管理 專案成本管理包含為使專案在批准的預算內完成而對成本進行規劃、估算、預算、融資、籌資、管理和控制的各個過程,從而確保專案在批准的預算內完工。 專案成本管理應考慮干係人對掌握成本情況的要求。 專案成本管理重點關注完成專案活動所需資源的

Netty In Action中文版 - Transports(傳輸)

duplicate pipeline 客戶 下列表 bytes 線程安全 get 工具 jsb 本章內容 Transports(傳輸)NIO(non-blocking IO,New IO), OIO(Old IO,blocking IO), Local(本地),

讀構建之法 兩人合作

應用 結對編程 使用 一對一 測試 一個 比較 以及 領域 程序員寫的代碼最終是人在看,所以代碼規範很重要,原則是:簡明,易讀,無二義性。 不光是程序書寫的格式問題,還牽涉到程序設計、模塊之間的關系、設計模式等方方面面。 代碼復審的正確定義看代碼是否在代碼規範的框架內正確的

執行環境與作用域

logs 執行 引用傳遞 按值傳遞 ons fun col func clas 函數中對象的值是按值傳遞的 !(function () { //對象的按值傳遞or按引用傳遞在函數中 function setName(obj) {

操作列表

clas str 3.3 轉換 一個 改變 導致 賦值 any 第四章:操作列表 4.1 遍歷整個列表 如果名單很長,將包含大量反復的代碼。另外,每當名單的長度發生變化時,都必須修改代碼。通過for 循環,可讓Python去處理這些問題 1)使用for循環來打印魔術師名

重構代碼[學習Android Studio漢化教程]

出現 introduce 編輯 rri 分享 成員 dialog fig ice 第四章 Refactoring Code The solutions you develop in Android Studio will not always follow a straig

ES6標準入門 字符串的擴展

固定 缺陷 長度 需要 允許 實例對象 poi turn har 1、字符串的Unicode 表示法 JavaScript 允許采用 \uxxxx 表示一個字符,其中 xxxx 表示字符的碼點。 "\u0061" // "a" ES5中的缺陷: 以上表示

Node入門教程(5)global 全局變量

-c 這不 .com clear 替換 http htm 取消 floating global - 全局變量 全局對象(global object),不要和 全局的對象( global objects )或稱標準內置對象混淆。這裏說的全局的對象是說在全局作用域裏的內的對象

活動圖

分享圖片 只有一個 什麽 分叉 img 面向 png 對象流 有一個 活動圖明確先做什麽,後坐什麽,什麽條件下做什麽。 活動圖也可以不面向對象,但流程圖一定面向過程。 一個活動圖一定有只有一個初始節點。終點為1~n。 如果有多個終點那麽可以有描述。

Spring AOP

edi 關註 aspectj 附加 aop 插入 out cert AC 4.1:面向切面編程 AOP是在運行期間將代碼切入到類的指定位置的編程思想。切面能幫助我們模塊化橫切關註點,實現橫切關註點的復用。Spring在運行期間將切面植入到指定的Bean中,實際是通過攔

現代軟件工程—構建之法---練習與討論

人在 做出 鍵盤 工具 等級分 閱讀 nbsp 現實 是個 1 、結對項目的案例與論文   論文已閱讀。 2、性格對合作的影響   我的MBTI為:ESTJ 管家型——掌控當下,讓各種事務有條不紊地進行   ESTJ型的人高效率地工作,自我負責,監督他人工作,合理分配和處置