国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

3. MySQL - 數(shù)據(jù)類型 & 選項(xiàng)約束

這篇具有很好參考價(jià)值的文章主要介紹了3. MySQL - 數(shù)據(jù)類型 & 選項(xiàng)約束。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

目錄

回顧

1. 命令行下的 MySql 客戶端

2. 圖形化界面的 MySQL-Client

3. 數(shù)據(jù)庫概述

3.1 數(shù)據(jù)庫管理系統(tǒng)是什么

3.2?工作模式

3.3 RDBMS 管理數(shù)據(jù)的結(jié)構(gòu)

3.4 客戶端連接服務(wù)器的信息

4. MySQL 中的數(shù)據(jù)類型

4.1?整型類型

4.2 字符串

4.3 日期/時(shí)間

5. MySQL 每個(gè)字段的選項(xiàng)約束

6. 練習(xí):將我們做過的題目記錄到數(shù)據(jù)庫中


回顧

上一篇博客中,我們具體包括以下內(nèi)容:

  1. 安裝 mysql-server,通過 Ubuntu 的包管理工具 apt,自動(dòng)啟動(dòng)了 MySQL

    apt list sudo apt install <包名>
  2. 檢查 MySQL-Server 進(jìn)程(/usr/sbin/mysqld)是否啟動(dòng)成功

    ps aux | grep mysqld #進(jìn)程
    
    
    sudo netstat -nlpt | grep 3306 #端口
    1. 查看對(duì)應(yīng)的進(jìn)程是否存在

    2. MySQL-Server 進(jìn)程應(yīng)該監(jiān)聽 TCP 3306 端口,查看端口監(jiān)聽情況

  3. 通過 MySQL-Client (/usr/sbin/mysql) 建立和 MySQL-Server 的連接(via 3306 端口)

在 Unix(Linux) OS中,習(xí)慣于把服務(wù)器(Server:提供 服務(wù)(Service)的進(jìn)程) 進(jìn)程叫做 xxxd。d 是 daemon(守護(hù)精靈):表示這類進(jìn)程都是看不到的,默默在背后工作。

通過 MySQL-Client 要連接 MySQL-Server 是通過網(wǎng)絡(luò)連接的,所以需要知道如下信息:

1.MySQL-Server 進(jìn)程工作在網(wǎng)絡(luò)中的哪臺(tái)主機(jī)(host)上?

通過域名(domain)或者 ip 地址。 其中 127.0.0.1 是一個(gè)特殊的 ip 地址,代表本機(jī)。對(duì)應(yīng)的域名 localhost。

2.MySQL-Server 進(jìn)程是這臺(tái)主機(jī)上的哪個(gè)進(jìn)程?

通過端口(3306 MySQL 服務(wù)器進(jìn)程的默認(rèn)端口)

  • 當(dāng)主機(jī)是 127.0.0.1、端口是 3306 時(shí),可以省略

  • 授權(quán)信息:mysql 的用戶名,mysql 的密碼

  • 所以從默認(rèn)的配置文件中 (/etc/mysql/debian.conf)下獲取用戶名和密碼

    sudo cat /etc/mysql/debian.cnf 

連接數(shù)據(jù)庫

mysql -h127.0.0.1 -P3306 -u<用戶名> -p

接下來,我們開始學(xué)習(xí) MySQL 的相關(guān)知識(shí)。?

1. 命令行下的 MySql 客戶端

-- 這個(gè)是注釋

-- 創(chuàng)建一個(gè)庫(schema)名叫 learn,默認(rèn)字符集 utf8mb4
create database learn charset utf8mb4;

-- 切換自己的工作環(huán)境為 learn 庫,俗稱把 learn 設(shè)成默認(rèn)庫
use learn;

