欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SQL通用語法以及分類圖文詳解

 更新時間:2022年12月30日 12:10:50   作者:小白的白白  
本書從初學(xué)者的角度出發(fā),由淺入深,循序漸進(jìn)地介紹了SQL通用語法的相關(guān)知識,下面這篇文章主要給大家介紹了關(guān)于SQL通用語法以及分類的相關(guān)資料,需要的朋友可以參考下

MySQL的啟動和連接&數(shù)據(jù)模型

MySQL的啟動和停止

1.services.msc

2.命令行啟停

啟動:net start mysql80

停止:net stop mysql80

(命令行窗口以管理員權(quán)限打開,否則無訪問系統(tǒng)服務(wù)權(quán)限)

MySQL數(shù)據(jù)庫客戶端連接

1.MySQL提供的客戶端命令行工具

(先確保mysql正在運(yùn)行中),否則會出現(xiàn)輸入密碼命令行窗口閃退的情況

mysql正常運(yùn)行中,在windows開始菜單下找到:

單擊打開命令行窗口后輸入MySQL密碼,即可進(jìn)入訪問(密碼輸入錯誤會閃退命令行窗口):

 2.系統(tǒng)自帶的命令行執(zhí)行指令

(使用此方法必須提前配置系統(tǒng)的path環(huán)境變量)

mysql -u root -p[回車] -password

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

1.在清楚MySQL數(shù)據(jù)模型前,需要先了解一個概念:關(guān)系型數(shù)據(jù)庫(RDBMS).

概念:建立在關(guān)系模型基礎(chǔ)上,由多張相互連接的二維表組成的數(shù)據(jù)庫

特點(diǎn)

  • 使用表存儲結(jié)構(gòu),格式統(tǒng)一,便于維護(hù)
  • 使用SQL語言操作,標(biāo)準(zhǔn)統(tǒng)一,便于操作

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

SQL通用語法及分類

1.SQL通用語法

  • SOL語句可以單行或多行書寫書寫,以分號結(jié)尾
  • SQL語句可以使用空格和縮進(jìn)來增強(qiáng)程序的可讀性
  • MySQL數(shù)據(jù)庫的SQL語句不區(qū)分大小寫,關(guān)鍵字建議使用大寫
  • 注釋:
    單行注釋:--注釋內(nèi)容  或者   #注釋內(nèi)容(MySQL特有)
    多行注釋:/*注釋內(nèi)容*/

2.SQL分類

分類全稱說明
DDLDate Definition Language數(shù)據(jù)定義語言,用來定義數(shù)據(jù)庫對象(數(shù)據(jù)庫,表,字段,索引)
DMLDate Manipulation Language數(shù)據(jù)庫操作語言,用來對數(shù)據(jù)庫表中的數(shù)據(jù)進(jìn)行增刪改
DQLDate Query Language數(shù)據(jù)庫查詢語言,用來查詢數(shù)據(jù)庫中表的記錄
DCLDate Control Language數(shù)據(jù)庫控制語言,用來創(chuàng)建數(shù)據(jù)庫用戶,控制數(shù)據(jù)庫訪問權(quán)限

Data Definition Language

DDL - 數(shù)據(jù)庫操作

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

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

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

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

使用上述指令進(jìn)行整體操作

DDL - 表操作

表操作 - 創(chuàng)建&&查詢 創(chuàng)建表

(創(chuàng)建表的最后一條語句不加逗號,整條語句以分號結(jié)束)查詢當(dāng)前數(shù)據(jù)庫的所有表

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

查詢特定表的建表語句

使用上述指令進(jìn)行整體操作

表操作 - 數(shù)據(jù)類型

MySQL中主要有數(shù)值類型、日期類型和字符串類型。

數(shù)值-整數(shù)類型

類型名稱說明存儲需求有符號(SIGNED)無符號(UNSIGNED)
TINYINT很小的整數(shù)1byte-128 - 1270 - 255
SMALLINT小的整數(shù)2byte-32768 - 327670 - 65535
MEDIUMINT中等大小的整數(shù)3byte-8388608 - 83886070 - 16777215
INT(INTEGER)普通大小整數(shù)4byte-2147483648 - 21474836470 - 4294967295
BIGINT大整數(shù)8byte-9223372036854775808 - 92233720368547758070 - 18446744073709551615

dd

