1. 程式人生 > >MySQL資料庫(二)---資料型別、資料表、約束

MySQL資料庫(二)---資料型別、資料表、約束

資料型別

資料型別是指列、儲存過程引數、表示式和區域性變數的資料特徵,它決定了資料的儲存格式,代表了不同的資訊型別。

整形

  • TINYINT
  • SMALLINT
  • MEDIUMINT
  • INT
  • BIGINT

浮點型

M是數字總位數 D是小數點後面的位數
M>=D

  • FLOAT[(M,D)] 單精度浮點數 浮點精確到大約7位小數
  • DOUBLE[(M,D)] 雙精度浮點數

日期和時間型

  • YEAR 1
  • TIME 3
  • DATE 3
  • DATETIME 8
  • TIMESTAMP

字元型

  • CHAR(M) M個位元組0 - 255 定長
  • VARCHAR(M) 0-65535 變長
  • TINYTEXT
  • TEXT
  • MEDIUMTEXT
  • LONGTEXT
  • ENUM(’value1‘,’value2’,….) 列舉值 最多65535個值
  • SET(’value1‘,’value2’,….)集合 最多64個成員

資料表

資料表是資料庫最重要的組成部分之一,是其他物件的基礎

建立資料表

模板:
CREATE TABLE [IF NOT EXISTS] table_name(column_name data_type,….);
示例:

CREATE TABLE  tb1
(
username VARCHAR
(20), age TINYINT UNSIGNED, salary FLOAT(8,2) UNSIGNED );

檢視資料表列表

模板:SHOW TABLES [FROM db_name]
示例:

SHOW TABLES FROM mysql;

檢視資料表的結構

模板:SHOW COLUMNS FROM tbl_name;
示例:

SHOW COLUMNS FROM tb1;

插入記錄 INSERT

模板:INSERT [INTO] tbl_name [(col_name,…)] VALUES(val,…);
示例:

INSERT tb1 VALUES
('Zc',25,7863.25);
INSERT tb1 (username,salary)VALUES ('Wy',4867.25);

記錄查詢 SELECT

模板:
SELECT expr,… FROM tbl_name;
示例:

SELECT * FROM tb1;   //*為欄位的過濾

控制與非空

NULL,欄位值可以為空
NOT NULL,欄位值禁止為空
示例:

CREATE TABLE tb2
(
username VARCHAR(20) NOT NULL,
age TINYINT UNSIGNED NULL
);

此時寫入
INSERT tb2 VALUES(‘TOM’,NULL);
是允許的
寫入
INSERT tb2 VALUES(NULL,26);
報錯:
這裡寫圖片描述

自動標號:AUTO_INCREMEN

自動編號欄位必須和主鍵組合使用,主鍵不一定和自動編號組合使用。
示例:

錯誤的程式碼:

CREATE TABLE tb3
(
id SMALLINT UNSIGNED AUTO_INCREMENT,
username VARCHAR(30) NOT NULL
);

此時會報錯 是因為沒有主鍵,所以要新增一個主鍵才可以

正確的程式碼

CREATE TABLE tb3
(
id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(30) NOT NULL
);

主鍵約束和其他約束

主鍵:PRIMARY KEY

  • 主鍵約束
  • 每張資料表只能存在一個主鍵
  • 逐漸保證記錄的唯一性
  • 逐漸自動為NOT NULL
  • 主鍵的欄位是可以賦值的,但是不能賦值相同的值

UNIQUE KEY 唯一約束

  • 唯一約束
  • 唯一約束可以保證記錄的唯一性
  • 唯一約束的欄位可以為空值(NULL)
  • 每張資料表可以存在多個唯一約束

示例:

CREATE TABLE tb5
(
id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(20) NOT NULL UNIQUE KEY,
age TINYINT UNSIGNED
);

這裡寫圖片描述

記錄數值
INSERT tb5(username,age) VALUES(‘Zc’,24);
此時如果在新增以 ‘Zc’ 為username的時候會報錯,原因是以為唯一約束過了。

預設約束 DEFAULT這裡寫圖片描述

示例:

CREATE TABLE tb6
(
id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(20) NOT NULL UNIQUE KEY,
sex ENUM('1','2','3')  DEFAULT '3'
);

此時新增資料:INSERT tb6(username) VALUES('ZC');
預設為sex設定為3

您將這篇文章讀完了,謝謝你的關注,之後我還會陸續更新關於MySQL的相關知識。

相關推薦

MySQL資料庫---資料型別資料約束

資料型別 資料型別是指列、儲存過程引數、表示式和區域性變數的資料特徵,它決定了資料的儲存格式,代表了不同的資訊型別。 整形 TINYINT SMALLINT MEDIUMINT INT BIGINT 浮點型 M是數字總位數 D是小數

MySQL資料庫__2018.11.03

唯一性索引,一個表中可以有多個欄位時唯一性的(unique)。 一個表只能有一個主鍵,且不能為空。 外來鍵約束。 完整性約束條件。保證資料的完整性和一致性。 顯示寬度 如果資料大於該欄位資料型別所能表示的最大範圍則發生截斷。 顯示寬度只有配合上零填充才能顯示

Linux—mysql資料庫二進位制格式安裝mariadb-server

環境 centos7 準備:mariadb-10.2.18-linux-x86_64.tar 二進位制安裝包 二進位制格式安裝過程 [[email protected] ~]# rpm -q --scripts mariadb-server preinstall scrip

“淺嘗輒止”之MySQL資料庫

