根據範例整理總結SQL基本語句

2022-11-16 18:00:20
本篇文章給大家帶來了關於的相關知識,其中主要介紹了關於SQL基本語句的整理,包括了DDL、DML、DQL等等內容,下面一起來看一下,希望對大家有幫助。

千萬級資料並行如何處理?進入學習

推薦學習:《》

一、DDL(Data Definition Language)

資料定義語言,用來定義資料庫物件(資料庫,表,欄位)

查詢

查詢所有資料庫

show databases;
登入後複製

查詢當前資料庫

select database();
登入後複製

建立

create database [if not exists] 資料庫名 [default charset 字元集][collate 排序規則];

#中括號裡的可加可不加,具體情況而定
#第一個是如果不存在相同名稱的資料庫則建立
#第二個是設定字元的字元集和排序規則
登入後複製

刪除

drop database [if exists] 資料庫名;

#中括號是如果存在相同名稱的資料庫就刪除
登入後複製

使用

use 資料庫名;
登入後複製

表操作-建立

create table 表名 (
        欄位1 欄位1型別[comment 欄位1註釋],
        欄位2 欄位2型別[comment 欄位2註釋],
        欄位3 欄位3型別[comment 欄位3註釋],
        ......
        欄位n 欄位n型別[comment 欄位n註釋]
)[comment 表註釋];
登入後複製

注:[....]為可選引數,最後一個欄位後面沒有逗號

表操作-修改

新增欄位

alter table 表名 add 欄位名 型別(長度) [comment 註釋][約束];
登入後複製

修改資料型別

alter table 表名 modify 欄位名 新資料型別(長度);
登入後複製

修改欄位名和欄位型別

alter table 表名 change 舊欄位名 新欄位名 型別(長度)[comment 註釋][約束];
登入後複製

刪除欄位

alter table 表名 drop 欄位名;
登入後複製

修改表名

alter table 表名 rename to 新表名;
登入後複製

表操作-刪除

刪除表(讓指定表從資料庫消失)

drop table [if exists] 表名;
登入後複製

刪除指定表,並重新建立該表(俗稱格式化)

truncate table 表名;
登入後複製

二、DML(Data Manipulation Language)

資料操作語言,用來對資料庫表中的資料進行增刪改

輔助用建表格式

create table worktable(
id int comment '編號',
worknum int comment '工號',
name varchar(20) comment '姓名',
sex char(1) comment '性別',
age int comment '年齡',
idcard int comment '身份證號',
entrydate date comment '入職日期'
)comment '員工資訊表';
登入後複製

新增資料

給指定欄位新增資料

insert into 表名(欄位名1,欄位名2,.....) values(值1,值2,......);
登入後複製

給全部欄位新增資料

insert into 表名 values (值1,值2,.....);
登入後複製

批次新增資料

insert into 表名(欄位名1,欄位名2,.....) 
values(值1,值2,......),(值1,值2,......),(值1,值2,......);


insert into 表名 
values (值1,值2,.....),(值1,值2,......),(值1,值2,......);
登入後複製

[注]:

· 插入資料時,指定的欄位順序需要與值的順序是一一對應的

·字串和日期型資料應該包含在引號中

·插入的資料大小,應該在欄位的規定範圍內

修改資料

update 表名 set 欄位名1=值1,欄位名2=值2,....[where 條件];
登入後複製

[注]:修改語句的條件可以有,也可以沒有,如果沒有條件,則會修改整張表的所有資料

刪除資料

delete from 表名 [where 條件];
登入後複製

[注]:

·delete語句的條件可以有,也可以沒有,如果沒有條件,則會刪除整張表的所有資料

·delete語句不能刪除某一個欄位的值(可以使用update)

三、DQL(Data Query Language)

資料查詢語言,用來查詢資料庫中表的記錄

整體語法概覽