類型名稱說明存儲需求有符號(SIGNED)無符號(UNSIGNED)
TINYINT很小的整數(shù)1byte-128 - 1270 - 255
SMALLINT小的整數(shù)2byte-32768 - 327670 - 65535
MEDIUMINT中等大小的整數(shù)3byte-8388608 - 83886070 - 16777215
INT(INTEGER)普通大小整數(shù)4byte-2147483648 - 21474836470 - 4294967295
BIGINT大整數(shù)8byte-9223372036854775808 - 92233720368547758070 - 18446744073709551615

數(shù)值-小數(shù)類型

 DECIMAL中的M:精度、D:標(biāo)度

 精度M:整個數(shù)的長度

 標(biāo)度D:小數(shù)的位數(shù)

日期與時間類型

類型名稱日期格式日期范圍存儲需求
YEARYYYY1901-21551byte
TIMEHH:MM:SS-838:59:59-835:59:593byte
DATEYYYY-MM-DD1000-01-01~9999-12-313byte
DATETIMEYYYY-MM-DD HH:MM:SS1000-01-01 00:00:00~9999-12-31 23:59:598byte
TIMESTAMPYYYY-MM-DD HH:MM:SS1970-01-01 00:00:01 UTC~2038-01-19 03:14:07 UTC4byte

字符串類型

文本字符串?dāng)?shù)據(jù)類型
類型名稱說明存儲需求
CHAR(M)定長文本字符串M字節(jié),1 - 255
VARCHAR(M)變長文本字符串length +1字節(jié)
TINYTEXT非常小的文本字符串length +1字節(jié)
TEXT小的文本字符串length +2字節(jié)
MEDIUMTEXT中等大小的文本字符串length +3字節(jié)
LONGTEXT大的文本字符串length +4個字節(jié)
EUNM枚舉類型,只能有一個枚舉字符串值1或2byte,取決于枚舉字符串的樹木
SET

一個設(shè)置,字符串對象可以有一個或多個set成員

1,2,3,4或8,取決于集合成員的數(shù)量
二進(jìn)制字符串類型
類型名稱說明存儲需求
BIT(M)位字段類型(M+7)/8 byte
BINARY(m)定長二進(jìn)制字符串Mbyte
VARBINARY(M)變長二進(jìn)制字符串M+1byte
TINYBLOB(M)非常小的BLOB

L+1 byte

BOLB(M)小的BLOBL+2byte
MEDIUMBLOB(M)中等大小的BLOBL+3byte
LONGBLOB(M)非常大的BLOBL+4byte

表操作-修改&&刪除

添加字段

修改字段數(shù)據(jù)類型

修改字段名和字段類型

刪除表中的字段

修改表名

刪除表

格式化表(刪除表中的數(shù)據(jù)并重新創(chuàng)建)

 使用上述指令進(jìn)行整體操作

DDL總結(jié)

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

  • show databases;
    顯示當(dāng)前的所有數(shù)據(jù)庫
  • create database [if not exists] 數(shù)據(jù)庫名;
    創(chuàng)建數(shù)據(jù)庫
  • use 數(shù)據(jù)庫名;
    使用/進(jìn)入當(dāng)前數(shù)據(jù)庫
  • select database();
    查詢當(dāng)前所在數(shù)據(jù)庫
  • drop database [if exists] 數(shù)據(jù)庫名;
    刪除當(dāng)前數(shù)據(jù)庫

DDL表操作

  • show tables;
    顯示當(dāng)前數(shù)據(jù)庫中的所有表
  • create table 表名(字段 字段類型 [comment '注釋'], 字段 字段類型 [comment '注釋'] ...) [coomment '注釋'] ;
    在當(dāng)前數(shù)據(jù)庫中新建一張表
  • desc 表名;
    查詢當(dāng)前表的結(jié)構(gòu)
  • show create table 表名;
    顯示創(chuàng)建該表時的語句
  • alter table add/modify/change/drop/rename to
    添加字段,修改字段類型,修改字段,刪除字段,重命名表
  • drop table 表名;
    刪除當(dāng)前表

(可視化工具 - dataTrip)??

Data Manipulation Language

DML - 插入數(shù)據(jù)insert

insert into 表名(字段,字段...) values(值1,值2...);
-- 表中的字段和值一一對應(yīng)
insert into 表名(字段1,字段2...) values(值1,值2...),(值1,值2...);
-- 一次添加多組數(shù)據(jù),字段值和值要一一對應(yīng)
insert into 表名 values(值1,值2...);
-- 值要和表中的字段一一對應(yīng)
 
