mysql必_MySQL必知必會(一)

摘自《MySQL必知必會》

1.1.1 什么是數據庫

數據庫:保存有組織的數據的容器(通常是一個文件或一組文件)

人們通常用數據庫這個術語來代表他們使用的數據庫軟件。這是不正確的,它是引起混淆的根源。確切地說,數據庫軟件應稱為DBMS(數據庫管理系統)。在很大程度上說,數據庫究竟是文件還是別的什么東西并不重要,因為你并不直接訪問數據庫;你使用的是DBMS,它替你訪問數據庫。

1.1.2 表

表(table):某種特定類型數據的結構化清單。

這里關鍵的一點在于,存儲在表中的數據是一種類型的數據或一個清單。決不應該將顧客的清單與訂單的清單存儲在同一個數據庫表中。這樣做將使以后的檢索和訪問很困難。應該創建兩個表,每個清單一個表。

數據庫中的每個表都有一個名字,用來標識自己。此名字是唯一的,這表示數據庫中沒有其他表具有相同的名字。

表名的唯一性取決于多個因素,如數據庫名和表名等的結合。這表示,雖然在相同數據庫中不能兩次使用相同的表名,但在不同的數據庫中卻可以使用相同的表名。

表具有一些特性,這些特性定義了數據在表中如何存儲,如可以存儲什么樣的數據,數據如何分解,各部分信息如何命名,等等。描述表的這組信息就是所謂的模式(schema)。

1.1.5 主鍵

表中每一行都應該有可以唯一標識自己的一列(或一組列)。一個顧客表可以使用顧客編號列,而訂單表可以使用訂單ID,雇員表可以使用雇員ID或雇員社會保險號。

唯一標識表中每行的這個列(或這組列)稱為主鍵。主鍵用來表示一個特定的行。沒有主鍵,更新或刪除表中特定行很困難,因為沒有安全的方法保證只涉及相關的行。

雖然并不總是都需要主鍵,但大多數數據庫設計人員都應保證他們創建的每個表具有一個主鍵,以便于以后的數據操縱和管理。

表中的任何列都可以作為主鍵,只要它滿足以下條件:任意兩行都不具有相同的主鍵值;

每個行都必須具有一個主鍵值(主鍵列不允許NULL值)。

這里列出的規則是MySQL本身強制實施的。

除MySQL強制實施的規則外,應該堅持的幾個普遍認可的最好習慣為:不更新主鍵列中的值;

不重用主鍵列的值;

不在主鍵列中使用可能會更改的值。(例如,如果使用一個名字作為主鍵以標識某個供應商,當該供應商合并和更改其名字時,必須更改這個主鍵。)

2.1.1客戶機-服務器軟件

MySQL、Oracle以及Microsoft SQL Server等數據庫是基于客戶機—服務器的數據庫。服務器部分是負責所有數據訪問和處理的一個軟件。這個軟件運行在稱為數據庫服務器的計算機上。與數據文件打交道的只有服務器軟件。關于數據、數據添加、刪除和數據更新的所有請求都由服務器軟件完成。這些請求或更改來自運行客戶機軟件的計算機。客戶機是與用戶打交道的軟件。例如,如果你請求一個按字母順序列出的產品表,則客戶機軟件通過網絡提交該請求給服務器軟件。服務器軟件處理這個請求,根據需要過濾、丟棄和排序數據;然后把結果送回到你的客戶機軟件。

2.2.1 mysql命令行實用程序命令用;結束,換句話說,僅按Enter不執行命令;

輸入help或\h獲得幫助,也可以輸入更多的文本獲得特定命令的幫助(如,輸入help select獲得使用SELECT語句的幫助);

輸入quit或exit退出命令行實用程序。

3.1 連接

MySQL與所有客戶機—服務器DBMS一樣,要求在能執行命令之前登錄到DBMS。MySQL在內部保存自己的用戶列表,并且把每個用戶與各種權限關聯起來。

為了連接到MySQL,需要以下信息:主機名(計算機名)——如果連接到本地MySQL服務器,為localhost;

端口(如果使用默認端口3306之外的端口);

一個合法的用戶名;

用戶口令(如果需要)。

mysql -u root -p -h myserver -p 9999

3.2選擇數據庫

在你最初連接到MySQL時,沒有任何數據庫打開供你使用。在你執行任意數據庫操作前,需要選擇一個數據庫。

USE crashcourse;

3.3了解數據庫和表

SHOW DATABASES;

返回可用數據庫的一個列表。

SHOW TABLES;