select欄位列表
from表名列表
where條件列表
group by分組欄位列表
having分組後條件列表
order by排序欄位列表
limit分頁引數
  • 基本查詢
  • 條件查詢(where
  • 聚合函數(count,max,min,avg,sum
  • 分組查詢(group by
  • 排序查詢(order by
  • 分頁查詢(limit

輔助建表內容

create  table emp(
id             int                comment '編號',
worknum        varchar(10)        comment '工號',
name           varchar(10)        comment '姓名',
gender         char(1)            comment '性別',
age            tinyint unsigned   comment '年齡',
idcard         char(18)           comment '身份證號',
workaddress    varchar(50)        comment '工作地址',
entrydate      date               comment '入職時間'
)comment '員工表';

insert into emp (id,worknum,name,gender,age,idcard,workaddress,entrydate)
values  (1,'1','柳巖','女',20,'123456789012345678','北京','2000-01-01'),
        (2,'2','張無忌','男',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','張士誠','男',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');
登入後複製

基本查詢

查詢多個欄位

select 欄位1,欄位2,欄位3.....from 表名;
select *from 表名;
登入後複製

設定別名

select 欄位1 [as 別名1],欄位2 [as 別名2] .... from 表名;

#as可省略
登入後複製

去除重複記錄

select distinct 欄位列表 from 表名;
登入後複製

條件查詢

語法

select 欄位列表 from 表名 where 條件列表;
登入後複製

條件

比較運運算元功能邏輯運運算元功能
>大於and 或 &&並且(多個條件同時成立)
>=大於等於or 或 ||或者(多個條件任意一個成立)
<小於not 或 !非,不是
<=小於等於

=等於

<> 或 !=不等於

between...and...在某個範圍內(含最小,最大值)

in(.....)在in之後的列表中的值,多選一

like 預留位置模糊匹配(_匹配單個字元,%匹配任意個字元)

is null是null

聚散函數

常見聚合函數

函數功能
count統計數量
max最大值
min最小值
avg平均值
sum求和

語法

select 聚合函數(欄位列表) from 表名;
登入後複製

[注]:null值不參與所有聚合函數運算

分組查詢

語法

select 欄位列表 from 表名 [where 條件] group by 分組欄位名 [having 分組過濾條件];
登入後複製

where 與 having 區別

1.執行時機不同:where是分組之前進行過濾,不滿足where條件,不參與分組;

having是分組之後對結果進行過濾。

2.判斷條件不同:where不能對聚合函數進行判斷,而having可以。

排序查詢

語法

select 欄位列表 from 表名 order by 欄位1 排序方式1 , 欄位2 排序方式2;

#排序方式
#asc:升序(預設值)
#desc:降序
登入後複製

[注]:如果是多欄位排序,當第一個欄位值相同時,才會根據第二個欄位進行排序。

分頁查詢

語法

select 欄位列表 from 表名 limit 起始索引,查詢記錄數;
登入後複製

[注]:

  • 起始索引從0開始,起始索引 = (查詢頁碼 - 1) * 每頁顯示記錄數
  • 分頁查詢是資料庫的方言,不同的資料庫有不同的實現,MySQL中是limit
  • 如果查詢的是第一頁資料,起始索引可以省略,直接簡寫為limit 10

案例練習

整體語法順序


四、DCL(Data Control Language)

資料控制語言,用來建立資料庫使用者,控制資料庫的存取許可權

管理使用者

查詢使用者

use mysql;
select *from user;
登入後複製

建立使用者

create user '使用者名稱'@'主機名' identified '密碼';
登入後複製

修改使用者密碼

alter user '使用者名稱'@'主機名' identified with mysql_native_password by '新密碼';
登入後複製

刪除使用者

drop user '使用者名稱'@'主機名';
登入後複製

[注]:

  • 主機名可以使用%通配
  • 這類SQL開發人員操作的比較少,主要是DBA(Database Administrator)使用

許可權控制

常用的許可權

許可權說明
all,all privileges所有許可權
select查詢資料
insert插入資料
update修改資料
delete刪除資料
alter修改表
drop刪除資料庫/表/檢視
create建立資料庫/表

查詢許可權

show grants for '使用者名稱'@'主機名';
登入後複製

授予許可權

grant 許可權列表 on 資料庫名.表名 to '使用者名稱'@'主機名';
登入後複製

復原許可權

revoke 許可權列表 on 資料庫名.表名 from '使用者名稱'@'主機名';
登入後複製

[注]:

  • 多個許可權之間,使用逗號分割
  • 授權時,資料庫名和表名可以使用 * 進行通配,代表所有

推薦學習:《》

以上就是根據範例整理總結SQL基本語句的詳細內容,更多請關注TW511.COM其它相關文章!