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

Mysql數(shù)據(jù)庫基礎(chǔ)知識總復(fù)習(xí)

這篇具有很好參考價值的文章主要介紹了Mysql數(shù)據(jù)庫基礎(chǔ)知識總復(fù)習(xí)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

前言

小亭子正在努力的學(xué)習(xí)編程,接下來將開啟javaEE的學(xué)習(xí)~~

分享的文章都是學(xué)習(xí)的筆記和感悟,如有不妥之處希望大佬們批評指正~~

同時如果本文對你有幫助的話,煩請點贊關(guān)注支持一波, 感激不盡~~

目錄

前言

數(shù)據(jù)庫基礎(chǔ)知識

數(shù)據(jù),數(shù)據(jù)庫,數(shù)據(jù)庫管理系統(tǒng),數(shù)據(jù)庫系統(tǒng)

數(shù)據(jù)庫的發(fā)展階段

?數(shù)據(jù)庫系統(tǒng)的結(jié)構(gòu)

數(shù)據(jù)模型

一、概念模型

邏輯結(jié)構(gòu)?

關(guān)系模型

關(guān)系代數(shù)

數(shù)據(jù)庫的分類

配置初始化文件

常用的dos代碼

注意:

SQL分類

表設(shè)計

一對一

一對多

多對多

常用數(shù)據(jù)類型

數(shù)值類型

字符串類型

日期類型

?范式

第一范式

第二范式

第三范式

數(shù)據(jù)庫的操作

顯示當(dāng)前數(shù)據(jù)庫

語法:

創(chuàng)建數(shù)據(jù)庫

語法:

說明:

示例:

使用數(shù)據(jù)庫

語法:

刪除數(shù)據(jù)庫

語法:

說明:

示例:

表的操作

使用數(shù)據(jù)庫

查看表結(jié)構(gòu)

創(chuàng)建表

刪除表

表的增刪改查(CRUD)

CRUD

新增數(shù)據(jù)

語法:

示例:

單行數(shù)據(jù) +全列插入

多行數(shù)據(jù)+指定列插入

查詢數(shù)據(jù)

全列查詢

指定列查詢

查詢字段為表達式

設(shè)置別名

去重查詢

排序查詢

where條件查詢

分頁查詢

聚合函數(shù)查詢

GROUP BY子句

HAVING 子句

聯(lián)合查詢

修改數(shù)據(jù)

語法

示例

刪除數(shù)據(jù)

語法

示例

數(shù)據(jù)庫約束

索引

事務(wù)


先來個語法總結(jié)

--顯示當(dāng)前數(shù)據(jù)庫
show databases

-- 使用數(shù)據(jù)庫
use xxx;

--創(chuàng)建數(shù)據(jù)庫
create database [if not exists] 數(shù)據(jù)庫名?

--查詢數(shù)據(jù)庫下表
show tables;

-- 顯示表
show table;

-- 創(chuàng)建表
create table xxx;

-- 刪除表
drop table xxx;

--查看表結(jié)構(gòu)
describe xxx; 或 desc xxx;

--修改表名
alter table <表名> rename <表名>;

--修改表字段信息
alter table 表名?change 字段名???修改后的列名和屬性;

--增加表字段信息
alter table 表名 add??字段名及屬性

--刪除一個表字段
alter table 表名 drop 字段名;

--插入數(shù)據(jù)
insert into 表名 value(根據(jù)表結(jié)構(gòu)插入數(shù)據(jù)內(nèi)容 );

--插入數(shù)據(jù),指定屬性
insert into 表名?(列名) value(根據(jù)表結(jié)構(gòu)插入數(shù)據(jù)內(nèi)容 );

--修改數(shù)據(jù)
update 表 set 字段1=value1, 字段2=value2... where 條件

--刪除數(shù)據(jù)
delete from 表 where 條件?

--查看索引
show index from 表名;

--創(chuàng)建索引 對于非主鍵、非唯一約束、非外鍵的字段,可以創(chuàng)建普通索引
create index 索引名 on 表名(字段名);

--刪除索引
drop index 索引名 on 表名;

--事務(wù)
那就讓這里兩個操作要么同時成功,要么同時失敗。這就是事務(wù)的邏輯。
(1)開啟事務(wù):start transaction;
(2)中間執(zhí)行多條SQL語句
(3)回滾或提交:rollback/commit;

-- 全列查詢
select * from 表

-- 指定列查詢
select 字段1,字段2... from 表

-- 查詢表達式字段
select 字段1+100,字段2+字段3 from 表

-- 別名
select 字段1 別名1, 字段2 別名2 from 表

-- 去重DISTINCT
select distinct 字段 from 表

-- 排序ORDER BY
select * from 表 order by 排序字段

-- 條件查詢where:
(1)比較運算符 (2)BETWEEN ... AND ... (3)IN (4)IS NULL (5)LIKE (6)AND (7)OR(8)NOT
select * from 表 where 條件
>, >=, <, <=,=,<=>(等于),!=, <>
between a and b,IS NULL,IS NOT NULL
IN (option, ...)?? ?如果是 option 中的任意一個,返回 TRUE(1)
LIKE?? ?模糊匹配。% 表示任意多個(包括 0 個)任意字符;_ 表示任意一個字符
邏輯運算符:and,or,not

--分頁查詢limit--從 s 開始,篩選 n 條結(jié)果,比第二種用法更明確,建議使用
select ... from 表名[where...][order by..] limit s offset n;

--聚合函數(shù)
COUNT([DISTINCT] expr)(計數(shù)),SUM([DISTINCT] expr),AVG([DISTINCT] expr),MAX([DISTINCT] expr),MIN([DISTINCT] expr)
select role,max(salary),min(salary),avg(salary) from emp group by role;

--group by ?分組查詢 having 條件過濾
GROUP BY 子句進行分組以后,需要對分組結(jié)果再進行條件過濾時,不能使用 WHERE 語句,而需要用HAVING
顯示平均工資低于1500的角色和它的平均工資
select role,max(salary),min(salary),avg(salary) from emp group by role
having avg(salary)<1500;

--聯(lián)合查詢
--內(nèi)連接
select 字段 from 表1 別名1 [inner] join 表2 別名2 on 連接條件 and 其他條件;
select 字段 from 表1 別名1,表2 別名2 where 連接條件 and 其他條件;

-- 左外連接,表1完全顯示
select 字段名 from 表名1 left join 表名2 on 連接條件;

-- 右外連接,表2完全顯示
select 字段 from 表名1 right join 表名2 on 連接條件;

--自連接,自連接是指在同一張表連接自身進行查詢。
select 字段 from 表1 別名1 join 表1 別名2 on 連接條件??join 表2?別名1 on 條件?join 表12別名2 .......and 其他條件;

--子查詢
-- 單行子查詢
select ... from 表1 where 字段1 = (select ... from ...);

--多行子查詢
-- [NOT] IN
select ... from 表1 where 字段1 in (select ... from ...);
-- [NOT] EXISTS
select ... from 表1 where exists (select ... from ... where 條件);

