Linux運維:MySQL數據庫(1)

1.信息與數據:

????????數據是信息的載體,信息是數據的內涵。數據庫就是存儲數據的倉庫,并長期存儲在計算機磁盤中,可由多個用戶和應用程序共享的數據集合,就是數據庫。

2.數據庫中的數據的特點:

? ? ? ? 2.1.數據是按照某種結構組織的:數據的內部構成及對外聯系就是數據庫的“型”,而數據的具體取值就是數據庫的“值”。

? ? ? ? 2.2.數據具有整體性:即數據庫中的數據是從整體出發,綜合了各個應用程序和用戶的需求,數據是整體結構化的。

? ? ? ? 2.3.數據有共享性、數據有較高的獨立性:數據庫中的數據和應用程序在物理和邏輯上均實現了分離,數據結構的該變不影響應用程序的運行,數據和程序具有較高的獨立性。

3.數據庫管理系統的功能

? ? ? ? DBMS(數據庫管理系統):是管理數據庫的系統軟件,它實現數據庫系統的各種功能。是數據庫系統的核心。數據庫管理系統位于操作系統之上,通過調用操作系統的各種服務,為用戶提供管理各種數據庫對象的接口和各種方法,從而實現對數據的各種操作。DBMS的功能建立在操作系統的底層服務之上,數據庫的管理控制及用戶對數據的各種操作命令的執行均由DBMS實現。

? ? ? ? 數據庫管理系統主要有三個功能:數據定義(DDL)、數據操縱(DML)、數據控制。

數據定義是定定義了數據庫的各種對象,表,視圖,索引,存儲過程,觸發器等。一般有create,drop,alter

? ? ? ? 數據操作是對數據表中的操作,如增、刪、改、查、統計等各種存儲操作。實現對數據庫中數據的基本操作。一般有insert,delete,update等。

? ? ? ? 數據控制一般有grant,revoke。

? ? ? ? 數據查詢語句:select

????????結構化查詢語言(SQL)是一種專門用來與數據庫通信的語言,其利用一些簡單的句子構成基本的語法來存取數據庫中的內容,便于用戶從數據庫中獲得及操作所需數據。

? ? ? ? SQL語言具有以下特點:(1)SQL語言是非過程化語言。(2)SQL語言是統一的語言。(3)SQL語言是關系型數據庫的公共語言。

? ? ? ? 關系型數據庫中的一個表是由行和列組成的,并且要求表中的每行記錄必須唯一。在設計表時,可以通過定義主鍵(primary key)來保證記錄(實體)的唯一性。關系型數據庫一般是MySQL,SQL Server,access,DB2,sybase等等。關系型數據庫結構是二維數據庫表,二維表中每個字段用來描述對象的一個屬性。每個記錄用來描述一個對象的信息,關系數據寫到哪里也就是存儲在硬盤當中讀寫系統就會受到的IO限制或者瓶頸。非關系型數據庫:NoSQL,Redis。它們都存儲高熱數據(在內存中高速運行),不同點:redis可以做持久化保存,可以存儲對象。

? ? ? ? 一個表的主鍵由一個或多個字段組成,值具有唯一性,且不允許去控制,主鍵的作用是唯一的標識表中的每一條記錄。

? ? ? ? 關系型數據庫中的術語:

關系:關系就是二維表,其中表中的行、列次序并不重要

行row:表中的每一行,又稱為一條記錄或元組

列column:表中的每一列,稱為屬性或字段或域

主鍵primary key:用于唯一確定一個記錄的字段,一張表只有一個主鍵,可以有多個外鍵

域domain:屬性的取值范圍,如:性別只能是“男”和“女”兩個人,人類的年齡只能0-150

聯系類型:一對一聯系(1:1)、一對多聯系(1:n)外鍵、多對多聯系(n:n)三張表。

數據庫的編譯安裝:

#創建一個目錄/data/

[root@Node1 ~]#:mkdir /data ; cd /data/

#把源碼包拖進來。

[root@Node1 data]#:ls

mysql-boost-5.7.20.tar.gz

#解壓
[root@Node1 data]#:tar xf?mysql-boost-5.7.20.tar.gz

