? ? ?今天開始學mysql數據庫,為什么要學這個呢,因為數據庫可結構化存儲大量的數據信息,方便用戶進行有效的檢索和訪問。數據庫可有效地保持數據信息的一致性、完整性、降低數據冗余。數據庫可滿足應用的共享和安全方面的要求,把數據放在數據庫中在很多情況下也是出于安全的考慮。數據庫技術能夠方便智能化地分析,產生新的有用信息。這些都是數據庫的應用,所以學習數據庫是有必要的,這里主要使用mysql數據庫,因為它有免費的社區版,并且mysql市場占比也是比較高的,在學習之前有必要了解三個有關數據可以的概念
1.數據庫相關概念
? ? ?主要是數據庫,數據庫管理系統,SQL
? ? ?數據庫(DataBase):是存儲數據的倉庫,數據是有組織的進行存儲
? ? ?數據庫管理系統(DataBase Management System):是操縱和管理數據庫的大型軟件
? ? ?SQL(Structured Query Language):操作關系型數據庫的編程語言,定義了一套操作關系型數據庫統一標準
? ? ? 主流的關系型數據庫有很多,比如Oracle 、Mysql、 Microsoft SQL Server等,但它們都是使用SQL語言來進行操作
? ? ? ?這里我們使用mysql數據庫,安裝過程自行百度即可
2.數據模型
? ? ? (1)關系型數據庫(RDBMS)
? ? ? ? ? ?概念:建立在關系模型基礎上,由多張相互連接的二維表組成的數據庫
? ? ? 什么是二維表呢,指的就是由行和列組成的表,類似于excel表格,基于二維表存儲數據的數據庫就是關系型數據庫,否則就是非關系型數據庫。、
? ? ? ? ? ? 特點:使用表存儲數據,格式統一,便于維護;使用SQL語言操作,標準統一,使用方便
? ? (2)數據模型
? ? ? ? ? ? Mysql是關系型數據庫,基于二維表進行數據存儲,結構如下:
? ? ? ?我們可以通過mysql客戶端連接數據庫管理系統,然后通過它操作數據庫
? ? ? ?使用SQL語句,通過數據庫管理系統操作數據庫,以及數據庫中的表結構和數據
? ? ? ? 一個數據庫服務器中可以創建多個數據庫,一個數據庫中也可以包含多個表,一張表也可以包含多行記錄
3.SQL(Structured Query Language)
? ? ? ? ?是結構化查詢語言,操作關系型數據庫的語言,定義了一套操作關系型數據庫統一標準
3.1 SQL通用語法
? ? ? ? ?在學習具體的語法之前,先了解其通用語法。
? (1)SQL語句可以單行或者多行書寫,用分號結束。
? (2)SQL可以使用空格或者縮進來增強可讀性。
? ? (3)? ?Mysql數據庫的SQL語句不區分大小寫,關鍵字最好大寫。
? (4)注釋:單行:-- 注釋內容 或? # 注釋內容
? ? ? ? ? ? ? ? ? ? ? ?多行:/*注釋內容*/
3.2 SQL分類
? ? ? ? ? ?主要分為4類:DDL、DML、DQL、DCL。
? ? ? ? ?今天先學習DDL,循序漸進
3.3 DDL(Data Definition Language)
? ? ? ?數據定義語言,用來定義數據庫對象(數據庫,表,字段)
3.3.1 數據庫操作
? ? (1)查詢所有數據庫
show databases;
? ? (2)查詢當前數據庫
select database();
? ? (3)創建數據庫
create database [if not exists] 數據庫名 [default charset 字符集] [collate 排序規則];
? ? ?比如創建一個itcast 數據庫,使用數據庫默認的字符集
create database itcast;
? ? ? 在?同一個數據庫服務器中,不能創建兩個名稱相同的數據庫,否則會報錯,可以通過if not exists 參數來解決問題,數據庫不存在則創建,存在就不創建
create database if not exists it;
? ? ?再者,創建一個hellomysql數據庫,指定字符集
create database hellomysql default charset utf8mb4;
? ? (4)刪除數據庫
drop database [if exists] 數據庫名;
? ? ?如果刪除一個不存在的數據庫,會報錯,所以加上if exists參數,存在才會執行刪除操作?
? ? ?(5)切換數據庫
use 數據庫名;
? ? ? 如果想要操作某一個數據庫下的表時,就要通過該指令,切換到對應的數據庫下,否則不能進行操作。比如:
use itcast;
?3.3.2 表操作-查詢創建
? ? ? (1)查詢當前數據庫所有表
show tables;
? ? ? ?比如:
use sys;
show tables;
?
? ? ?(2)?查看指定表結構
desc 表名;
? ? ?通過這條指令,我們可以看到指定表的字段及其類型,是否可以為NULL。是否存在默認值等信息。
(3)查詢指定表的建表語句
show create table 表名;
? ? ? 這條語句主要是看建表語句的,但是部分參數我們在建表時,并沒有指定也能查詢到,因為這部分是數據庫的默認值,比如:存儲引擎、字符集等。
? ? ? ? 這里的表格是我提前創建好的,馬上就會教大家如何創建一個表。
? ? (4)創建表結構
? ? ?最后一個字段后面沒有逗號 。
? ? ?比如我們創建下面一張表:
? ? ?代碼如下,暫且先不用知道varchar是什么數據類型
create table tb_user(id int comment '編號',name varchar(50) comment '姓名',age int comment '年齡',gender varchar(1) comment '性別'
) comment '用戶表';
? ? ? ? 今天的mysql學習就先到這了,下集再見。