-- 臨時表:form子句中的子查詢
select ... from 表1, (select ... from ...) as tmp where 條件
在from子句中使用子查詢:子查詢語句出現(xiàn)在from子句中。這里要用到數(shù)據(jù)查詢的技巧,把一個子查詢當(dāng)做一個臨時表使用。

----在from子句中使用子查詢:子查詢語句出現(xiàn)在from子句中。這里要用到數(shù)據(jù)查詢的技巧,把一個子查詢當(dāng)做一個臨時表使用。
-- UNION:去除重復(fù)數(shù)據(jù)(操作符用于取得兩個結(jié)果集的并集。當(dāng)使用該操作符時,會自動去掉結(jié)果集中的重復(fù)行。)
select ... from ... where 條件
union
select ... from ... where 條件

-- UNION ALL:不去重(該操作符用于取得兩個結(jié)果集的并集。當(dāng)使用該操作符時,不會去掉結(jié)果集中的重復(fù)行)
select ... from ... where 條件
union all
select ... from ... where 條件
使用UNION和UNION ALL時,前后查詢的結(jié)果集中,字段需要一致


--數(shù)據(jù)庫約束
NOT NULL - 指示某列不能為空
UNIQUE - 保證某列的每行必須有唯一,不重復(fù)的。
DEFAULT - 規(guī)定沒有給列賦值時的默認(rèn)值。
PRIMARY KEY - 主鍵約束,與?NOT NULL 和 UNIQUE 的結(jié)合。確保某列(或兩個列多個列的結(jié)合)有唯一標(biāo)識,有助于更容易更快速地找到表中的一個特定的記錄。
FOREIGN KEY - 外鍵約束,保證一個表中的數(shù)據(jù)匹配另一個表中的值的參照完整性。
CHECK - 保證列中的值符合指定的條件。對于MySQL數(shù)據(jù)庫,對CHECK子句進行分析,但是忽略CHECK子句。

數(shù)據(jù)庫基礎(chǔ)知識

數(shù)據(jù),數(shù)據(jù)庫,數(shù)據(jù)庫管理系統(tǒng),數(shù)據(jù)庫系統(tǒng)

Mysql數(shù)據(jù)庫基礎(chǔ)知識總復(fù)習(xí)

數(shù)據(jù)庫的發(fā)展階段

Mysql數(shù)據(jù)庫基礎(chǔ)知識總復(fù)習(xí)

?數(shù)據(jù)庫系統(tǒng)的結(jié)構(gòu)

Mysql數(shù)據(jù)庫基礎(chǔ)知識總復(fù)習(xí)

?三級結(jié)構(gòu)

Mysql數(shù)據(jù)庫基礎(chǔ)知識總復(fù)習(xí)

數(shù)據(jù)庫系統(tǒng)的二級映像
1.外模式/模式映像:保證邏輯獨立性
2.模式/內(nèi)模式映像:保證物理獨立性
?

數(shù)據(jù)模型

一、概念模型

1.相關(guān)術(shù)語
Mysql數(shù)據(jù)庫基礎(chǔ)知識總復(fù)習(xí)

2.實體型之間的聯(lián)系

1.一對一聯(lián)系(1:1)
兩個方向都是 1:1
例:班級和班主任
2.一對多聯(lián)系(1:n)
一個方向是 1:1,另一個方向是 1:n
例:學(xué)生和班主任
3.多對多聯(lián)系(m:n)
兩個方向都是 1:n
例:學(xué)生和課程

3.E-R 圖

矩形表示實體;橢圓表示屬性;菱形表示聯(lián)系;無向邊;聯(lián)系類型
例:①班級和班主任;②學(xué)生和班主任;③學(xué)生和課程

Mysql數(shù)據(jù)庫基礎(chǔ)知識總復(fù)習(xí)

邏輯結(jié)構(gòu)?

1.結(jié)構(gòu)
樹型結(jié)構(gòu)

Mysql數(shù)據(jù)庫基礎(chǔ)知識總復(fù)習(xí)

?2.特點
(1)一個模型有且只有一個節(jié)點沒有雙親節(jié)點,這個節(jié)點稱為根節(jié)點
(2)根節(jié)點以外的其他節(jié)點有且只有一個雙親節(jié)點
(3)父子節(jié)點之間的聯(lián)系是一對多聯(lián)系(1∶ n)

網(wǎng)型結(jié)構(gòu)
Mysql數(shù)據(jù)庫基礎(chǔ)知識總復(fù)習(xí)

?2.特點
(1)允許一個以上的節(jié)點沒有雙親節(jié)點
(2)允許一個節(jié)點有多個雙親節(jié)點
(3)節(jié)點之間存在多種聯(lián)系(m:n)

關(guān)系模型

(一)基本概念
1.關(guān)系:二維表
2.屬性:列、字段;元數(shù)
3.域:值域
4.元組:行、記錄
5.分量:屬性值
如,(01001,趙乾,女,講師,計算機, 6000)中“01001”為一個分量
6.關(guān)系模式:二維表結(jié)構(gòu)
如, T(TNo, TN, Sex, Prof, Dept, Sal)

Mysql數(shù)據(jù)庫基礎(chǔ)知識總復(fù)習(xí)

?(二)關(guān)系的性質(zhì)
1.每一列是同質(zhì)的
2.不同列有不同的名字
3.列的順序可以任意交換
4.行的順序可任意交換
5.不允許出現(xiàn)完全一樣的行
6.不允許出現(xiàn)合并單元格

三)關(guān)系模型的完整性約束
有 3 類:實體完整性、參照完整性、用戶定義完整性
(一)關(guān)系的碼

Mysql數(shù)據(jù)庫基礎(chǔ)知識總復(fù)習(xí)

?(二)實體完整性
原則:①有主碼(不空)②不同元組的主碼不重復(fù)

(三)參照完整性
原則: R2 表的外鍵 X 的取值,參照 R1 表的主鍵值


(四)用戶自定義完整性
原則:事先定義值域
?

關(guān)系代數(shù)

一) 傳統(tǒng)的集合運算
1.并

Mysql數(shù)據(jù)庫基礎(chǔ)知識總復(fù)習(xí)

2 .差

Mysql數(shù)據(jù)庫基礎(chǔ)知識總復(fù)習(xí)

3.交
Mysql數(shù)據(jù)庫基礎(chǔ)知識總復(fù)習(xí)

?4.廣義笛卡爾積

?Mysql數(shù)據(jù)庫基礎(chǔ)知識總復(fù)習(xí)

Mysql數(shù)據(jù)庫基礎(chǔ)知識總復(fù)習(xí)

?二) 專門的代數(shù)運算

Mysql數(shù)據(jù)庫基礎(chǔ)知識總復(fù)習(xí)
1.選擇 【根據(jù)條件得到行】

?選擇條件:性別? 女

結(jié)果:

Mysql數(shù)據(jù)庫基礎(chǔ)知識總復(fù)習(xí)

2.投影 【 根據(jù)條件得到列】

投影條件:姓名,系別