一、MySQL的簡介 MySQL,是一個關係型資料庫管理系統,它是由瑞典MySQL AB公司開發的產品,之後被Sun公司收購;在2009年4月20日,Sun公司被Oracle公司收購;從此MySQl屬於Oracle旗下產品。 MySQL能作為目前最流行的關係型資料庫管理系統之一,全由它的以下

毛毛Python進階之路6——MySQL 資料庫

毛毛Python進階之路6——MySQL 資料庫(二) 一、對於自增 show create table 表名; # 查看錶是怎樣建立的。 show create table 表名\G; #將某個表旋轉90度 alter table 表名 AUTO_INCREMENT=

mysql資料庫3--內,外連線查詢子查詢合併分頁【入門】

可以參照前兩個帖子,按順序的,mysql資料庫(1)有完整的建表語句 mysql資料庫(1)---簡單查詢 mysql資料庫(2)---單行函式、多行函式、分組查詢   -- 簡單查詢語句的完整語法 /*完整語法 SELECT 查詢列表 FROM 表名 WH

操作mysql資料庫

這篇文章是接上一篇文章操作MySQL資料庫(一)操作MySQL資料庫(一) 下面介紹的是另外一種方法,寫得不好的地方請指出 二、JAVAWEB 當用戶在頁面新增資訊時,我們要先驗證該使用者新增的資訊是否全部或者部分存在於資料庫中,例如使用者的使用者名稱的等 程

mysql資料庫——的查詢

1.單表查詢 1.1 查詢語法 SELECT 欄位1,欄位2... FROM 表名 WHERE 條件 GROUP BY field HAVING 篩選 ORDE

Saiku連線mysql資料庫

Saiku連線Mysql資料庫展示資料 參考連結:https://www.cnblogs.com/shirui/p/8573491.html 前提:Saiku已安裝好,mysql已安裝好   1.新增Saiku的資料庫驅動: mysql-connect-java-5.1.17.jar 下載

MySQL資料庫MySQL5.5伺服器解除安裝

前言        MySQL5.5如果解除安裝不乾淨的話,再次安裝MySQL資料庫會造成安裝失敗的情況。所以我整理的相關步驟,經過實際的測試,可以完全的解除安裝乾淨,再次重灌也沒有問題。 步驟 1.停止MySQL相關服務 win+R 啟動執行,輸入services.

mysql資料庫 四中資料型別資料的建立

資料型別 資料型別是指列、儲存過程引數、表示式和區域性變數的資料特徵,它決定了資料的儲存格式,代表了不同的資訊型別。(簡單的就是理解就是,我們有時候儲存是需要資料的,有的資料是整數,有的資料是小數,還有可能是日期,還有可能是字元型) 一、資料型別之(

MySQL學習資料型別

擷取書中內容留作學習。。。。 1、整數型別 2、浮點數與定點數型別 3、日期時間型別   向資料庫中插入當前系統時間:CURRENT_TIME或者NOW() 4、文字字串型別   MySQL列舉型別:create table test(enm E

資料庫資料型別

一、SQL資料型別使用MySQL資料庫儲存資料時,不同的資料型別決定了MySQL儲存資料方式的不同. MySQL中定義資料欄位的型別對你資料庫的優化是非常重要的 MySQL支援所有標準SQL數值資料型別 MySQL支援多種型別,大致可以分為三類 ①數值型別:in

Python筆記——Python中的基本語句變數和資料型別

目錄 一、python的基本語句 1.1 print語句 任務 1.2 python的註釋 二、資料型別 2.1、整數 2.2、浮點數 2.3、字串 2.4、布林值 2.5、空值 三、Python中的變數 四、Python中定義字串 任務

MYSQL資料庫- 修改資料名稱列名稱

目錄 一、修改列定義(modify col_name) 二、修改列型別(modify col_name) 三、修改列名稱(change col_name) 三、修改表名稱(rename table a to b) 用到的語句 a、修改

Django框架—— 基本配置:app註冊模板配置靜態檔案配置資料庫連線配置post和get

app註冊、模板配置、靜態檔案配置、資料庫連線配置post和get 一、app 在Django中,APP可以用以下類比 大學 --------------------專案 計算機學院------------app01 土木學院 ------------ app02 1、app建立 方

MySQL基礎圖形視窗操作命令指令碼操作

使用圖形視窗連線 下發windows的navicat 點選“連線”彈出視窗,按照提示填寫連線資訊,如下圖   連線成功後,會在連線名稱下面顯示出當前的資料庫 雙擊選中資料庫,就可以編輯此資料庫 下次再進入此軟體時,通過雙擊完成連線、編輯操作 資料庫操作

go的基礎資料結構型別

1.go的常量 package main import "fmt" /* 常量是指程式執行時不可改變的值,常量必須初始化值。定義常量既可以指定型別,編譯器也可以在常量初始化時做型別判斷。 並且在函式程式碼塊中定義常量,不被使用也不會出現編譯錯誤。 在常量組中,如果不指定型別和常量值,那麼常量的型別

資料庫知識整理 - 關係資料庫標準語言SQL- 超良心的資料查詢整理!

主要內容 資料查詢 基本語法 單表查詢 1. 選擇表中的若干列 2. 選擇表中的若干元組 3. ORDER BY子句 4. 聚集函式 5. GROUP BY子句 連線查詢 1. 等值與非等值連線查詢 2. 自身連線 3. 外

MySQL資料庫編譯安裝安裝後優化操作及超戶忘記資料庫密碼的解決方法

MySQL的下載地址:http://www.dev.mysql.com/downloads 準備工作:解除安裝rpm方式安裝的mysql-server、mysql       rpm -qa | grep mysql 若存在,用rpm -e mysql-server mysql --nodeps命令解除