文章目錄
- 一、SQL 陳述句分類
- 1.DQL(資料查詢語言)
- 2.DML(資料操縱語言)
- 3.DDL(資料定義語言)
- 4.DCL(資料控制語言)
- 5.TCL(事務處理語言)
- 二、資料庫的分類
- 1.關系型資料庫
- 2.非關系型資料庫
- 3.表的理解
- 三、資料庫操作
- 1.顯示當前的資料庫
- 2.創建資料庫
- 3.選中資料庫/使用資料庫
- 4.洗掉資料庫
- 4.1語法
- 四、常用資料型別
- 1.數值型別
- 2.字串型別
- 3.日期型別
- 五、表的操作
- 1.查看表結構
- 2.創建表
- 3.洗掉表
- 六、建表小練習
- 未完待續…
接上篇 Mysql 資料庫(一)—— 初識 Mysql
本章內容介紹大綱

一、SQL 陳述句分類
??SQL陳述句有很多,我們最好分門別類,這樣容易記憶…
1.DQL(資料查詢語言)
??資料查詢語言(Data Query Language, DQL)是SQL語言中,負責進行資料查詢而不會對資料本身進行修改的陳述句,這是最基本的SQL陳述句,
我們在 看到 select … 這樣的 sql 陳述句,都是資料查詢陳述句,凡是帶有 select 關鍵字的 SQL 陳述句都是 DQL 陳述句
2.DML(資料操縱語言)
??資料操縱語言(Data Manipulation Language, DML)是SQL語言中,負責對資料庫物件運行資料訪問作業的指令集,以INSERT、UPDATE、DELETE三種指令為核心,分別代表插入、更新與洗掉,
凡是帶有INSERT、UPDATE、DELETE 關鍵字的陳述句都是 DML
insert —— 插入,等同于增
update —— 更新,等同修改
delete —— 洗掉
這個主要操作的是表中的資料
3.DDL(資料定義語言)
??資料定義語言 (Data Definition Language, DDL) 是SQL語言集中,負責資料結構定義與資料庫物件定義的語言,由creat、alter 與 drop 三個語法所組成. DDL 主要操作的是 表的結構 不是表中的資料
凡是帶有 create(增)、alter (改)、drop (刪) 關鍵字的陳述句都是 DDL
create —— 新建、等同于增
drop —— 洗掉
alter —— 修改
這個增刪改與 DML 有所不同,這個主要是對表結構進行操作.
4.DCL(資料控制語言)
??資料控制語言 (Data Control Language) 在SQL語言中,是一種可對資料訪問權進行控制的指令,它可以控制特定用戶賬戶對資料表、查看表、預存程式、用戶自定義函式等資料庫物件的控制權,對資料的權限進行控制的語言.
例如:
請求授權—— grant
撤銷授權 —— revoke
…
5.TCL(事務處理語言)
??這里的TCL可不是王牌電視,事務處理語言(Transaction Control Language),它的陳述句能確保被DML陳述句影響的表的所有行及時得以更新,是一種事務控制語言,
TCL 主要包括
事務提交 —— commit
事務回滾 —— rollback
…
??現在我們還沒學到,到我們在后面就會接觸到了,
二、資料庫的分類

??在上節課中 我們了解了 幾種資料庫軟體(mysql、sql server、Oracle …),我們來看一看資料庫的分類
1.關系型資料庫
Mysql、Sql server 、Oracle 、SqLite 屬于 關系型資料庫
把資料按照 表 的形式來進行組織(類似于Excle這種形式的).
關系型資料庫能夠對資料進行更嚴格的校驗,帶來更好的資料的完整性.
2.非關系型資料庫
Redis 、 HBase 、MongoDB …屬于 非關系型資料庫
把資料按照 檔案 的形式來進行組織,檔案和檔案之間的差別可以較大.
更靈活的組織資料,效率更高,更容易在分布式環境下使用.
那么什么是表呢?
3.表的理解
資料庫中最基本的結構是表—— table
什么是表 table ? 為什么用 表 table 進行存盤資料呢?
我們給大家看一下什么是表,相信 EXcel 大家都用過

這樣的結構 就是一個簡單的表,表是組織資料的一種形式
資料庫中是以 表格的形式來表示資料的,因為 表格比較直觀.
任何 表 都有行和列
行(row): 被稱為資料/ 記錄
列 (column): 被稱為欄位

??在這個表中 列的資料就表示欄位,有 姓名欄位、性別欄位、年齡欄位,每一行的資料表示記錄.
了解一下,每個欄位都有 欄位名、資料型別、約束條件等屬性.
欄位名: 只是一個普通的名字,見名知意就行了.
資料型別: 字串型別,數字、日期等型別,在后面我們會詳細介紹
約束:約束也有很多,其中有一個叫做唯一性約束,這種約束添加后,該欄位的資料不能重復.
那我們怎么查看 某個資料庫中的 表呢?
1.查看我們有哪些資料庫
2.選中我們想要查看的資料庫
3.查看資料庫中的表
三、資料庫操作
1.顯示當前的資料庫
mysql> show databases;

2.創建資料庫
mysql> create database [資料庫名]