投影結(jié)果:Mysql數(shù)據(jù)庫基礎(chǔ)知識總復(fù)習(xí)
3.連接
連接運算是二目運算, 它從兩個關(guān)系的廣義笛卡兒積中選取滿足連接條件的
元組, 組成新的關(guān)系。
( 1) 等值連接
規(guī)則: ①結(jié)果(字段-兩個關(guān)系的字段和) (記錄-等值屬性值相等, 拼左右)
( 2) 自然連接
規(guī)則: ①兩表有相同的屬性②結(jié)果( 字段-相同屬性列只保留一列) ( 記錄-
相同屬性做等值連接)

4.除
Mysql數(shù)據(jù)庫基礎(chǔ)知識總復(fù)習(xí)

?具體算法可以看這篇http://t.csdn.cn/D4vj3


數(shù)據(jù)庫的分類

數(shù)據(jù)庫分為關(guān)系型數(shù)據(jù)庫和非關(guān)系型數(shù)據(jù)庫

關(guān)系型數(shù)據(jù)庫 非關(guān)系型數(shù)據(jù)庫
使用SQL 不強制要求,一般不基于SQL實現(xiàn)
事務(wù)支持 支持 不支持
復(fù)雜操作 支持 不支持
海量讀寫操作 效率低 效率高
基本結(jié)構(gòu) 基于表和列,結(jié)構(gòu)固定 靈活性比較高
使用場景 業(yè)務(wù)方面的OLTP系統(tǒng) 用于數(shù)據(jù)的緩存、或基于統(tǒng)計分析的OLAP系統(tǒng)

配置初始化文件

1. 在MySQL根目錄下創(chuàng)建初始化文件my.ini,即D:\Tools\mysql-5.7.27-winx64\my.ini。內(nèi)容
如下:
[mysql]
# 設(shè)置mysql客戶端默認(rèn)字符集
default-character-set=utf8
[mysqld]
#設(shè)置3306端口
port=3306
# 設(shè)置mysql的安裝目錄
basedir=D:/Tools/mysql-5.7.27-winx64
# 設(shè)置mysql數(shù)據(jù)庫的數(shù)據(jù)的存放目錄
datadir=D:/Tools/mysql-5.7.27-winx64/data
# 允許最大連接數(shù)
max_connections=200
# 服務(wù)端使用的字符集默認(rèn)為8比特編碼的latin1字符集
character-set-server=utf8
# 創(chuàng)建新表時將使用的默認(rèn)存儲引擎
default-storage-engine=innodb

2. 將以上 basedir 和 datadir 后的內(nèi)容替換成自己的路徑。
3. 注意:需要保存為ANSI編碼。方法一:使用記事本打開,保存/另
法二:使用Notpad++打開,點擊編碼->轉(zhuǎn)為ANSI編碼->保存。

常用的dos代碼

--連接服務(wù)器

mysql -u root -p
要求輸入密碼,沒有設(shè)置密碼則直接回車
進入MySQL命令行以后,可以看到 mysql>
-- 使用mysql數(shù)據(jù)庫
use mysql;
-- 更新用戶表的root賬戶,設(shè)置為任意ip都可以訪問,密碼修改為123456
update user set host="%",authentication_string=password('root') where
user="root";
-- 刷新權(quán)限
flush privileges;
--退出

quit;

注意:

  • 注釋的寫法 在前面加 --
  • sql語句不區(qū)分大小寫,寫大寫和小寫都行

SQL分類

DDL數(shù)據(jù)定義語言,用來維護存儲數(shù)據(jù)的結(jié)構(gòu)
代表指令: create, drop, alter
DML數(shù)據(jù)操縱語言,用來對數(shù)據(jù)進行操作
代表指令: insert,delete,update
DML中又單獨分了一個DQL,數(shù)據(jù)查詢語言,代表指令: select
DCL數(shù)據(jù)控制語言,主要負(fù)責(zé)權(quán)限管理和事務(wù)
代表指令: grant,revoke,commit
?

表設(shè)計

一對一

Mysql數(shù)據(jù)庫基礎(chǔ)知識總復(fù)習(xí)

一對多

Mysql數(shù)據(jù)庫基礎(chǔ)知識總復(fù)習(xí)

多對多

Mysql數(shù)據(jù)庫基礎(chǔ)知識總復(fù)習(xí)

常用數(shù)據(jù)類型

數(shù)值類型

分為整型和浮點型

數(shù)據(jù)類型? 大小? 說明? 對應(yīng)java類型
BIT[ (M) ] M指定位數(shù),默認(rèn)為1 二進制數(shù),M范圍從164,
存儲數(shù)值范圍從
02^M-1
常用Boolean對應(yīng)BIT,此時默認(rèn)是1位,即只能存01
TINYINT? 1字節(jié)? Byte
SMALLINT? 2字節(jié)? Short
INT? 4字節(jié)? Integer
BIGINT? 8字節(jié)? Long
FLOAT(M, D)? 4字節(jié)? 單精度,M指定長度,D指定小數(shù)位數(shù)。會發(fā)生精度丟失? Float
DOUBLE(M,D) 8字節(jié)? Double
DECIMAL(M,D) M/D最大值+2 雙精度,M指定長度,D表示小數(shù)點位數(shù)。精確數(shù)值? BigDecimal
NUMERIC(M,D) M/D最大值+2? DECIMAL一樣? BigDecimal

補充:

  • 數(shù)值類型可以指定為無符號(unsigned),表示不取負(fù)數(shù)
  • 1字節(jié)(bytes)= 8bit。
  • 對于整型類型的范圍:

1. 有符號范圍:-2^(類型字節(jié)數(shù)*8-1)到2^(類型字節(jié)數(shù)*8-1)-1,如int是4字節(jié),是-2^31到2^31-1

2. 無符號范圍:0到2^(類型字節(jié)數(shù)*8)-1,如int就是2^32-1

盡量不使用unsigned,對于int類型可能存放不下的數(shù)據(jù),int unsigned同樣可能存放不下,與其如此,還不如設(shè)計時,將int類型提升為bigint類型
?

字符串類型

數(shù)據(jù)類型 大小 說明 對應(yīng)java類型
VARCHAR (SIZE) 0-65,535字節(jié) 可變長度字符串 String
TEXT 0-65,535字節(jié) 長文本數(shù)據(jù) String
MEDIUMTEXT 0-16 777 215字節(jié) 中等長度文本數(shù)據(jù) String
BLOB 0-65,535字節(jié) 二進制形式的長文本數(shù)據(jù) byte[]

說明:varchar 可變長度是指? 假設(shè) 設(shè)置了1000個字符的大小,實際占用了100個,那么就只開辟100個空間。不可變長度就是設(shè)置了1000,空間占用就是1000,沒用上的就空著但是還是占用了。

日期類型

數(shù)據(jù)類型
說明 對應(yīng)java類型
DATETIME 8 字 節(jié) 范圍從1000到9999年,不會進行時區(qū)的
檢索及轉(zhuǎn)換。
java.util.Date、
java.sql.Timestamp
TIMESTAMP 4 字 節(jié) 范圍從1970到2038年,自動檢索當(dāng)前時
區(qū)并進行轉(zhuǎn)換。
java.util.Date、
java.sql.Timestamp

補充:時間戳默認(rèn)1970年1月1日,(時間紀(jì)元)有興趣的自行百度。


?范式

第一范式

