共計(jì) 4518 個(gè)字符,預(yù)計(jì)需要花費(fèi) 12 分鐘才能閱讀完成。
本篇內(nèi)容主要講解“SQL 基本語(yǔ)句有哪些及怎么使用”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓丸趣 TV 小編來(lái)帶大家學(xué)習(xí)“SQL 基本語(yǔ)句有哪些及怎么使用”吧!
一、DDL(Data Definition Language)
數(shù)據(jù)定義語(yǔ)言,用來(lái)定義數(shù)據(jù)庫(kù)對(duì)象(數(shù)據(jù)庫(kù),表,字段)
查詢
查詢所有數(shù)據(jù)庫(kù)
show databases;
查詢當(dāng)前數(shù)據(jù)庫(kù)
select database();
創(chuàng)建
create database [if not exists] 數(shù)據(jù)庫(kù)名 [default charset 字符集][collate 排序規(guī)則];
#中括號(hào)里的可加可不加,具體情況而定
#第一個(gè)是如果不存在相同名稱的數(shù)據(jù)庫(kù)則創(chuàng)建
#第二個(gè)是設(shè)置字符的字符集和排序規(guī)則
刪除
drop database [if exists] 數(shù)據(jù)庫(kù)名;
#中括號(hào)是如果存在相同名稱的數(shù)據(jù)庫(kù)就刪除
使用
use 數(shù)據(jù)庫(kù)名;
表操作 - 創(chuàng)建
create table 表名 ( 字段 1 字段 1 類型 [comment 字段 1 注釋],
字段 2 字段 2 類型 [comment 字段 2 注釋],
字段 3 字段 3 類型 [comment 字段 3 注釋],
......
字段 n 字段 n 類型 [comment 字段 n 注釋]
)[comment 表注釋];
注:[….] 為可選參數(shù),最后一個(gè)字段后面沒(méi)有逗號(hào)
表操作 - 修改
添加字段
alter table 表名 add 字段名 類型 (長(zhǎng)度) [comment 注釋][約束];
修改數(shù)據(jù)類型
alter table 表名 modify 字段名 新數(shù)據(jù)類型 (長(zhǎng)度);
修改字段名和字段類型
alter table 表名 change 舊字段名 新字段名 類型 (長(zhǎng)度)[comment 注釋][約束];
刪除字段
alter table 表名 drop 字段名;
修改表名
alter table 表名 rename to 新表名;
表操作 - 刪除
刪除表(讓指定表從數(shù)據(jù)庫(kù)消失)
drop table [if exists] 表名;
刪除指定表,并重新創(chuàng)建該表(俗稱格式化)
truncate table 表名;
二、DML(Data Manipulation Language)
數(shù)據(jù)操作語(yǔ)言,用來(lái)對(duì)數(shù)據(jù)庫(kù)表中的數(shù)據(jù)進(jìn)行增刪改
輔助用建表格式
create table worktable(
id int comment 編號(hào) ,
worknum int comment 工號(hào) ,
name varchar(20) comment 姓名 ,
sex char(1) comment 性別 ,
age int comment 年齡 ,
idcard int comment 身份證號(hào) ,
entrydate date comment 入職日期
)comment 員工信息表
添加數(shù)據(jù)
給指定字段添加數(shù)據(jù)
insert into 表名 (字段名 1, 字段名 2,.....) values(值 1, 值 2,......);
給全部字段添加數(shù)據(jù)
insert into 表名 values (值 1, 值 2,.....);
批量添加數(shù)據(jù)
insert into 表名 (字段名 1, 字段名 2,.....)
values(值 1, 值 2,......),(值 1, 值 2,......),(值 1, 值 2,......);
insert into 表名
values (值 1, 值 2,.....),(值 1, 值 2,......),(值 1, 值 2,......);
[注]:
· 插入數(shù)據(jù)時(shí),指定的字段順序需要與值的順序是一一對(duì)應(yīng)的
·字符串和日期型數(shù)據(jù)應(yīng)該包含在引號(hào)中
·插入的數(shù)據(jù)大小,應(yīng)該在字段的規(guī)定范圍內(nèi)
修改數(shù)據(jù)
update 表名 set 字段名 1 = 值 1, 字段名 2 = 值 2,....[where 條件];
[注]:修改語(yǔ)句的條件可以有,也可以沒(méi)有,如果沒(méi)有條件,則會(huì)修改整張表的所有數(shù)據(jù)
刪除數(shù)據(jù)
delete from 表名 [where 條件];
[注]:
·delete 語(yǔ)句的條件可以有,也可以沒(méi)有,如果沒(méi)有條件,則會(huì)刪除整張表的所有數(shù)據(jù)
·delete 語(yǔ)句不能刪除某一個(gè)字段的值 (可以使用 update)
三、DQL(Data Query Language)
數(shù)據(jù)查詢語(yǔ)言,用來(lái)查詢數(shù)據(jù)庫(kù)中表的記錄
整體語(yǔ)法概覽
select 字段列表 from 表名列表 where 條件列表 group by 分組字段列表 having 分組后條件列表 order by 排序字段列表 limit 分頁(yè)參數(shù)
基本查詢
條件查詢(where)
聚合函數(shù)(count,max,min,avg,sum)
分組查詢(group by)
排序查詢(order by)
分頁(yè)查詢(limit)
輔助建表內(nèi)容
create table emp(
id int comment 編號(hào) ,
worknum varchar(10) comment 工號(hào) ,
name varchar(10) comment 姓名 ,
gender char(1) comment 性別 ,
age tinyint unsigned comment 年齡 ,
idcard char(18) comment 身份證號(hào) ,
workaddress varchar(50) comment 工作地址 ,
entrydate date comment 入職時(shí)間
)comment 員工表
insert into emp (id,worknum,name,gender,age,idcard,workaddress,entrydate)
values (1, 1 , 柳巖 , 女 ,20, 123456789012345678 , 北京 , 2000-01-01),
(2, 2 , 張無(wú)忌 , 男 ,18, 123456789012345670 , 北京 , 2005-09-01),
(3, 3 , 韋一笑 , 男 ,38, 123456789712345670 , 上海 , 2005-08-01),
(4, 4 , 趙敏 , 女 ,18, 123456757123845670 , 北京 , 2009-12-01),
(5, 5 , 小昭 , 女 ,16, 123456769012345678 , 上海 , 2007-07-01),
(6, 6 , 楊逍 , 男 ,28, 12345678931234567X , 北京 , 2006-01-01),
(7, 7 , 范瑤 , 男 ,40, 123456789212345670 , 北京 , 2005-05-01),
(8, 8 , 黛綺絲 , 女 ,38, 123456157123645670 , 天津 , 2015-05-01),
(9, 9 , 范涼涼 , 女 ,45, 123156789012345678 , 北京 , 2010-04-01),
(10, 10 , 陳友諒 , 男 ,53, 123456789012345670 , 上海 , 2011-01-01),
(11, 11 , 張士誠(chéng) , 男 ,55, 123567897123465670 , 江蘇 , 2015-05-01),
(12, 12 , 常遇春 , 男 ,32, 123446757152345670 , 北京 , 2004-02-01),
(13, 13 , 張三豐 , 男 ,88, 123656789012345678 , 江蘇 , 2020-11-01),
(14, 14 , 滅絕 , 女 ,65, 123456719012345670 , 西安 , 2019-05-01),
(15, 15 , 胡青牛 , 男 ,70, 12345674971234567X , 西安 , 2018-04-01),
(16, 16 , 周芷若 , 女 ,18,null, 北京 , 2012-06-01
基本查詢
查詢多個(gè)字段
select 字段 1, 字段 2, 字段 3.....from 表名;
select *from 表名;
設(shè)置別名
select 字段 1 [as 別名 1], 字段 2 [as 別名 2] .... from 表名;
#as 可省略
去除重復(fù)記錄
select distinct 字段列表 from 表名;
條件查詢
語(yǔ)法
select 字段列表 from 表名 where 條件列表;
登錄后復(fù)制
條件
比較運(yùn)算符功能邏輯運(yùn)算符功能 大于 and 或 并且 (多個(gè)條件同時(shí)成立) = 大于等于 or 或 || 或者 (多個(gè)條件任意一個(gè)成立) 小于 not 或!非,不是 = 小于等于
= 等于
或 != 不等于
between…and… 在某個(gè)范圍內(nèi) (含最小,最大值)
in(…..) 在 in 之后的列表中的值,多選一
like 占位符模糊匹配 (_匹配單個(gè)字符,% 匹配任意個(gè)字符)
is null 是 null
聚散函數(shù)
常見聚合函數(shù)
函數(shù)功能 count 統(tǒng)計(jì)數(shù)量 max 最大值 min 最小值 avg 平均值 sum 求和
語(yǔ)法
select 聚合函數(shù) (字段列表) from 表名;
[注]:null 值不參與所有聚合函數(shù)運(yùn)算
分組查詢
語(yǔ)法
select 字段列表 from 表名 [where 條件] group by 分組字段名 [having 分組過(guò)濾條件];
where 與 having 區(qū)別
1. 執(zhí)行時(shí)機(jī)不同:where 是分組之前進(jìn)行過(guò)濾,不滿足 where 條件,不參與分組;
having 是分組之后對(duì)結(jié)果進(jìn)行過(guò)濾。
2. 判斷條件不同:where 不能對(duì)聚合函數(shù)進(jìn)行判斷,而 having 可以。
排序查詢
語(yǔ)法
select 字段列表 from 表名 order by 字段 1 排序方式 1 , 字段 2 排序方式 2;
#排序方式
#asc: 升序 (默認(rèn)值)
#desc: 降序
[注]:如果是多字段排序,當(dāng)?shù)谝粋€(gè)字段值相同時(shí),才會(huì)根據(jù)第二個(gè)字段進(jìn)行排序。
分頁(yè)查詢
語(yǔ)法
select 字段列表 from 表名 limit 起始索引, 查詢記錄數(shù);
[注]:
起始索引從 0 開始,起始索引 =(查詢頁(yè)碼 – 1)* 每頁(yè)顯示記錄數(shù)
分頁(yè)查詢是數(shù)據(jù)庫(kù)的方言,不同的數(shù)據(jù)庫(kù)有不同的實(shí)現(xiàn),MySQL 中是 limit
如果查詢的是第一頁(yè)數(shù)據(jù),起始索引可以省略,直接簡(jiǎn)寫為 limit 10
案例練習(xí)
整體語(yǔ)法順序
四、DCL(Data Control Language)
數(shù)據(jù)控制語(yǔ)言,用來(lái)創(chuàng)建數(shù)據(jù)庫(kù)用戶,控制數(shù)據(jù)庫(kù)的訪問(wèn)權(quán)限
管理用戶
查詢用戶
use mysql;
select *from user;
創(chuàng)建用戶
create user 用戶名 @ 主機(jī)名 identified 密碼
修改用戶密碼
alter user 用戶名 @ 主機(jī)名 identified with mysql_native_password by 新密碼
刪除用戶
drop user 用戶名 @ 主機(jī)名
[注]:
主機(jī)名可以使用 % 通配
這類 SQL 開發(fā)人員操作的比較少,主要是 DBA(Database Administrator)使用
權(quán)限控制
常用的權(quán)限
權(quán)限說(shuō)明 all,all privileges 所有權(quán)限 select 查詢數(shù)據(jù) insert 插入數(shù)據(jù) update 修改數(shù)據(jù) delete 刪除數(shù)據(jù) alter 修改表 drop 刪除數(shù)據(jù)庫(kù) / 表 / 視圖 create 創(chuàng)建數(shù)據(jù)庫(kù) / 表
查詢權(quán)限
show grants for 用戶名 @ 主機(jī)名
授予權(quán)限
grant 權(quán)限列表 on 數(shù)據(jù)庫(kù)名. 表名 to 用戶名 @ 主機(jī)名
撤銷權(quán)限
revoke 權(quán)限列表 on 數(shù)據(jù)庫(kù)名. 表名 from 用戶名 @ 主機(jī)名
[注]:
多個(gè)權(quán)限之間,使用逗號(hào)分割
授權(quán)時(shí),數(shù)據(jù)庫(kù)名和表名可以使用 * 進(jìn)行通配,代表所有
到此,相信大家對(duì)“SQL 基本語(yǔ)句有哪些及怎么使用”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是丸趣 TV 網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!