[root@Node1 data]#:ls
mysql-5.7.20 ?mysql-boost-5.7.20.tar.gz

[root@Node1 data]#:cd /data/mysql-5.7.20/

#安裝依賴包

[root@Node1 mysql-5.7.20]#:yum install -y ncurses-devel autoconf cmake?

[root@Node1 mysql-5.7.20]#:yum -y install gcc gcc-c++ cmake bison bison-devel zlib-devel libcurl-devel libarchive-devel boost-devel ncurses-devel gnutls-devel libxml2-devel openssl-devel libevent-devel libaio-devel

#新建一個用戶mysql,用于管理mysql

[root@Node1 mysql-5.7.20]#:useradd -M -s /sbin/nologin ?mysql

#編譯安裝:

[root@Node1 mysql-5.7.20]#:cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 ?\
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=boost \
-DWITH_SYSTEMD=1

[root@Node1 mysql-5.7.20]#:make -j4? ? ? ? ? ? ? ?#編譯,4核。這里等待時間較長,約20分鐘
[root@Node1 mysql-5.7.20]#:make install

數據庫安裝成功。給數據庫mysql用戶權限

#數據庫目錄進行權限調整
[root@localhost mysql-5.7.20]#:chown -R mysql:mysql /usr/local/mysql/
#建立調整配置文件
[root@localhost mysql-5.7.20]#:vim /etc/my.cnf

[client]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock
[mysql]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock
[mysqld]
user = mysql
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
character_set_server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket = /usr/local/mysql/mysql.sock
server-id = 1
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE

_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_

FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES? ? #這里是一行

#修改配置文件權限

[root@localhost mysql-5.7.20]#:chown -R mysql:mysql /etc/my.cnf

#設置環境變量
[root@localhost mysql-5.7.20]#:echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
[root@localhost mysql-5.7.20]#:echo 'export PATH' >> /etc/profile
[root@localhost mysql-5.7.20]#:source /etc/profile

#初始化數據庫,相對路徑
[root@localhost mysql-5.7.20]#:cd /usr/local/mysql/

[root@localhost mysql]#:bin/mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data

#ls看一下,就會有一個data文件夾

#準備systemctl配置文件

[root@localhost mysql]#:cp usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system
[root@localhost mysql]#:systemctl daemon-reload
[root@localhost mysql]#:systemctl start mysqld

#可以查看狀態,是否啟動
[root@localhost mysql]#:systemctl status mysqld

#修改數據庫密碼
[root@localhost mysql]#:mysqladmin -u root -p password "abc123"
#直接回車

#登錄數據庫:

[root@localhost mysql]#:mysql -uroot -p"abc123"


登錄成功!

ctrl + D退出登錄



--end---

DDL和DML:以分號結尾;

1.顯示所有數據庫:show databases;

2.創建數據庫:create database db1;

查看:多了一個數據庫,其他的四個是系統中自帶的數據庫

3.創建表:

創建一個學生表student,包括學號ID,姓名name,性別sex,年齡age,電話號碼phone,郵箱email。其中學號ID為int型,設置為主鍵。電話號碼最長不超過11位,不為空。郵箱不超過30位,唯一。創建表要先進入數據庫:use db1;

create table student (
id int primary key,
name varchar(10),
sex char(1),
age varchar(3),
phone varchar(11) not null,
email varchar(30) unique
);
Query OK, 0 rows affected (0.00 sec)

4.添加字段:

查看表結構:desc student;

如果再添加一個字段,使用alter,add添加。如,添加班級class,字符型,最長為10位。

alter table student add class varchar(10) not NULL;

5.修改字段名:

如果修改字段名:使用change修改。

如果將class修改成bj,語句:alter table student change class bj varchar(10) not NULL;

修改成功:

6.修改字段約束:

在改字段名的時候也可以指定新名字的字段約束,如將class改成bj并直接將varchar改成char。

如果在不修改字段名的情況下,直接修改字段約束:使用alter .. modify

alter table student modify bj char(5);

7.刪除字段:

刪除字段:使用alter ..drop:

如將bj字段刪除掉:alter table student drop bj;

8.顯示表:

必須use進入到一個數據庫中,才能顯示表:

show tables;? ?只創建了一張表student。

9.刪除數據庫:

通過語句:drop database db1;

db1的表已刪除了。

---end---

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/36725.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/36725.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/36725.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

RuleApp1.4.6文章社區客戶端 廣告聯盟支持Docx導入

支持編譯為安卓,蘋果,小程序,H5網頁的社區客戶端代碼,包括文章模塊,用戶模塊,動態模塊,支付模塊,聊天模塊,廣告模塊,商城模塊等基礎功能,包含VIP會…

C++的模板(九):模板的實例化問題

前文子系統中的例子&#xff0c; SubSystem內部用了STL庫的map模板: template <class Event, class Response> class SubSystem{ public:map<Event*, Response*> table; public:void bind(Event *e, Response *r);void unbind(Event *e); public:int OnMessage(E…

10位時間戳、13位時間戳、17位時間戳,以及在JavaScript中的格式轉換

一、介紹 1、10位時間戳 2、13位時間戳 3、17位時間戳 4、時間戳轉換工具 二、13位時間戳的轉換 1、轉標準日期 2、轉格式化日期 三、10位時間戳的轉換 1、轉標準日期 2、轉格式化日期 四、17位時間戳的轉換 1、解析思路 2、解析過程 &#xff08;1&#xff09;統…

C++系統編程篇——Linux第一個小程序--進度條

&#xff08;1&#xff09;先引入一個概念&#xff1a;行緩沖區 \r和\n \r表示回車 \n表示回車并換行 ①代碼一 #include<stdio.h> #include<unistd.h> int main()…

django學習入門系列之第三點《偽類簡單了解》

文章目錄 hover&#xff08;偽類&#xff09;after&#xff08;偽類&#xff09;往期回顧 hover&#xff08;偽類&#xff09; 偽類指的是用冒號加的 hover樣式指的是&#xff0c;當用戶光標移動到設定區域后&#xff0c;所執行的用法 如&#xff1a; <!DOCTYPE html>…

【C語言】函數無參數有返回值、有參數無返回值、有參數有返回值

文章目錄 前言C語言函數的分類和使用無參數有返回值的函數有參數無返回值的函數有參數有返回值的函數 總結 前言 在C語言中&#xff0c;函數是一種重要的組織代碼的方式。根據函數的參數和返回值&#xff0c;我們可以將函數分為三類&#xff1a;無參數有返回值、有參數無返回值…

清理未使用的鏡像和容器

刪除未使用的鏡像和容器&#xff1a; docker system prune -a清理構建緩存&#xff1a; Docker 會緩存構建過程中使用的中間鏡像&#xff0c;可以通過以下命令清理它們&#xff1a; docker builder prune定期清理舊鏡像&#xff1a; 定期運行以下命令清理舊鏡像&#xff1a; …

通過代理從ARDUINO IDE直接下載開發板包

使用免費代理 實現ARDUINO IDE2.3.2 下載ESP8266/ESP32包 免費代理 列表 測試代理是否可用的 網站 有時&#xff0c;代理是可用的&#xff0c;但依然有可能找不到開發板管理器的資料包。 可以多換幾個代理試試。 代理的配置 文件 -> 首選項 -> 網絡 進入后做如下配置…

2024百度之星第二場-小度的01串

補題鏈接&#xff1a; 碼蹄集 一道經典線段樹板子題。 區間修改01置換&#xff0c;區間查詢子串權值。 唯一區別&#xff0c;權值要求的是相鄰字符都不同所需修改的最小字符個數。 我們在線段樹節點上分別維護當前連續區間&#xff1a; 奇數位是0的個數&#xff08;j0&…

K8S兩種安裝方式如何選擇?

K8S兩種安裝方式如何選擇&#xff1f;\nKubeadm VS kubernetes 二進制\n\n1、kubeadm 方式部署&#xff08;推薦&#xff09;\n推薦理由&#xff1a;\n\n官方推薦&#xff1a;kubeadm 是 Kubernetes 官方提供的工具&#xff0c;用于快速搭建生產級別的 Kubernetes 集群&#xf…

python讀取hdf4文件