第一范式規(guī)定表中的每個列都應(yīng)該是不可分割的最小單元。比如以下表中的 address 字段就不是不可分割的最小單元。(原子不可再分)

不滿足的表:address 還可以拆分為國家和城市

Mysql數(shù)據(jù)庫基礎(chǔ)知識總復(fù)習(xí)

滿足的表?

Mysql數(shù)據(jù)庫基礎(chǔ)知識總復(fù)習(xí)

第二范式

第二范式是在滿足第一范式的基礎(chǔ)上,規(guī)定表中的非主鍵列不存在對主鍵的部分依賴,也就是說每張表只描述一件事情.

以下訂單表就不滿足第二范式,它可以拆分為兩張獨立的表:訂單表和商品表。

Mysql數(shù)據(jù)庫基礎(chǔ)知識總復(fù)習(xí)

滿足的表

Mysql數(shù)據(jù)庫基礎(chǔ)知識總復(fù)習(xí)

第三范式

第三范式是在滿足第一范式和第二范式的基礎(chǔ)上,規(guī)定表中的列不存在對非主鍵列的傳遞依賴。

(保證每列都和主鍵直接相關(guān))

比如以下的訂單表中的顧客名稱就不符合第三范式,因為它存在了對非主鍵顧客編號的依賴

Mysql數(shù)據(jù)庫基礎(chǔ)知識總復(fù)習(xí)

滿足的表

Mysql數(shù)據(jù)庫基礎(chǔ)知識總復(fù)習(xí)

使用數(shù)據(jù)庫三范式的優(yōu)勢是:表的結(jié)構(gòu)更簡單、優(yōu)雅,表的邏輯和條理性更強,并且使用三范式可以很大程度的減少表中的冗余數(shù)據(jù),很好的節(jié)省了數(shù)據(jù)庫的存儲資源。


數(shù)據(jù)庫的操作

顯示當(dāng)前數(shù)據(jù)庫

語法:

show databases

創(chuàng)建數(shù)據(jù)庫

語法:

CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [,
create_specification] ...]
create_specification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name

說明:

  • 大寫的表示關(guān)鍵字
  • [] 是可選項
  • CHARACTER SET: 指定數(shù)據(jù)庫采用的字符集
  • COLLATE: 指定數(shù)據(jù)庫字符集的校驗規(guī)則

示例:

1.創(chuàng)建名為db_test1 的數(shù)據(jù)庫

CREATE DATABASE db_test1

2.如果系統(tǒng)沒有 db_test2 的數(shù)據(jù)庫,則創(chuàng)建一個名叫 db_test2 的數(shù)據(jù)庫,如果有則不創(chuàng)建

CREATE DATABASE IF NOT EXISTS db_test2

3.如果系統(tǒng)沒有 db_test 的數(shù)據(jù)庫,則創(chuàng)建一個使用utf8mb4字符集的 db_test 數(shù)據(jù)庫,如果有則不創(chuàng)建

CREATE DATABASE IF NOT EXISTS db_test CHARACTER SET utf8mb4;
?

使用數(shù)據(jù)庫

語法:

use 數(shù)據(jù)庫名

刪除數(shù)據(jù)庫

語法:

DROP DATABASE [IF EXISTS] db_name

說明:

數(shù)據(jù)庫刪除以后,內(nèi)部看不到對應(yīng)的數(shù)據(jù)庫,里邊的表和數(shù)據(jù)全部被刪除
?

示例:

drop database if exists db_test1
drop database if exists db_test2

表的操作

-- 顯示
show table;
-- 創(chuàng)建
create table xxx;
-- 使用
use xxx;
-- 刪除
drop table xxx;

--查看表結(jié)構(gòu)

describe xxx; 或 desc xxx;

--查詢數(shù)據(jù)庫下表

show tables;

--修改表名

alter table <表名> rename <表名>;

--修改表字段信息

alter table 表名?change 字段名? ?修改后的列名和屬性;

--增加表字段信息

alter table 表名 add? 字段名及屬性

--刪除一個表字段

alter table 表名 drop 字段名;

使用數(shù)據(jù)庫

操作表之前需要先使用該數(shù)據(jù)庫

user 數(shù)據(jù)庫名

查看表結(jié)構(gòu)

desc? 表名

示例+說明?

Mysql數(shù)據(jù)庫基礎(chǔ)知識總復(fù)習(xí)

創(chuàng)建表

語法

CREATE TABLE table_name (
field1 datatype,
field2 datatype,
field3 datatype
);

示例

create table stu_test (
id int,
name varchar(20) comment '姓名',
password varchar(50) comment '密碼',
age int,
sex varchar(1),
birthday timestamp,
amout decimal(13,2),
resume text
);

刪除表

語法

DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...

示例

-- 刪除 stu_test 表
drop table stu_test;
-- 如果存在 stu_test 表,則刪除 stu_test 表
drop table if exists stu_test;

表的增刪改查(CRUD)

CRUD

CRUD 即增加(Create)、查詢(Retrieve)、更新(Update)、刪除(Delete)四個單詞的首字母縮寫

新增數(shù)據(jù)

語法:

INSERT [INTO] table_name
[(column [, column] ...)]
VALUES (value_list) [, (value_list)] ...
value_list: value, [, value] ...

示例:

-- 創(chuàng)建一張學(xué)生表
DROP TABLE IF EXISTS student;
CREATE TABLE student (
id INT,
sn INT comment '學(xué)號',
name VARCHAR(20) comment '姓名',
qq_mail VARCHAR(20) comment 'QQ郵箱'
);

單行數(shù)據(jù) +全列插入

-- 插入兩條記錄,value_list 數(shù)量必須和定義表的列的數(shù)量及順序一致
INSERT INTO student VALUES (100, 10000, '唐三藏', NULL);
INSERT INTO student VALUES (101, 10001, '孫悟空', '11111');

多行數(shù)據(jù)+指定列插入

-- 插入兩條記錄,value_list 數(shù)量必須和指定列數(shù)量及順序一致
INSERT INTO student (id, sn, name) VALUES
(102, 20001, '曹孟德'),
(103, 20002, '孫仲謀');

查詢數(shù)據(jù)

語法