-- 創(chuàng)建一張學(xué)生表(students),列
-- 學(xué)號(hào)(sn)整型 int   primary key(pk) 主鍵
-- 姓名(name)字符串 varchar(20) 字符串最長(zhǎng) 20 個(gè)字
-- 入學(xué)時(shí)間(entried_at) datetime   年-月-日 時(shí):分:秒
create table students (
    sn int primary key,
    name varchar(20),
    entried_at datetime
);

-- 在這張表中插入一些數(shù)據(jù),注意:數(shù)據(jù)必須整行的形式存在
insert into students (sn, name, entried_at)
    values (101, '張三', '2021-09-01 18:32:18');
    
-- 查看表中的數(shù)據(jù)
select * from students;

3. MySQL - 數(shù)據(jù)類型 & 選項(xiàng)約束,數(shù)據(jù)結(jié)構(gòu)&amp;MySQL,數(shù)據(jù)庫,mysql

2. 圖形化界面的 MySQL-Client

  • 需要在云服務(wù)器(Web控制臺(tái))上開啟 3306 的訪問權(quán)限;
  • Mysql-server 默認(rèn)不允許從非本地連接。

以上兩點(diǎn)都是為了保證數(shù)據(jù)的安全,數(shù)據(jù)庫的數(shù)據(jù)一旦泄露后果不堪設(shè)想。?如果默爾曼采用直接連接的方式連接數(shù)據(jù)庫十分的麻煩且不安全。因此,我們采用SSH 隧道(Tunnel)的方式,具體流程如下圖所示。

3. MySQL - 數(shù)據(jù)類型 & 選項(xiàng)約束,數(shù)據(jù)結(jié)構(gòu)&amp;MySQL,數(shù)據(jù)庫,mysql

接下來我們就需要使用 WindTerm 的隧道功能了。

3. MySQL - 數(shù)據(jù)類型 & 選項(xiàng)約束,數(shù)據(jù)結(jié)構(gòu)&amp;MySQL,數(shù)據(jù)庫,mysql

3. MySQL - 數(shù)據(jù)類型 & 選項(xiàng)約束,數(shù)據(jù)結(jié)構(gòu)&amp;MySQL,數(shù)據(jù)庫,mysql?

3. 數(shù)據(jù)庫概述

3.1 數(shù)據(jù)庫管理系統(tǒng)是什么

Database Manage System(DBMS)是一類數(shù)據(jù)庫管理系統(tǒng)軟件。

其中目前主流的是關(guān)系型數(shù)據(jù)庫管理系統(tǒng) Relational Database Manage System RDBMS。

知名的產(chǎn)品有 MySQL、Oracle、Postgres、Sqlite 等。

通常將數(shù)據(jù)存儲(chǔ)在二級(jí)存儲(chǔ)(硬盤)上 —— 斷電后數(shù)據(jù)仍然保留。

內(nèi)部實(shí)現(xiàn)中,通過一個(gè) schema(database) 是一個(gè)文件夾,每個(gè) table 是該文件夾下的幾個(gè)文件。

3.2?工作模式

客戶端-服務(wù)器模型?

3. MySQL - 數(shù)據(jù)類型 & 選項(xiàng)約束,數(shù)據(jù)結(jié)構(gòu)&amp;MySQL,數(shù)據(jù)庫,mysql

3.3 RDBMS 管理數(shù)據(jù)的結(jié)構(gòu)

RDBMS -> Database/Schema -> Table -> Row -> Column/Field

3.4 客戶端連接服務(wù)器的信息

主機(jī)(host)、端口(port)、用戶名(user)、密碼(password)、默認(rèn)庫

4. MySQL 中的數(shù)據(jù)類型

4.1?整型類型

int (32位)/ smallint (16位)/ bigint(64位)

4.2 字符串
  • char(10) 定長(zhǎng)字符串
  • varchar(10) 變長(zhǎng)字符串 variable(變量/變化的)

10:最多存 10 個(gè)字(不區(qū)分英文/中文)

text / longtext? --- blob?/ longblob (存放視頻數(shù)據(jù)和音頻數(shù)據(jù)? Binary Large Object)