insert into 表名 values(值1,值2...),(值1,值2...);
-- 一次添加多組數(shù)據(jù),數(shù)據(jù)要和表中的字段一一對應(yīng)

插入數(shù)據(jù)的注意事項(xiàng)

  • 插入的數(shù)據(jù)應(yīng)當(dāng)與表中的字段一一對應(yīng)
  • 插入數(shù)據(jù)如果類型是字符串或者日期,應(yīng)當(dāng)用引號修飾
  • 添加的數(shù)據(jù)應(yīng)當(dāng)在定義的數(shù)據(jù)類型的范圍內(nèi)

DML - 更新數(shù)據(jù)update

update 表名 set 字段1=值1,字段2=值2...[where 條件];
-- update是針對字段來進(jìn)行操作的

DML - 刪除數(shù)據(jù)delete

delete from 表名 [where 條件];
-- delete針對的操作對象是表中的一整條數(shù)據(jù) 

 使用上述SQL命令整體進(jìn)行表的數(shù)據(jù)操作:

使用insert向表中添加數(shù)據(jù):

使用update更新表中的數(shù)據(jù):

使用delete刪除表中的數(shù)據(jù):

Data Query Language

DQL --- 基礎(chǔ)查詢

查詢多個字段

select 字段1[as 別名],字段2[as 別名],字段3[as 別名]...from 表名;
//as可以省略
 
select * from 表名;
//返回表中的所有字段中的信息

查詢多個字段去重

select distinct 字段列表 from 表名; -- 去重查詢

DQL --- 條件查詢

select 字段列表 from 表明 where [條件列表];

使用上述查詢進(jìn)行整體操作:

 DQL - 聚合函數(shù)

函數(shù)作用
avg()返回某列的平均值
sum()返回某列值的和
count()返回某列的行數(shù)
max()返回某列的最大值
min()返回某列的最小值

select 聚合函數(shù)(字段列表) from 表名;

使用聚合函數(shù)進(jìn)行查詢時,null不參與聚合函數(shù)的運(yùn)算,如果統(tǒng)計(jì)表的行數(shù),使用count(*)即可。

使用上述查詢進(jìn)行整體操作:

DQL - 分組查詢

select 字段列表 from 表名 [where條件] group by 分組字段名 [having分組后的過濾條件];

where和having的區(qū)別:

  • where是對分組前的數(shù)據(jù)進(jìn)行過濾,不滿足分組條件的數(shù)據(jù)不參與分組,而having是對分組之后的數(shù)據(jù)進(jìn)行過濾
  • where不能對聚合函數(shù)進(jìn)行判斷,having可以

使用上述查詢:

DQL - 排序查詢

select 字段列表 from 表名 order by 字段名 排序方式,字段名,排序方式;
//當(dāng)按照第一個字段排序時順序相同時,就按照第二個字段及其規(guī)則進(jìn)行排序返回
//asc    升序排列(默認(rèn)值,可以省略)
//desc   降序排列

DQL - 分頁查詢

select 字段列表 from 表名 limit 起始索引,每頁查詢的數(shù)據(jù)條數(shù);
-- 起始索引為: (頁數(shù) - 1) * 每頁數(shù)據(jù)的條數(shù)
-- 第一頁的起始索引可以省略

DDL - 語句執(zhí)行順序

  • from -- 找到對應(yīng)的表
  • where -- 根據(jù)條件進(jìn)行篩選
  • group -- 篩選后分組
  • select -- 選出處理后的數(shù)據(jù)
  • order by -- 進(jìn)行數(shù)據(jù)的排序
  • limit -- 數(shù)據(jù)分頁

DQL總結(jié)

-- 基礎(chǔ)查詢
select 字段列表 from 表名;
 
-- 條件查詢
select 字段列表 form 表名 where 條件;
 
-- 分組查詢
select 字段列表 from 表名 [where條件] group by 分組字段名 [having過濾條件];
 
-- 排序查詢
select 字段列表 from 表名 [where條件] order by 字段名 排序方式,字段名 排序方式;
 
--分頁查詢
select 字段列表 from 表名 [where條件] limit 起始索引,每頁查詢的信息條數(shù);

Data Control Language