SELECT
[DISTINCT] {* | {column [, column] ...}
[FROM table_name]
[WHERE ...]
[ORDER BY column [ASC | DESC], ...]
LIMIT ...

全列查詢

--通常情況下 使用 * 進行全列查詢

SELECT * FROM exam_result;

指定列查詢

--指定列的順序不需要按定義表的順序來

SELECT id ,name FROM?? exam_result;

查詢字段為表達式

-- 表達式不包含字段
SELECT id, name, 10 FROM exam_result;
-- 表達式包含一個字段
SELECT id, name, english + 10 FROM exam_result;
-- 表達式包含多個字段
SELECT id, name, chinese + math + english FROM exam_result;

設(shè)置別名

為查詢結(jié)果中的列指定別名,表示返回的結(jié)果集中,以別名作為該列的名稱

SELECT column [AS] alias_name [...] FROM table_name;

示例:

-- 結(jié)果集中,表頭的列名=別名
SELECT id, name, chinese + math + english 總分 FROM exam_result;

去重查詢

使用DISTINCT關(guān)鍵字對某列數(shù)據(jù)進行去重
示例:

SELECT DISTINCT math FROM exam_result;

排序查詢

  • ASC 為升序(從小到大)
  • ?DESC 為降序(從大到?。?/strong>
  • 默認(rèn)為 ASC
  • null數(shù)據(jù)在排序中,視為最小的值
  • 排序條件可以是表達式或者子查詢

SELECT ... FROM table_name [WHERE ...]
ORDER BY column [ASC|DESC], [...];

示例:

-- 查詢同學(xué)及總分,由高到低
SELECT name, chinese + english + math FROM exam_result
ORDER BY chinese + english + math DESC;
SELECT name, chinese + english + math total FROM exam_result
ORDER BY total DESC;
?

總結(jié)

-- 全列查詢
select * from 表
-- 指定列查詢
select 字段1,字段2... from 表
-- 查詢表達式字段
select 字段1+100,字段2+字段3 from 表
-- 別名
select 字段1 別名1, 字段2 別名2 from 表
-- 去重DISTINCT
select distinct 字段 from 表
-- 排序ORDER BY
select * from 表 order by 排序字段
-- 條件查詢WHERE:
-- (1)比較運算符 (2)BETWEEN ... AND ... (3)IN (4)IS NULL (5)LIKE (6)AND (7)OR
(8)NOT
select * from 表 where 條件
?

where條件查詢

比較運算符

>, >=, <, <= 大于,大于等于,小于,小于等于
= 等于,NULL 不安全,例如 NULL = NULL 的結(jié)果是 NULL
<=> 等于,NULL 安全,例如 NULL <=> NULL 的結(jié)果是 TRUE(1)
!=, <> 不等于
BETWEEN a0 AND
a1
范圍匹配,[a0, a1],如果 a0 <= value <= a1,返回 TRUE(1)
IN (option, ...) 如果是 option 中的任意一個,返回 TRUE(1)
IS NULL 是 NULL
IS NOT NULL 不是 NULL
LIKE 模糊匹配。% 表示任意多個(包括 0 個)任意字符;_ 表示任意一個字

邏輯運算符

運算符 說明
AND 多個條件必須都為 TRUE(1),結(jié)果才是 TRUE(1)
OR 任意一個條件為 TRUE(1), 結(jié)果為 TRUE(1)
NOT 條件為 TRUE(1),結(jié)果為 FALSE(0)

注意:

1. WHERE條件可以使用表達式,但不能使用別名。
2. AND的優(yōu)先級高于OR,在同時使用時,需要使用小括號()包裹優(yōu)先執(zhí)行的部分

分頁查詢

用limit關(guān)鍵字

語法:

-- 起始下標(biāo)為 0
-- 從 0 開始,篩選 n 條結(jié)果
SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT n;
-- 從 s 開始,篩選 n 條結(jié)果
SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT s, n;
-- 從 s 開始,篩選 n 條結(jié)果,比第二種用法更明確,建議使用
SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT? s OFFSET n;

示例:

按 id 進行分頁,每頁 3 條記錄,分別顯示 第 1、2、3 頁
--第 1 頁
SELECT id, name, math, english, chinese FROM exam_result ORDER BY id LIMIT 3
OFFSET 0;
-- 第 2 頁
SELECT id, name, math, english, chinese FROM exam_result ORDER BY id LIMIT 3
OFFSET 3;
-- 第 3 頁,如果結(jié)果不足 3 個,不會有影響
SELECT id, name, math, english, chinese FROM exam_result ORDER BY id LIMIT 3
OFFSET 6;

示例:

--統(tǒng)計數(shù)學(xué)成績總分

ELECT SUM(math) FROM exam_result;
-- 不及格 < 60 的總分,沒有結(jié)果,返回 NULL
SELECT SUM(math) FROM exam_result WHERE math < 60;

聚合函數(shù)查詢

聚合函數(shù)

常見的統(tǒng)計總數(shù)、計算平局值等操作,可以使用聚合函數(shù)來實現(xiàn),常見的聚合函數(shù)有

函數(shù) 說明
COUNT([DISTINCT] expr) 返回查詢到的數(shù)據(jù)的 數(shù)量
SUM([DISTINCT] expr) 返回查詢到的數(shù)據(jù)的 總和,不是數(shù)字沒有意義
AVG([DISTINCT] expr) 返回查詢到的數(shù)據(jù)的 平均值,不是數(shù)字沒有意義
MAX([DISTINCT] expr) 返回查詢到的數(shù)據(jù)的 最大值,不是數(shù)字沒有意義
MIN([DISTINCT] expr) 返回查詢到的數(shù)據(jù)的 最小值,不是數(shù)字沒有意義

GROUP BY子句

SELECT 中使用 GROUP BY 子句可以對指定列進行分組查詢。需要滿足:

使用 GROUP BY 進行分組查詢時,SELECT 指定的字段必須是“分組依據(jù)字段”,其他字段若想出現(xiàn)在SELECT 中則必須包含在聚合函數(shù)中

select column1, sum(column2), .. from table group by column1,column3;

示例:

準(zhǔn)備測試的素材

create table emp(
id int primary key auto_increment,
name varchar(20) not null,
role varchar(20) not null,
salary numeric(11,2)
);
insert into emp(name, role, salary) values
('馬云','服務(wù)員', 1000.20),
('馬化騰','游戲陪玩', 2000.99),
('孫悟空','游戲角色', 999.11),
('豬無能','游戲角色', 333.5),
('沙和尚','游戲角色', 700.33),
('隔壁老王','董事長', 12000.66);

查詢示例

查詢每個角色的最高工資、最低工資和平均工資
select role,max(salary),min(salary),avg(salary) from emp group by role;

HAVING 子句

GROUP BY 子句進行分組以后,需要對分組結(jié)果再進行條件過濾時,不能使用 WHERE 語句,而需要用HAVING

示例:

顯示平均工資低于1500的角色和它的平均工資
select role,max(salary),min(salary),avg(salary) from emp group by role
having avg(salary)<1500;

聯(lián)合查詢

實際開發(fā)中往往數(shù)據(jù)來自不同的表,所以需要多表聯(lián)合查詢。多表查詢是對多張表的數(shù)據(jù)取笛卡爾積
Mysql數(shù)據(jù)庫基礎(chǔ)知識總復(fù)習(xí)

準(zhǔn)備的測試數(shù)據(jù)

insert into classes(name, `desc`) values
('計算機系2019級1班', '學(xué)習(xí)了計算機原理、C和Java語言、數(shù)據(jù)結(jié)構(gòu)和算法'),
('中文系2019級3班','學(xué)習(xí)了中國傳統(tǒng)文學(xué)'),
('自動化2019級5班','學(xué)習(xí)了機械自動化');
insert into student(sn, name, qq_mail, classes_id) values
('09982','黑旋風(fēng)李逵','xuanfeng@qq.com',1),
('00835','菩提老祖',null,1),
('00391','白素貞',null,1),
('00031','許仙','xuxian@qq.com',1),
('00054','不想畢業(yè)',null,1),
('51234','好好說話','say@qq.com',2),
('83223','tellme',null,2),
('09527','老外學(xué)中文','foreigner@qq.com',2);
insert into course(name) values
('Java'),('中國傳統(tǒng)文化'),('計算機原理'),('語文'),('高階數(shù)學(xué)'),('英文');
insert into score(score, student_id, course_id) values
-- 黑旋風(fēng)李逵
(70.5, 1, 1),(98.5, 1, 3),(33, 1, 5),(98, 1, 6),
-- 菩提老祖
(60, 2, 1),(59.5, 2, 5),
-- 白素貞
(33, 3, 1),(68, 3, 3),(99, 3, 5),
-- 許仙
(67, 4, 1),(23, 4, 3),(56, 4, 5),(72, 4, 6),
-- 不想畢業(yè)
(81, 5, 1),(37, 5, 5),

-- 好好說話
(56, 6, 2),(43, 6, 4),(79, 6, 6),
-- tellme
(80, 7, 2),(92, 7, 6);

內(nèi)連接

語法

select 字段 from 表1 別名1 [inner] join 表2 別名2 on 連接條件 and 其他條件;
select 字段 from 表1 別名1,表2 別名2 where 連接條件 and 其他條件;

示例

查詢所有同學(xué)的總成績,及同學(xué)的個人信息
-- 成績表對學(xué)生表是多對1關(guān)系,查詢總成績是根據(jù)成績表的同學(xué)id來進行分組的
SELECT
stu.sn,
stu.NAME,
stu.qq_mail,
sum( sco.score )
FROM
student stu
JOIN score sco ON stu.id = sco.student_id
GROUP BY
sco.student_id;

外連接

外連接分為左外連接和右外連接。如果聯(lián)合查詢,左側(cè)的表完全顯示我們就說是左外連接;右側(cè)的表完全顯示我們就說是右外連接

語法

-- 左外連接,表1完全顯示
select 字段名 from 表名1 left join 表名2 on 連接條件;
-- 右外連接,表2完全顯示
select 字段 from 表名1 right join 表名2 on 連接條件;

示例

查詢所有同學(xué)的成績,及同學(xué)的個人信息,如果該同學(xué)沒有成績,也需要顯示
- “老外學(xué)中文”同學(xué) 沒有考試成績,也顯示出來了
select * from student stu left join score sco on stu.id=sco.student_id;
-- 對應(yīng)的右外連接為:
select * from score sco right join student stu on stu.id=sco.student_id;
-- 學(xué)生表、成績表、課程表3張表關(guān)聯(lián)查詢
SELECT
stu.id,
stu.sn,
stu.NAME,
stu.qq_mail,
sco.score,
sco.course_id,
cou.NAME
FROM
student stu
LEFT JOIN score sco ON stu.id = sco.student_id
LEFT JOIN course cou ON sco.course_id = cou.id
ORDER BY
stu.id;

自連接

自連接是指在同一張表連接自身進行查詢。

select 字段 from 表1 別名1 join 表1 別名2 on 連接條件? join 表2?別名1 on 條件?join 表12別名2 .......and 其他條件;
示例:

顯示所有“計算機原理”成績比“Java”成績高的成績信息

SELECT
stu.*,
s1.score Java,
s2.score 計算機原理
FROM
score s1? ?JOIN score s2 ON s1.student_id = s2.student_id? ? ?//? 自連接? ?
JOIN student stu ON s1.student_id = stu.id
JOIN course c1 ON s1.course_id = c1.id
JOIN course c2 ON s2.course_id = c2.id
AND s1.score < s2.score
AND c1.NAME = 'Java'
AND c2.NAME = '計算機原理';

拆分上述語句得到一下的分步執(zhí)行的語句


-- 1.先查詢“計算機原理”和“Java”課程的id
select id,name from course where name='Java' or name='計算機原理';


-- 2. 再查詢成績表中,“計算機原理”成績比“Java”成績 好的信息
SELECT
s1.*
FROM
score s1,
score s2
WHERE
s1.student_id = s2.student_id

AND s1.score < s2.score
AND s1.course_id = 1
AND s2.course_id = 3;
-- 也可以使用join on 語句來進行自連接查詢
SELECT
s1.*
FROM
score s1
JOIN score s2 ON s1.student_id = s2.student_id
AND s1.score < s2.score
AND s1.course_id = 1
AND s2.course_id = 3;

子查詢

子查詢是指嵌入在其他sql語句中的select語句,也叫嵌套查詢
單行子查詢:返回一行記錄的子查詢

-- 單行子查詢
select ... from 表1 where 字段1 = (select ... from ...);

示例

查詢與“不想畢業(yè)” 同學(xué)的同班同學(xué)
select * from student where classes_id=(select classes_id from student where
name='不想畢業(yè)');

多行子查詢:返回多行記錄的子查詢

-- [NOT] IN
select ... from 表1 where 字段1 in (select ... from ...);
-- [NOT] EXISTS
select ... from 表1 where exists (select ... from ... where 條件);
-- 臨時表:form子句中的子查詢
select ... from 表1, (select ... from ...) as tmp where 條件

示例

案例:查詢“語文”或“英文”課程的成績信息
. [NOT] IN關(guān)鍵字
--使用IN

select * from score where course_id in (select id from course where
name='語文' or name='英文');
-- 使用 NOT IN
select * from score where course_id not in (select id from course where
name!='語文' and name!='英文');
可以使用多列包含:
-- 插入重復(fù)的分?jǐn)?shù):score, student_id, course_id列重復(fù)
insert into score(score, student_id, course_id) values
-- 黑旋風(fēng)李逵
(70.5, 1, 1),(98.5, 1, 3),
-- 菩提老祖
(60, 2, 1);
-- 查詢重復(fù)的分?jǐn)?shù)
SELECT
*
FROM
score
WHERE
( score, student_id, course_id ) IN ( SELECT score, student_id,
course_id FROM score GROUP BY score, student_id, course_id HAVING
count( 0 ) > 1 );