返回當前選擇的數據庫內可用表的列表。

SHOW COLUMNS FROM customers;

SHOW COLUMNS要求給出一個表名( 這個例子中的FROM customers),它對每個字段返回一行,行中包含字段名、數據類型、是否允許NULL、鍵信息、默認值以及其他信息。

DESCRIBE customers;

MySQL支持用DESCRIBE作為SHOW COLUMNS FROM的一種快捷方式。

SHOW STATUS;

用于顯示廣泛的服務器狀態信息;

SHOW CREATE DATABASE;

SHOW CREATE TABLE;

分別用來顯示創建特定數據庫或表的MySQL語句;

SHOW GRANTS;

用來顯示授予用戶(所有用戶或特定用戶)的安全權限;

SHOW ERRORS;

SHOW WARNINGS;

用來顯示服務器錯誤或警告消息。

在mysql命令行實用程序中,執行以下命令可以顯示允許的SHOW語句。

HELP SHOW;

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

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

相關文章

python之工作舉例:通過復制NC文件來造數據

1 # 通過對NC文件復制來造數據2 import os, shutil3 4 # 遍歷的根目錄5 root_dir "D:\\test_data\\DISASTER\\"6 # 獲取NC文件的時間7 time_source 201612280800008 # 生成NC文件的時間9 time_new 2018122808000010 11 12 def get_dir_path(dir_name, time_str):1…

Python 3.5.2 TypeError: a bytes-like object is required, not 'str’問題解決方案

運行環境Mac Python 3.5.2 Q: http_response """\ HTTP/1.1 200 OK Hello, World! """ client_connection.sendall(http_response) TypeError: a bytes-like object is required, not str 類型錯誤,需要的是一個byte類型&#xff0…

mysql 集群架構_mysql企業常用集群架構

轉自 https://blog.csdn.net/kingice1014/article/details/760200611、mysql企業常用集群架構在中小型互聯網的企業中。mysql的集群一般就是上圖的架構。WEB節點讀取數據庫的時候讀取dbproxy服務器。dbproxy服務器通過對SQL語句的判斷來進行數據庫的讀寫分離。讀請求負載到從庫…

h.264視頻文件封裝

所謂封裝格式就是將已經編碼壓縮好的視頻軌和音頻軌按照一定的格式放到一個文件中,也就是說僅僅是一個外殼,或者大家把它當成一個放視頻軌和音頻軌的文件夾也可以。說得通俗點,視頻軌相當于飯,而音頻軌相當于菜,封裝格…

python cookbook 筆記三

