1. 程式人生 > >第三篇:表相關操作

第三篇:表相關操作

一 儲存引擎介紹

儲存引擎即表型別,mysql根據不同的表型別會有不同的處理機制

二 表介紹

表相當於檔案,表中的一條記錄就相當於檔案的一行內容,不同的是,表中的一條記錄有對應的標題,稱為表的欄位

id,name,qq,age稱為欄位,其餘的,一行內容稱為一條記錄

三 建立表

#語法:
create table 表名(
欄位名1 型別[(寬度) 約束條件],
欄位名2 型別[(寬度) 約束條件],
欄位名3 型別[(寬度) 約束條件]
);

#注意:
1. 在同一張表中,欄位名是不能相同
2. 寬度和約束條件可選
3. 欄位名和型別是必須的
MariaDB [(none)]> create database db1 charset utf8;

MariaDB [(none)]> use db1;

MariaDB [db1]> create table t1(  
    -> id int, 
    -> name varchar(50),
    -> sex enum('male','female'),
    -> age int(3)
    -> );

MariaDB [db1]> show tables; #檢視db1庫下所有表名
MariaDB [db1]> desc t1; +-------+-----------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+-----------------------+------+-----+---------+-------+ | id | int(11) | YES | | NULL | | | name | varchar(50) | YES | | NULL | | | sex | enum('
male','female') | YES | | NULL | | | age | int(3) | YES | | NULL | | +-------+-----------------------+------+-----+---------+-------+ MariaDB [db1]> select id,name,sex,age from t1; Empty set (0.00 sec) MariaDB [db1]> select * from t1; Empty set (0.00 sec) MariaDB [db1]> select id,name from t1; Empty set (0.00 sec)
View Code
MariaDB [db1]> insert into t1 values
    -> (1,'egon',18,'male'),
    -> (2,'alex',81,'female')
    -> ;
MariaDB [db1]> select * from t1;
+------+------+------+--------+
| id   | name | age  | sex    |
+------+------+------+--------+
|    1 | egon |   18 | male   |
|    2 | alex |   81 | female |
+------+------+------+--------+



MariaDB [db1]> insert into t1(id) values 
    -> (3),
    -> (4);
MariaDB [db1]> select * from t1;
+------+------+------+--------+
| id   | name | age  | sex    |
+------+------+------+--------+
|    1 | egon |   18 | male   |
|    2 | alex |   81 | female |
|    3 | NULL | NULL | NULL   |
|    4 | NULL | NULL | NULL   |
+------+------+------+--------+
往表中插入資料

注意注意注意:表中的最後一個欄位不要加逗號 

四 查看錶結構

MariaDB [db1]> describe t1; #查看錶結構,可簡寫為desc 表名
+-------+-----------------------+------+-----+---------+-------+
| Field | Type                  | Null | Key | Default | Extra |
+-------+-----------------------+------+-----+---------+-------+
| id    | int(11)               | YES  |     | NULL    |       |
| name  | varchar(50)           | YES  |     | NULL    |       |
| sex   | enum('male','female') | YES  |     | NULL    |       |
| age   | int(3)                | YES  |     | NULL    |       |
+-------+-----------------------+------+-----+---------+-------+


MariaDB [db1]> show create table t1\G; #查看錶詳細結構,可加\G

五 資料型別

六 表完整性約束

七 修改表ALTER TABLE

語法:
1. 修改表名
      ALTER TABLE 表名 
                          RENAME 新表名;

2. 增加欄位
      ALTER TABLE 表名
                          ADD 欄位名  資料型別 [完整性約束條件…],
                          ADD 欄位名  資料型別 [完整性約束條件…];
      ALTER TABLE 表名
                          ADD 欄位名  資料型別 [完整性約束條件…]  FIRST;
      ALTER TABLE 表名
                          ADD 欄位名  資料型別 [完整性約束條件…]  AFTER 欄位名;
                            
3. 刪除欄位
      ALTER TABLE 表名 
                          DROP 欄位名;

4. 修改欄位
      ALTER TABLE 表名 
                          MODIFY  欄位名 資料型別 [完整性約束條件…];
      ALTER TABLE 表名 
                          CHANGE 舊欄位名 新欄位名 舊資料型別 [完整性約束條件…];
      ALTER TABLE 表名 
                          CHANGE 舊欄位名 新欄位名 新資料型別 [完整性約束條件…];
示例:
1. 修改儲存引擎
mysql> alter table service 
    -> engine=innodb;

2. 新增欄位
mysql> alter table student10
    -> add name varchar(20) not null,
    -> add age int(3) not null default 22;
    
mysql> alter table student10
    -> add stu_num varchar(10) not null after name;                //新增name欄位之後

mysql> alter table student10                        
    -> add sex enum('male','female') default 'male' first;          //新增到最前面

3. 刪除欄位
mysql> alter table student10
    -> drop sex;

mysql> alter table service
    -> drop mac;

4. 修改欄位型別modify
mysql> alter table student10
    -> modify age int(3);
mysql> alter table student10
    -> modify id int(11) not null primary key auto_increment;    //修改為主鍵

5. 增加約束(針對已有的主鍵增加auto_increment)
mysql> alter table student10 modify id int(11) not null primary key auto_increment;
ERROR 1068 (42000): Multiple primary key defined

mysql> alter table student10 modify id int(11) not null auto_increment;
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0

6. 對已經存在的表增加複合主鍵
mysql> alter table service2
    -> add primary key(host_ip,port);        

7. 增加主鍵
mysql> alter table student1
    -> modify name varchar(10) not null primary key;

8. 增加主鍵和自動增長
mysql> alter table student1
    -> modify id int not null primary key auto_increment;

9. 刪除主鍵
a. 刪除自增約束
mysql> alter table student10 modify id int(11) not null; 

b. 刪除主鍵
mysql> alter table student10                                 
    -> drop primary key;
示例

八 複製表

複製表結構+記錄 (key不會複製: 主鍵、外來鍵和索引)
mysql> create table new_service select * from service;

只複製表結構
mysql> select * from service where 1=2;        //條件為假,查不到任何記錄
Empty set (0.00 sec)
mysql> create table new1_service select * from service where 1=2;  
Query OK, 0 rows affected (0.00 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> create table t4 like employees;

九 刪除表

DROP TABLE 表名;

相關推薦

相關操作

一 儲存引擎介紹 儲存引擎即表型別,mysql根據不同的表型別會有不同的處理機制 二 表介紹 表相當於檔案,表中的一條記錄就相當於檔案的一行內容,不同的是,表中的一條記錄有對應的標題,稱為表的欄位 id,name,qq,age稱為欄位,其餘的,一行內容稱為一條記錄 三 建立表 #語法:

用戶增刪該查及組相關操作

-a home etc -s 信息 -c userdel 家目錄 upm 1.創建用戶及用戶信息例: useradd -u 501 -g 501 -d /home/用戶名 -G 組名 -c 描述語 -s /bin/bash 用戶名 User ID Group

python3的檔案讀寫操作

簡介 檔案的讀寫操作幾乎是每門語言都有的基礎。python的檔案操作過程可以分成以下三步: 用open()函式開啟一個檔案(沒有則新建),獲得檔案操作符 通過檔案控制代碼對檔案進行操作 完成檔案操作,用close()函式關閉檔案控制代碼 下面就按這三步

OpenCV學習圖片的掩膜操作(實現影象的對比度調整)

掩膜操作實現影象的對比度調整 矩陣的掩膜操作十分簡單,根據掩膜來重新計算每個畫素的畫素值,掩膜(mask也被稱為kernel) I(i,j) = 5* I(i,j)-[I(i-1,j)+I(i+1,

前端之路——列表、單、提交按鈕、html佈局、css的display,製造第一個單提交案例

第三課了,今天知識點至關重要。 網頁常用的表單提交!!! 就這樣羅列下第三課的知識點吧,不搞水印圖片了。 1.有序列表:語法(<ol><li></li></ol>),<ol>標籤能讓瀏覽器預設帶出排序,教為少用

linux設備驅動寫一個簡單的字符設備驅動

提示 copy flags 驅動程序 相關 clas open ugo param 在linux設備驅動第一篇:設備驅動程序簡介中簡單介紹了字符驅動,本篇簡單介紹如何寫一個簡單的字符設備驅動。本篇借鑒LDD中的源碼,實現一個與硬件設備無關的字符設備驅動,僅僅操

Python基礎函數

turn 說明 代碼 名稱 維護 span 大小寫 div 邏輯 一、Python函數介紹 1.函數的作用 規範代碼使代碼變得邏輯性更強 提高可讀性,方便管理,降低維護成本,以及降低代碼冗余 函數是組織好的,可重復使用的,用來實現單一,或相關聯功能的代碼段。 2.函

爬蟲框架 - Scrapy

工程 講解 爬取 turn 本體 爬蟲框架 sel 傳遞 使用 前言 Python提供了一個比較實用的爬蟲框架 - Scrapy。在這個框架下只要定制好指定的幾個模塊,就能實現一個爬蟲。 本文將講解Scrapy框架的基本體系結構,以及使用這

數據可視化 - ggplot2

strong 保存 轉換成 特征 散點圖 說明 pdf格式 ota 目的 前言 R語言的強大之處在於統計和作圖。其中統計部分的內容很多很強大,因此會在以後的實例中逐步介紹;而作圖部分的套路相對來說是比較固定的,現在可以先對它做一個總體的認識。

開發中的問題及解決方式

.text cat 彈窗 ret 如何 配置 中項 新的 顯示 1.texarea 如何保存空格、換行? 答:var content1= $("#content").val(); var content =content1.replace(/\n|\r\n/g,"&

Shell基本語法

允許 主體 賦值 算數 export $* lar script userdel 目錄 一、什麽是shell script 二、變量 三、運算符 四、流程控制 五、函數   一、什麽是shell script   將OS命令堆積到可執行文件裏,由上至下的順序執行文本裏的

快學Scala習題解答—章 數組相關操作

ear toa its trac bre idt -a yield pos 3 數組相關操作 3.1 編寫一段代碼。將a設置為一個n個隨機整數的數組,要求隨機數介於0(包括)和n(不包括)之間 random和yield的使用 Scala代碼

Linux實戰RHEL7.3 yum更換實戰

yum個人筆記分享(在線閱讀):http://note.youdao.com/noteshare?id=cdae09cf51bf77a4e94a2e2865562dbbPDF版本下載http://down.51cto.com/data/2323064本文出自 “人才雞雞” 博客,請務必保留此出處http://

python函數

名稱 bsp 一行 turn 內置 提高 none def 簡單 1、python函數 函數是組織好的,可重復使用的,用來實現單一,或相關聯功能的代碼段。 函數能提高應用的模塊性,和代碼的重復利用率。你已經知道Python提供了許多內建函數,比如print()。但你也可

數據結構——線性的鏈式存儲之單鏈

創建 int 超出 內容 存儲結構 cat com style 找到   線性表的鏈式存儲結構的特點是用一組任意的存儲單元來存儲線性表的數據元素,這些單元可以分散在內存中的任意位置上,其在物理上可以是連續的,也可以是不連續的。具有鏈式存儲結構的線性表稱為線性鏈表。   為了

Docker容器架構

通信 進程 核心 aca 虛擬化 比較 部署 fff 圖片 Docker 使用客戶端-服務器 (C/S) 架構模式,使用遠程API來管理和創建Docker容器。 Docker 容器通過 Docker 鏡像來創建。 Docker Daemon是docker最核心的守護進程,

R實戰 數據處理

ase 語言 dex test 矩陣 表達 set mat cond 在實際分析數據之前,必須對數據進行清理和轉化,使數據符合相應的格式,提高數據的質量。數據處理通常包括增加新的變量、處理缺失值、類型轉換、數據排序、數據集的合並和獲取子集等。 一,增加新的變量 通常需要

R實戰 數據處理(基礎)

計算 edi 字符數 定義函數 空間 數值 sqrt 字符類 ceil 數據結構用於存儲數據,不同的數據結構對應不同的操作方法,對應不同的分析目的,應選擇合適的數據結構。在處理數據時,為了便於檢查數據對象,可以通過函數attributes(x)來查看數據對象的屬性,str(

基於深度學習的人臉特徵點檢測 - 資料集整理

https://yinguobing.com/facial-landmark-localization-by-deep-learning-data-collate/ 在上一篇博文中,我們已經下載到了包括300-W、LFPW、HELEN、AFW、IBUG和300-VW在內的6個數據集,初步估算有2

快取資料庫Redis

快取資料庫的介紹請百度 學習資料 本文主要使用Redis製作簡單的使用者賬戶和排行榜 先看一個圖 這裡是Redis不同資料型別 應用的不同場景,再根據我們的要求,我們選擇了 賬戶使用 Hash 來進行儲存,排行榜使用 Sorted Set 進行儲存 賬戶儲存