[NOT] EXISTS關(guān)鍵字

-- 使用 EXISTS
select * from score sco where exists (select sco.id from course cou
where (name='語文' or name='英文') and cou.id = sco.course_id);
-- 使用 NOT EXISTS
select * from score sco where not exists (select sco.id from course cou
where (name!='語文' and name!='英文') and cou.id = sco.course_id);
?

在from子句中使用子查詢:子查詢語句出現(xiàn)在from子句中。這里要用到數(shù)據(jù)查詢的技巧,把一個子查詢當(dāng)做一個臨時表使用。

查詢所有比“中文系2019級3班”平均分高的成績信息
-- 獲取“中文系2019級3班”的平均分,將其看作臨時表
SELECT
avg( sco.score ) score
FROM
score sco
JOIN student stu ON sco.student_id = stu.id
JOIN classes cls ON stu.classes_id = cls.id
WHERE
cls.NAME = '中文系2019級3班';


查詢成績表中,比以上臨時表平均分高的成績
SELECT
*
FROM
score sco,
(
SELECT
avg( sco.score ) score
FROM
score sco
JOIN student stu ON sco.student_id = stu.id
JOIN classes cls ON stu.classes_id = cls.id
WHERE
cls.NAME = '中文系2019級3班'
) tmp
WHERE
sco.score > tmp.score;
?