SQL 中,不區(qū)分單引號(hào)、雙引號(hào)

4.3 日期/時(shí)間
  • date 年月日? '2023-04-20'
  • time?時(shí)分秒? '21:02:38'
  • datetime? 年月日 + 時(shí)分秒? '2023-04-20 21:02:38'

5. MySQL 每個(gè)字段的選項(xiàng)約束

3. MySQL - 數(shù)據(jù)類型 & 選項(xiàng)約束,數(shù)據(jù)結(jié)構(gòu)&amp;MySQL,數(shù)據(jù)庫,mysql

  • PK Primary Key 勾選之后,代表這列是主鍵
  • NNNot Null 勾選之后,此列不允許填入 Null null NuLL
  • UQ Unique(唯一的) 勾選之后,此列的數(shù)據(jù)不能重復(fù)
  • AI Auto Incremental 只能配合 Int + PK 使用,填入之后,此列的值自動(dòng)加 1

建庫的原則:

一定要選擇字符集編碼為 utf8mb4

建表的通常原則:

  1. 必須有一個(gè)列,這個(gè)列的名稱叫做 users uid,作為主鍵存在,并且選擇 NN、AI

  2. 如果沒有意外情況,各個(gè)列都把 NN 勾選上

6. 練習(xí):將我們做過的題目記錄到數(shù)據(jù)庫中

oj_records

0) oj_id int pk ai

1)題目來源(???or leetcode) source varchar(10) NN 可以重復(fù)

2)題目鏈接 link varchar(200) NN 不重復(fù)

3)題目 question varchar(100) NN 不重復(fù)

4)難度 difficulty varchar(10) Null

5)是否通過 passed int NN

6)上次通過時(shí)間 last_passed_at datetime Null

CREATE TABLE `learn`.`oj_records` (
  `oj_id` INT NOT NULL AUTO_INCREMENT,
  `source` VARCHAR(10) NOT NULL,
  `link` VARCHAR(200) NOT NULL,
  `question` VARCHAR(100) NOT NULL,
  `difficulty` VARCHAR(10) NULL,
  `passed` INT NOT NULL DEFAULT 0 COMMENT '1: 通過\n0: 未通過',
  `last_passed_at` DATETIME NULL,
  PRIMARY KEY (`oj_id`),
  UNIQUE INDEX `link_UNIQUE` (`link` ASC) VISIBLE,
  UNIQUE INDEX `question_UNIQUE` (`question` ASC) VISIBLE)
COMMENT = 'OJ 刷題記錄';

?文章來源地址http://www.zghlxwxcb.cn/news/detail-558090.html