??展示資料庫與 創建資料庫 在上一節課中我們已經具體的講過了,我們重點來看 洗掉資料庫
3.選中資料庫/使用資料庫
use [ 資料庫名 ]
??要想對資料庫進行更具體的操作 (建表、查詢、…)就需要先確定是針對那個資料庫進行的.

例如: 我們在查詢完資料庫之后,希望選中 java100 這個資料庫.
使用use java100;

??出現 Database changed 則選中成功.當前的資料庫已經被選中,后續的操作都是針對這個資料庫來展開的.
4.洗掉資料庫
4.1語法
drop database [資料庫名];

說明:
??資料庫洗掉后,內部看不到對應的資料庫,里邊的表和資料全部被洗掉.
我們對這個資料庫進行簡單的洗掉操作…
我們在這個資料庫中新建了一個 rain7 的資料庫

然后我們輸入
drop database rain7 ;
進行刪庫操作

再次查看資料庫

rain7 的資料庫 已經成功被刪去了…
在這里 我們希望大家牢牢記住
?? 一旦洗掉資料庫,這里的 資料通過常規的手段就找不回來了!!!所以洗掉資料庫是一個非常危險的操作!!~~
??以后在作業中,無論如何都不要使用 drop database 操作,尤其是針對線上環境~
四、常用資料型別
1.數值型別
分為整形 與 浮點型

擴展資料
數值型別可以指定為無符號(unsigned),表示不取負數,
對于整型型別的范圍:
1.有符號范圍:-2 ^ (型別位元組數 * 8-1)到2 ^ (型別位元組數 * 8-1)-1,如int是4位元組,就是-2^ 31 到 2^31-1
2.無符號范圍:0到2 ^ (型別位元組數*8)-1,如int就是2 ^ 32-1
??盡量不使用unsigned,對于int型別可能存放不下的資料,int unsigned同樣可能存放不下,與其如此,還不如設計時,將int型別提升為bigint型別,
bit [ M () ]
??bit 就表示一個二進制的資料,在方括號里我們可以指定該資料占多少個bit 位,M()就來指定有多少位,如果不指定的話,默認就為 1.
| 資料型別 | 對應Java型別 |
|---|---|
| tinyint | byte |
| smallint | short |
| int | Integer |
| bigint | long |
| float(M,D) | float |
| double(M,D) | double |
| decimal(M,D) | bigdecimal |
float (M,D)的含義
float (3,1)—— 有效數字是 3 位,小數點后保留一位.
95.5 合法
25.1 合法
101.2 不合法
decimal 在之前我們沒有接觸過
??Java中的 float 和 double 都是有問題的,不能精確表示一些資料 ~~ 遵循 IEEE754 標準,受限于浮點數在記憶體中的表示.
??后來Java為了解決這個問題,就有了 bigdecimal,內部使用其他方式來存盤表示浮點數,就能夠做到更精確的表示~~
??所以在 sql 中也有一個 decimal 來對應Java中的 bigdecimal.
2.字串型別

varchar (size) 在() 中我們可以規定 字串的大小,具體是字符的個數~~
blob 針對的型別主要是 二進制形式的文本資料
3.日期型別

??現在我們寫代碼優先使用 datetime 這個時間戳,因為 表示的范圍更大
我們如何使用時間型別?

五、表的操作
需要操作資料庫中的表時,需要先使用該資料庫
use db_test;
1.查看表結構
desc 表名;
我們來使用一下該條命令陳述句
1.選中資料庫,查看該資料庫中的所有 table
2.查看表結構
表結構的具體解釋

2.創建表
create table table_name(欄位 型別,欄位 型別 , …);
語法:

與其他編程語言 定義的不一樣,在MySQL中 型別放在 欄位的后面.
java 中可以用 // 表示注釋
mysql中可以用 comment 表示注釋說明,也可以用 - - 表示注釋~
我們可以操作一下,我們想要添加一個作業人員表,以下圖為例,同樣在java100 的資料庫中添加該表

1.查找資料庫,選中Java100;
2.創建一個 作業人員表,要求有姓名,年齡,性別等屬性~
3.查看表結構
3.洗掉表
drop table table_name;

我們再次來練習,洗掉我們在之前操作建立的 workers 這個表
1.洗掉 worker 這個表
2.查看洗掉成功
此時 workers 已經不存在.
六、建表小練習
給大家一個小練習,來熟悉 MySQL的基本操作吧
有一個商店的資料,記錄客戶及購物情況,有以下三個表組成:
商品goods ( 商品編號 goods_id,商品名 goods_name , 單價 unitprice , 商品類別 category , 供應商 provider )
客戶 customer ( 客戶號 customer_id , 姓名 name ,住址 address ,郵箱email,性別 sex ,身份證 card_id )
購買 purchase ( 購買訂單號 order_id , 客戶號 customer_id ,商品號 goods_id ,購買數量 nums ).
??資料庫還有表的 增刪查改 操作,我們會在下一節中集中介紹.
??好了今天的知識就分享到這里,希望大家多多練習,熟練掌握,感謝大家的欣賞與關注!!
??下一篇~ Mysql 資料庫(三)—— 表的增刪查改(CRUD) 敬請期待~~
謝謝欣賞!
未完待續…
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/292938.html
標籤:java