DCL - 用戶管理

-- 使用管理員賬號進(jìn)入mysql數(shù)據(jù)庫下
 
-- 查詢用戶
use mysql;
select * from user;
 
-- 創(chuàng)建用戶
create user '用戶名'@'主機(jī)名' identified by '密碼';
 
-- 修改用戶密碼
alter user '用戶名'@'主機(jī)名' identified with mysql_native_password by '密碼';
 
-- 刪除用戶
drop user '用戶名'@'主機(jī)名';

DCL - 權(quán)限控制

-- 查詢權(quán)限
show grants for '用戶名'@'主機(jī)名';
 
-- 授予權(quán)限
grant 權(quán)限列表 on 數(shù)據(jù)庫名.表名 to '用戶名'@'主機(jī)名';
 
-- 撤銷權(quán)限
revoke 權(quán)限列表 on 數(shù)據(jù)庫名.表名 from '用戶名'@'主機(jī)名';

總結(jié)

到此這篇關(guān)于SQL通用語法以及分類的文章就介紹到這了,更多相關(guān)SQL通用語法及分類內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Mysql 安裝失敗的快速解決方法

    Mysql 安裝失敗的快速解決方法

    這篇文章給大家介紹了mysql 安裝失敗的快速解決方法包括windows下mysql安裝失敗的一個解決案例,本文給大家介紹的非常詳細(xì),具有參考借鑒價值,感興趣的朋友一起看下吧
    2016-10-10
  • MySQL 鎖的相關(guān)知識總結(jié)

    MySQL 鎖的相關(guān)知識總結(jié)

    這篇文章主要介紹了MySQL 鎖的相關(guān)知識總結(jié),幫助大家更好的理解和使用MySQL數(shù)據(jù)庫,感興趣的朋友可以了解下
    2021-01-01
  • Mysql中如何批量替換某個字段的值:replace

    Mysql中如何批量替換某個字段的值:replace

    這篇文章主要介紹了Mysql中如何批量替換某個字段的值:replace,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • MySQL5.7安裝過程并重置root密碼的方法(shell 腳本)

    MySQL5.7安裝過程并重置root密碼的方法(shell 腳本)

    由于 MySQL 5.7 版本的 root 密碼是首次啟動時隨機(jī)生成的,并且還要求必須修改后才能使用。下面小編給大家分享使用shell 腳本完成安裝和設(shè)置新的 root 密碼的方法,一起看看吧
    2016-12-12
  • 19個MySQL性能優(yōu)化要點(diǎn)解析

    19個MySQL性能優(yōu)化要點(diǎn)解析

    這篇文章主要介紹了19個MySQL性能優(yōu)化要點(diǎn),并對其都進(jìn)行了深入解析,感興趣的小伙伴們可以參考一下
    2015-08-08
  • Mysql循環(huán)插入數(shù)據(jù)的實(shí)現(xiàn)

    Mysql循環(huán)插入數(shù)據(jù)的實(shí)現(xiàn)

    這篇文章主要介紹了Mysql循環(huán)插入數(shù)據(jù)的實(shí)現(xiàn)過程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • mysql字符串拼接并設(shè)置null值的實(shí)例方法

    mysql字符串拼接并設(shè)置null值的實(shí)例方法

    在本文中小編給大家整理的是關(guān)于mysql 字符串拼接+設(shè)置null值的實(shí)例內(nèi)容以及具體方法,需要的朋友們可以學(xué)習(xí)下。
    2019-09-09
  • mysql重裝后出現(xiàn)亂碼設(shè)置為utf8可解決

    mysql重裝后出現(xiàn)亂碼設(shè)置為utf8可解決

    mysql重裝后出現(xiàn)亂碼解決辦法:只能在配置文件中將database 和 server 字符集 設(shè)置為utf8 ,否則不起作用,具體如下感興趣的朋友可以參考下哈,希望對大家有所幫助
    2013-07-07
  • mysql 常用命令集錦(Linux/Windows)

    mysql 常用命令集錦(Linux/Windows)

    這篇文章主要介紹了Linux/Windows系統(tǒng)下mysql 常用的命令,需要的朋友可以參考下
    2014-07-07
  • MySQL 大表添加一列的實(shí)現(xiàn)

    MySQL 大表添加一列的實(shí)現(xiàn)

    這篇文章主要介紹了MySQL 大表添加一列的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02

最新評論