到了這里,關(guān)于3. MySQL - 數(shù)據(jù)類型 & 選項(xiàng)約束的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • java八股文面試[數(shù)據(jù)庫]——MySQL索引的數(shù)據(jù)結(jié)構(gòu)

    java八股文面試[數(shù)據(jù)庫]——MySQL索引的數(shù)據(jù)結(jié)構(gòu)

    知識(shí)點(diǎn): 【2023年面試】mysql索引的基本原理_嗶哩嗶哩_bilibili 【2023年面試】mysql索引結(jié)構(gòu)有哪些,各自的優(yōu)劣是什么_嗶哩嗶哩_bilibili

    2024年02月10日
    瀏覽(90)
  • Mysql不同數(shù)據(jù)庫之間表結(jié)構(gòu)同步

    Mysql不同數(shù)據(jù)庫之間表結(jié)構(gòu)同步

    開發(fā)環(huán)境的Mysql表結(jié)構(gòu)做了修改,要同步到其他環(huán)境數(shù)據(jù)庫中使用數(shù)據(jù)庫管理工具JookDB的表結(jié)構(gòu)同步功能就很方便。雖然Navicat也有這個(gè)功能但是有免費(fèi)的當(dāng)然是用免費(fèi)的。 用JookDB添加數(shù)據(jù)庫后在數(shù)據(jù)庫節(jié)點(diǎn)上右鍵選擇“同步結(jié)構(gòu)”即可開始表結(jié)構(gòu)同步。 1.選擇結(jié)構(gòu)同步的源庫

    2024年02月05日
    瀏覽(24)
  • 【數(shù)據(jù)庫——MySQL(實(shí)戰(zhàn)項(xiàng)目1)】(1)圖書借閱系統(tǒng)——數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)

    【數(shù)據(jù)庫——MySQL(實(shí)戰(zhàn)項(xiàng)目1)】(1)圖書借閱系統(tǒng)——數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)

    經(jīng)過前期的學(xué)習(xí),我們已經(jīng)掌握數(shù)據(jù)庫基礎(chǔ)操作,因此是時(shí)候來做一個(gè)實(shí)戰(zhàn)項(xiàng)目了—— 圖書借閱系統(tǒng) 。對(duì)于圖書借閱系統(tǒng),相信大家不難想到至少需要 3 張表,分別是: 借閱人表 , 圖書表 和 借閱信息表 (當(dāng)然不限于這些表,大家可以根據(jù)自己的想法創(chuàng)建其它表)。 那么

    2024年02月03日
    瀏覽(33)
  • MySQL數(shù)據(jù)庫精選(從入門使用到底層結(jié)構(gòu))

    MySQL數(shù)據(jù)庫精選(從入門使用到底層結(jié)構(gòu))

    DDL: 數(shù)據(jù)定義語言,用來定義數(shù)據(jù)庫對(duì)象(數(shù)據(jù)庫、表、字段) DML: 數(shù)據(jù)操作語言,用來對(duì)數(shù)據(jù)庫表中的數(shù)據(jù)進(jìn)行增刪改 DQL: 數(shù)據(jù)查詢語言,用來查詢數(shù)據(jù)庫中表的記錄 DCL: 數(shù)據(jù)控制語言,用來創(chuàng)建數(shù)據(jù)庫用戶、控制數(shù)據(jù)庫的控制權(quán)限 數(shù)據(jù)定義語言 數(shù)據(jù)庫操作 查詢所有數(shù)據(jù)

    2024年02月19日
    瀏覽(25)
  • 【MySQL數(shù)據(jù)庫 | 第十七篇】索引以及索引結(jié)構(gòu)介紹

    【MySQL數(shù)據(jù)庫 | 第十七篇】索引以及索引結(jié)構(gòu)介紹

    目錄 前言: 索引簡(jiǎn)介:? 索引結(jié)構(gòu): ? ? ? ? ??二叉樹索引結(jié)構(gòu) ? ? ? ??Tree(普通二叉樹) ? ? ? ??B-Tree(多路平衡查找樹) ? ? ? ??B+Tree ? ? ? ???哈希索引數(shù)據(jù)結(jié)構(gòu) 總結(jié): 在實(shí)際生活中,我們對(duì)SQL語句進(jìn)行優(yōu)化實(shí)際上有很大一部分都是對(duì)索引進(jìn)行優(yōu)化,因此對(duì)索引

    2024年02月09日
    瀏覽(40)
  • MySQL的數(shù)據(jù)結(jié)構(gòu):數(shù)據(jù)庫(Database)、表(Table)、記錄(Record)和字段(Field)

    MySQL的數(shù)據(jù)結(jié)構(gòu)可以看作是一個(gè)層次化的組織方式,從最高的層次到最低的層次分別是:數(shù)據(jù)庫(Database)、表(Table)、記錄(Record,也就是數(shù)據(jù)行)和字段(Field,也就是數(shù)據(jù)列)。 數(shù)據(jù)庫(Database) : 數(shù)據(jù)庫是最高層次的存儲(chǔ)結(jié)構(gòu),它可以包含多個(gè)表、視圖、存儲(chǔ)過程、

    2024年02月21日
    瀏覽(29)
  • 數(shù)據(jù)結(jié)構(gòu)與算法之美學(xué)習(xí)筆記:48 | B+樹:MySQL數(shù)據(jù)庫索引是如何實(shí)現(xiàn)的?

    數(shù)據(jù)結(jié)構(gòu)與算法之美學(xué)習(xí)筆記:48 | B+樹:MySQL數(shù)據(jù)庫索引是如何實(shí)現(xiàn)的?

    本節(jié)課程思維導(dǎo)圖: 作為一個(gè)軟件開發(fā)工程師,你對(duì)數(shù)據(jù)庫肯定再熟悉不過了。作為主流的數(shù)據(jù)存儲(chǔ)系統(tǒng),它在我們的業(yè)務(wù)開發(fā)中,有著舉足輕重的地位。在工作中,為了加速數(shù)據(jù)庫中數(shù)據(jù)的查找速度,我們常用的處理思路是,對(duì)表中數(shù)據(jù)創(chuàng)建索引。那你是否思考過,數(shù)據(jù)庫

    2024年01月16日
    瀏覽(98)
  • mysql從入門到放棄之?dāng)?shù)據(jù)庫體系結(jié)構(gòu)與管理

    mysql從入門到放棄之?dāng)?shù)據(jù)庫體系結(jié)構(gòu)與管理

    第一篇文章中主要學(xué)習(xí)了mysql二進(jìn)制的基本安裝及數(shù)據(jù)庫初始化等操作,本篇文章主要了解mysql的體系結(jié)構(gòu)和管理,例如: mysql的實(shí)例組成、邏輯存儲(chǔ)結(jié)構(gòu)、物理存儲(chǔ)結(jié)構(gòu)等方面展開學(xué)習(xí) 提示:以下是本篇文章正文內(nèi)容,下面案例可供參考 3.1、mysqld守護(hù)進(jìn)程結(jié)構(gòu) 3.2、 引入sql語句

    2024年01月21日
    瀏覽(88)
  • MySQL數(shù)據(jù)庫---庫基本操作 以及 表結(jié)構(gòu)的操作(DDL)

    MySQL數(shù)據(jù)庫---庫基本操作 以及 表結(jié)構(gòu)的操作(DDL)

    目錄 前言 一.數(shù)據(jù)庫的操作 1.1顯示當(dāng)前數(shù)據(jù)庫 1.2創(chuàng)建數(shù)據(jù)庫 1.3使用數(shù)據(jù)庫? 1.4刪除數(shù)據(jù)庫 ?二.數(shù)據(jù)類型 2.1數(shù)值類型 2.2字符串類型 2.3日期類型 三.數(shù)據(jù)表的操作 ?3.1?創(chuàng)建表結(jié)構(gòu)。 ?3.2查看數(shù)據(jù)庫中擁有的數(shù)據(jù)表 ?3.3查看指定的表結(jié)構(gòu) ??3.4修改表結(jié)構(gòu) ??3.5刪除表結(jié)構(gòu) ?

    2024年02月09日
    瀏覽(21)
  • MySQL高級(jí)第十一篇:數(shù)據(jù)庫調(diào)優(yōu)策略(定位-調(diào)優(yōu)-結(jié)構(gòu))

    MySQL高級(jí)第十一篇:數(shù)據(jù)庫調(diào)優(yōu)策略(定位-調(diào)優(yōu)-結(jié)構(gòu))

    1.盡可能節(jié)省系統(tǒng)資源,以便系統(tǒng)可以提供更大負(fù)荷的服務(wù)。 (吞吐量更大) 2.合理的結(jié)構(gòu)設(shè)計(jì)和參數(shù)調(diào)整,以提高用戶操作響應(yīng)的速度。 (響應(yīng)速度更快) 3.減少系統(tǒng)的瓶頸,提高M(jìn)ySQL數(shù)據(jù)庫整體的性能。 用戶是我們的服務(wù)對(duì)象,因此他們的反饋是最直接的。雖然他們不會(huì)

    2023年04月10日
    瀏覽(32)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包