分組: rows [{address: 5412 N CLARK, date: 07/01/2012},{address: 5148 N CLARK, date: 07/04/2012},{address: 5800 E 58TH, date: 07/02/2012},{address: 2122 N CLARK, date: 07/03/2012},{address: 5645 N RAVENSWOOD, date: 07/02/2012},{address: 1060 W A…

關于Vue2.0,Express實現的簡單跨域

npm install express -g 通過npm全局安裝express,之后可以通過 express --version 來查看express版本 express server 通過express server生成server項目文件 npm install 安裝server的項目依賴 可以通過執行server下的bin\www文件可以開啟服務 在www文件我們可以默…

mysql datetime類型按天查詢_mysql 時間相關sql , 按天、月、季度、年等條件進行查詢...

-- mysql查詢本季度-- 今天select * from ticket_order_detail where to_days(use_time) to_days(now());-- 7天SELECT *FROM ticket_order_detail where DATE_SUB(CURDATE(), INTERVAL 7 DAY) < date( use_time)-- 近30天SELECT *FROM ticket_order_detail where DATE_SUB…

ffmpeg分析系列

hello&#xff0c;各位好&#xff0c;本人是一名嵌入式軟件工程師&#xff0c;目前正使用ffmpeg開發一款嵌入式多媒體播放器&#xff0c;《ffmpeg分析》系列博文是本人在閱讀ffmpeg源代碼時所做的筆記&#xff0c;希望對各位有點幫助。分析過程結合下面的例程&#xff1a;http:…

Linux kernel的中斷子系統之(二):IRQ Domain介紹

返回目錄&#xff1a;《ARM-Linux中斷系統》。 總結&#xff1a;一、二概述了軟硬件不同角度的IRQ Number和HW Interrupt ID&#xff0c;這就需要他們之間架個橋梁。 三介紹了架設這種橋梁的幾種方式&#xff1a;Linear、Radix Tree和no map。 四介紹了兩種基礎數據結構描述中斷…

mysql返回yyyy mm dd_怎么把取出mysql數據庫中的yyyy-MM-dd日期轉成yyyy年MM月dd日格式...

您好&#xff0c;通過兩個個步驟可以完成轉換&#xff1a;第一步&#xff1a;日期處理可以在模板數據集中通過sql語句轉換&#xff0c;轉換方式方式如下&#xff1a;SELECT DATE_FORMAT(NOW(),%Y) YEAR輸出結果&#xff1a;2018SELECT DATE_F…

關于JS的時間控制

關于JS的時間控制實現動態效果及實例操作 <script>BOM //Bowers Object Model 瀏覽器對象模型setTimeout() // 延遲執行一次setInterval() // 間隔執行var a 300;window.setTimeout(abc(a),3000); // 自定義函數賦值function abc(i){alert(i);}//setInterv…

感動一生的幾句話

為什么80%的碼農都做不了架構師&#xff1f;>>> 很多東西就掌握在我們手中&#xff1a; 比如快樂&#xff0c;你不快樂&#xff0c;誰會同情你的悲傷&#xff1b; 比如堅強&#xff0c;你不堅強&#xff0c;誰會憐憫你的懦弱&#xff1b; 比如努力&#xff0c;你不…

mysql5.6 memcached_MySQL 5.6 安裝配置InnoDB memcached Plugin

準備工作, 安裝libmemached包&#xff0c;提供一些memcat/cp/dump命令&#xff0c;方便測試。# yum install libmemcached.x86_64 -y1. Setup required tables.mysql> source MYSQL_HOME/share/innodb_memcached_config.sqlQuery OK, 1 row affected (0.00 sec)Database cha…

Java 監聽器,國際化

1. 監聽器 1.1 概述 監聽器&#xff1a; 主要是用來監聽特定對象的創建或銷毀、屬性的變化的&#xff01; 是一個實現特定接口的普通java類&#xff01; 對象&#xff1a; 自己創建自己用 (不用監聽) 別人創建自己用 &#xff08;需要監聽&#xff09; Servlet中哪些對象需要監…

patator mysql 字典_利用patator進行子域名爆破

前言:原來朋友寫的一個子域名爆破工具挺好用,這前幾天API接口關了.痛苦萬分.自己也寫了一個類似的但是不咋穩定.特地google找了下 找到一款patator.效果和速度還是不錯的。knock的速度真心受不了啊patator是由Python寫的 不用安裝下載即可.下載地址&#xff1a;http://code.goo…

div 超出高度滾動條,超出寬度點點點

超出高度滾動條style"width:230px; height: 180px; overflow: auto;"超出寬度點點點style"width: 220px; overflow: hidden; white-space:nowrap; text-overflow:ellipsis;"轉載于:https://www.cnblogs.com/thinkingthigh/p/7603703.html

mp4(H264容器)的詳細文件格式分析

十六進制碼流分析&#xff1a; ftyp Box 00 00 00 1C: size ,28,表示此BOX有28個字節&#xff0c;表示長度的四個字節也計算在內。以下同 66 74 79 70: type,表示BOX TYPE,此處為ftyp 6D 70 34 32: 可能是兼容的格式信息&#xff0c;/mp42 00 00 00…

hdu 5925 搜索

題意&#xff1a;一個圖&#xff0c;n個障礙&#xff0c;求聯通塊 思路&#xff1a; 圖很大&#xff0c;障礙物很少。把聯通的障礙物塊摳出來&#xff0c;然后暴力。 代碼&#xff1a; #include<bits/stdc.h> using namespace std; #define MEM(a,b) memset(a,b,sizeof(a…

分析數據庫CitusDB:提供彈性計算能力

本文講的是分析數據庫CitusDB&#xff1a;提供彈性計算能力,企業數據庫市場很龐大&#xff0c;在這個領域既有Oracle這樣行家&#xff0c;也有IBM(DB2)和微軟(SQL Server)這樣的跨界巨頭。它們都與中小企業常用到的開源數據庫MySQL一樣&#xff0c;都屬于傳統關系型數據庫。似乎…

mysql不能創建innodb類型表_MYSQL have_innodb DISABLED無法創建innodb類型的表

今天在一臺MYSQL服務器上發現&#xff0c;明明用了engineinnodb創建的表&#xff0c;結果創建出來卻成了myisam的表。再看show variables like %innodb%;have_innodb 成了DISABLED。經過一番試驗&#xff0c;發現是我關閉數據庫后&#xff0c;直接刪除ibdata1文件造成的。刪除該…