C

在實際應(yīng)用中,為了合并多個select的執(zhí)行結(jié)果,可以使用集合操作符 union,union all。使用

-- UNION:去除重復(fù)數(shù)據(jù)(操作符用于取得兩個結(jié)果集的并集。當(dāng)使用該操作符時,會自動去掉結(jié)果集中的重復(fù)行。)
select ... from ... where 條件
union
select ... from ... where 條件


-- UNION ALL:不去重(該操作符用于取得兩個結(jié)果集的并集。當(dāng)使用該操作符時,不會去掉結(jié)果集中的重復(fù)行)
select ... from ... where 條件
union all
select ... from ... where 條件
-- 使用UNION和UNION ALL時,前后查詢的結(jié)果集中,字段需要一致

示例

UNION
和UNION ALL時,前后查詢的結(jié)果集中,字段需要一致
案例:查詢id小于3,或者名字為“英文”的課程:
select * from course where id<3
union
select * from course where name='英文';
-- 或者使用or來實現(xiàn)
select * from course where id<3 or name='英文';

union all
案例:查詢id小于3,或者名字為“Java”的課程
-- 可以看到結(jié)果集中出現(xiàn)重復(fù)數(shù)據(jù)Java
select * from course where id<3
union all
select * from course where name='英文';

修改數(shù)據(jù)

語法

update 表 set 字段1=value1, 字段2=value2... where 條件

示例

-- 將孫悟空同學(xué)的數(shù)學(xué)成績變更為 80 分
UPDATE exam_result SET math = 80 WHERE name = '孫悟空';
-- 將曹孟德同學(xué)的數(shù)學(xué)成績變更為 60 分,語文成績變更為 70 分
UPDATE exam_result SET math = 60, chinese = 70 WHERE name = '曹孟德';
-- 將總成績倒數(shù)前三的 3 位同學(xué)的數(shù)學(xué)成績加上 30 分
UPDATE exam_result SET math = math + 30 ORDER BY chinese + math + english LIMIT
3;
-- 將所有同學(xué)的語文成績更新為原來的 2 倍
UPDATE exam_result SET chinese = chinese * 2;

刪除數(shù)據(jù)

語法

delete from 表 where 條件

示例

-- 刪除孫悟空同學(xué)的考試成績
DELETE FROM exam_result WHERE name = '孫悟空';
-- 刪除整張表數(shù)據(jù)
-- 準(zhǔn)備測試表
DROP TABLE IF EXISTS for_delete;
CREATE TABLE for_delete (
id INT,
name VARCHAR(20)
);
-- 插入測試數(shù)據(jù)
INSERT INTO for_delete (name) VALUES ('A'), ('B'), ('C');
-- 刪除整表數(shù)據(jù)
DELETE FROM for_delete;

數(shù)據(jù)庫約束

  • NOT NULL - 指示某列不能為空
  • UNIQUE - 保證某列的每行必須有唯一,不重復(fù)的。
  • DEFAULT - 規(guī)定沒有給列賦值時的默認(rèn)值。
  • PRIMARY KEY - 主鍵約束,與?NOT NULL 和 UNIQUE 的結(jié)合。確保某列(或兩個列多個列的結(jié)合)有唯一標(biāo)識,有助于更容易更快速地找到表中的一個特定的記錄。
  • FOREIGN KEY - 外鍵約束,保證一個表中的數(shù)據(jù)匹配另一個表中的值的參照完整性。
  • CHECK - 保證列中的值符合指定的條件。對于MySQL數(shù)據(jù)庫,對CHECK子句進行分析,但是忽略CHECK子句。

索引

索引,相當(dāng)于目錄,它是一種特殊的文件包含著對數(shù)據(jù)表里所有記錄的引用指針??梢詭椭覀兛焖俣ㄎ?,檢索數(shù)據(jù)。

Mysql數(shù)據(jù)庫基礎(chǔ)知識總復(fù)習(xí)

注意:創(chuàng)建索引會占用額外的磁盤空間,插入或修改操作效率不高,通常建議使用在需要大量進行查詢的場合。

?使用方法:

創(chuàng)建主鍵約束(PRIMARY KEY)、唯一約束(UNIQUE)、外鍵約束(FOREIGN KEY)時,會自動創(chuàng)建對應(yīng)列的索引。

查看索引

show index from 表名;

示例:

查看學(xué)生表已有的索引
show index from student;

創(chuàng)建索引

對于非主鍵、非唯一約束、非外鍵的字段,可以創(chuàng)建普通索引

create index 索引名 on 表名(字段名);

示例

創(chuàng)建班級表中,name字段的索引

create index idx_classes_name on classes(name);

刪除索引

drop index 索引名 on 表名;

示例

刪除班級表中name字段的索引

drop index idx_classes_name on classes;

事務(wù)

試想一下,當(dāng)你媽媽給你打生活費的時候,她給你轉(zhuǎn)賬但是數(shù)據(jù)庫掛掉了,那邊顯示轉(zhuǎn)賬成功了,金額減少了2000,但是你的賬戶并沒有增加2000。這個時候是不是就很難受,那么這個問題該怎么解決呢?

那就讓這里兩個操作要么同時成功,要么同時失敗。這就是事務(wù)的邏輯。

事務(wù)指邏輯上的一組操作,組成這組操作的各個單元,要么全部成功,要么全部失敗。

使用

  • (1)開啟事務(wù):start transaction;
  • (2)執(zhí)行多條SQL語句
  • (3)回滾或提交:rollback/commit;

說明:rollback即是全部失敗,commit即是全部成功。

示例:

start transaction;
-- 阿里巴巴賬戶減少2000
update accout set money=money-2000 where name = '阿里巴巴';
-- 四十大盜賬戶增加2000
update accout set money=money+2000 where name = '四十大盜';
commit;

【以上就是本文分享的全部內(nèi)容,下一篇JDBC編程,敬請期待~~】文章來源地址http://www.zghlxwxcb.cn/news/detail-432363.html