記錄一下使用xarray讀取hdf4&#xff08;not hdf5&#xff09;過程中遇到的問題. 目的: 讀取hdf4 file的matadata遇到的問題&#xff1a;使用xarray.open_dataset()失敗解決方法&#xff1a;使用pyhdf.SD代替 import os from pyhdf.SD import SD, SDC import xarray as xr im…

ios CCNSDate.m

// // CCNSDate.h // CCFC // // Created by xichen on 11-12-17. // Copyright 2011年 ccteam. All rights reserved. //#import <Foundation/Foundation.h>interface NSDate(cc)// 獲取系統時間(yyyy-MM-dd HH:mm:ss.SSS格式)(NSString *)getSystemTimeStr;// prin…

記錄Spring Boot中的API請求參數讀取方式

一、背景 項目開發中經常使用Spring Boot開發API&#xff0c;所以讀取請求參數是服務端編碼中最基本最常見的操作項&#xff0c;Spring Boot中也提供多種機制來滿足不同的API設計要求。接下來就記錄一下項目中用過的6種請求參數讀取方式。 RequestParam 用來加載請求URL中&q…

2024年6月24日-6月30日(ue5肉鴿視頻p16-p25)

試過重點放在獨立游戲上&#xff0c;有個indienova獨立游戲團隊是全職的&#xff0c;由于他們干了幾個月&#xff0c;節奏暫時跟不上&#xff0c;緊張焦慮了。五一時也有點自暴自棄了&#xff0c;實在沒必要&#xff0c;按照自己的節奏走即可。精力和時間也有限&#xff0c;放在…

Python和tkinter實現的字母記憶配對游戲

Python和tkinter實現的字母記憶配對游戲 因為這個小游戲用到了tkinter&#xff0c;先簡要介紹一下它。tkinter是Python的標準GUI(圖形用戶界面)庫&#xff0c;它提供了一種簡單而強大的方式來創建圖形界面應用程序。它提供了創建基本圖形界面所需的所有工具&#xff0c;同時保…

OSI七層模型TCP/IP四層面試高頻考點

OSI七層模型&TCP/IP四層&面試高頻考點 1 OSI七層模型 1. 物理層&#xff1a;透明地傳輸比特流 在物理媒介上傳輸原始比特流&#xff0c;定義了連接主機的硬件設備和傳輸媒介的規范。它確保比特流能夠在網絡中準確地傳輸&#xff0c;例如通過以太網、光纖和無線電波等媒…

什么是有效的電子簽名?PDF電子簽名怎樣具備法律效力?

電子簽名逐漸成為商務文書和法律文件中不可或缺的一部分。《電子簽名法》自2005年4月1日起施行&#xff0c;這一立法是中國信息化法律的重要里程碑&#xff0c;為電子簽名應用奠定了法律基礎。電子簽名不僅僅是一種技術手段&#xff0c;更是一種法律認可的簽名形式。那么究竟什…

js生成UUID確保數據的唯一性

在JavaScript中&#xff0c;生成UUID&#xff08;Universally Unique Identifier&#xff09;通常用于確保數據的唯一性。 以下是一個簡單的使用JavaScript生成UUID的示例&#xff0c;它基于RFC 4122版本4&#xff08;隨機UUID&#xff09;的算法&#xff1a; function gener…

Python私教張大鵬 PyWebIO通過事件回調實現表格的編輯和刪除功能

從上面可以看出&#xff0c;PyWebIO把交互分成了輸入和輸出兩部分&#xff1a;輸入函數為阻塞式調用&#xff0c;會在用戶瀏覽器上顯示一個表單&#xff0c;在用戶提交表單之前輸入函數將不會返回&#xff1b;輸出函數將內容實時輸出至瀏覽器。這種交互方式和控制臺程序是一致的…

學習TTS遇到的問題2 什么是TCN模型

學習TTS遇到的問題2 什么是TCN模型 什么是TCN模型怎么理解 TCN中的 dilation&#xff1f;什么是 Dilation具體例子數學表達作用例子代碼示例 什么是TCN模型 https://juejin.cn/post/7262269863343079479 https://blog.csdn.net/weixin_57726558/article/details/132163074 由下…