到了這里,關(guān)于Mysql數(shù)據(jù)庫基礎(chǔ)知識總復(fù)習(xí)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • MySQL數(shù)據(jù)庫基礎(chǔ)初學(xué)者必備知識

    MySQL數(shù)據(jù)庫基礎(chǔ)初學(xué)者必備知識

    目錄 1.數(shù)據(jù)庫的基本操作 1.1顯示所有數(shù)據(jù)庫 1.2創(chuàng)建數(shù)據(jù)庫 1.3刪除數(shù)據(jù)庫 2.數(shù)據(jù)庫的類型 2.1數(shù)值類型 2.2字符串類型 2.3日期類型 3.表的簡單操作 3.1創(chuàng)建一個表 3.2顯示表的結(jié)構(gòu) 3.3顯示數(shù)據(jù)庫中的所有表 3.4刪除指定表 4.實戰(zhàn)練習(xí) 數(shù)據(jù)庫的基本操作為:顯示數(shù)據(jù)庫,創(chuàng)建數(shù)據(jù)庫

    2023年04月11日
    瀏覽(31)
  • MySQL入門指南:數(shù)據(jù)庫操作的基礎(chǔ)知識

    MySQL入門指南:數(shù)據(jù)庫操作的基礎(chǔ)知識

    當(dāng)談到關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS)時,MySQL無疑是最常見和廣泛使用的一個。它是一個強大的工具,用于存儲、管理和檢索數(shù)據(jù)。在這篇博客中,我們將介紹MySQL的基本知識,包括數(shù)據(jù)庫的操作、數(shù)據(jù)表的操作以及數(shù)據(jù)的增刪改查~~ 目錄 1. 數(shù)據(jù)庫的操作 1.1 創(chuàng)建數(shù)據(jù)庫 1.2 刪除

    2024年02月07日
    瀏覽(39)
  • 【MySQL數(shù)據(jù)庫重點】第二節(jié):MySQL基礎(chǔ)知識(基本操作)

    目錄 一:數(shù)據(jù)庫的操作 1.顯示數(shù)據(jù)庫 2.創(chuàng)建數(shù)據(jù)庫 3.使用數(shù)據(jù)庫 4.刪除數(shù)據(jù)庫 二:常用數(shù)據(jù)類型 1.數(shù)值類型:整型和浮點型 2.字符串類型 3.日期類型 三:表的操作 1.查看表結(jié)構(gòu) 2.創(chuàng)建表 3.刪除表 1.顯示數(shù)據(jù)庫 語法: show databases;? 2.創(chuàng)建數(shù)據(jù)庫 (1)簡化語法 create database?數(shù)

    2024年02月08日
    瀏覽(23)
  • MySQL 基礎(chǔ)知識(一)之?dāng)?shù)據(jù)庫和 SQL 概述

    MySQL 基礎(chǔ)知識(一)之?dāng)?shù)據(jù)庫和 SQL 概述

    目錄 1 數(shù)據(jù)庫相關(guān)概念 2 數(shù)據(jù)庫的結(jié)構(gòu) ?3 SQL 概要 4 SQL 的基本書寫規(guī)則 1 數(shù)據(jù)庫相關(guān)概念 數(shù)據(jù)庫是將大量的數(shù)據(jù)保存起來,通過計算機加工而成的可以進行高效訪問的數(shù)據(jù)集合 數(shù)據(jù)庫管理系統(tǒng)(DBMS)是用來管理數(shù)據(jù)庫的計算機系統(tǒng),通過使用 DBMS,多個用戶可以安全、簡單

    2024年02月20日
    瀏覽(28)
  • MySQL基礎(chǔ)篇——MySQL數(shù)據(jù)庫客戶端連接,數(shù)據(jù)模型,SQL知識

    MySQL基礎(chǔ)篇——MySQL數(shù)據(jù)庫客戶端連接,數(shù)據(jù)模型,SQL知識

    作者簡介:一名云計算網(wǎng)絡(luò)運維人員、每天分享網(wǎng)絡(luò)與運維的技術(shù)與干貨。? ?座右銘:低頭趕路,敬事如儀 個人主頁:網(wǎng)絡(luò)豆的主頁?????? 目錄 前言 一.客戶端連接MySQL 二. 數(shù)據(jù)模型 1.關(guān)系型數(shù)據(jù)庫(RDBMS) 2.數(shù)據(jù)模型 三.SQL 1.SQL通用語法 2.SQL分類 3.數(shù)據(jù)庫操作 1). 查

    2024年02月06日
    瀏覽(25)
  • mysql+sqlyog的超詳細(xì)完整安裝+數(shù)據(jù)庫基礎(chǔ)知識

    mysql+sqlyog的超詳細(xì)完整安裝+數(shù)據(jù)庫基礎(chǔ)知識

    地址:https://dev.mysql.com/downloads/mysql/5.5.html#downloads 注冊或登錄Oracle賬戶下載 復(fù)制到文件路徑至bin的到 此電腦——高級系統(tǒng)設(shè)置——高級——環(huán)境變量—— 點下面的path 新建粘貼路徑即可 一路確定 環(huán)境配置完成后,打開文件夾,創(chuàng)建一個新的文件后綴名為 .ini 的 my.ini空白文

    2024年02月06日
    瀏覽(19)
  • 找工作所需數(shù)據(jù)庫基礎(chǔ)知識與實際操作(以MySQL為例)

    第一章、數(shù)據(jù)庫原理概述 1.1.2 數(shù)據(jù)庫、數(shù)據(jù)字典、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫系統(tǒng) 1. 數(shù)據(jù)庫(DB)--- (1)概念:按一定結(jié)構(gòu)組織并長期存儲在計算機內(nèi)的、在邏輯上保持一致的、可共享的大量相關(guān)數(shù)據(jù)的集合---存儲數(shù)據(jù)倉庫 (2)屬性:較小的冗余度、較高的數(shù)據(jù)獨立性、易

    2024年02月05日
    瀏覽(92)
  • mysql數(shù)據(jù)庫面試題基礎(chǔ)知識,Hadoop之MapReduce04,騰訊java面試流程

    mysql數(shù)據(jù)庫面試題基礎(chǔ)知識,Hadoop之MapReduce04,騰訊java面試流程

    該方法的執(zhí)行過程比較復(fù)雜,我們慢慢來分析,首先來看下簡化的時序圖 3.1waitForCompletion public boolean waitForCompletion(boolean verbose ) throws IOException, InterruptedException, ClassNotFoundException { // 判斷任務(wù)的狀態(tài),如果是DEFINE就提交 if (state == JobState.DEFINE) { submit(); } if (verbose) { // 監(jiān)聽并且

    2024年04月14日
    瀏覽(33)
  • MySQL-創(chuàng)建和管理表:基礎(chǔ)知識、創(chuàng)建和管理數(shù)據(jù)庫、創(chuàng)建表、修改表、重命名表、刪除表、清空表、拓展

    MySQL-創(chuàng)建和管理表:基礎(chǔ)知識、創(chuàng)建和管理數(shù)據(jù)庫、創(chuàng)建表、修改表、重命名表、刪除表、清空表、拓展

    注:此為筆者學(xué)習(xí)尚硅谷-宋紅康MySQL的筆記,其中包含個人的筆記和理解,僅做學(xué)習(xí)筆記之用,更多詳細(xì)資訊請出門左拐B站:尚硅谷!!! 1.1 一條數(shù)據(jù)存儲的過程 存儲數(shù)據(jù)是處理數(shù)據(jù)的第一步 。只有正確地把數(shù)據(jù)存儲起來,我們才能進行有效的處理和分析。否則,只能是一團

    2024年04月11日
    瀏覽(94)
  • 數(shù)據(jù)庫基礎(chǔ)知識

    名稱 描述 舉例 DDL 數(shù)據(jù)定義語言 create(創(chuàng)建)、alter(修改)、drop(刪除)、rename(重命名)、truncate(清空) DML 數(shù)據(jù)操作語言 insert(添加)、delete(刪除)、update(修改)、select(查詢) DCL 數(shù)據(jù)控制語言 commit(提交)、rollback(撤銷)、grant(賦予權(quán)限)、revoke(回收

    2024年02月09日
    瀏覽(92)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包