千萬級資料並行如何處理?進入學習
推薦學習:《》
資料定義語言,用來定義資料庫物件(資料庫,表,欄位)
查詢
查詢所有資料庫
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 表名;
登入後複製
資料操作語言,用來對資料庫表中的資料進行增刪改
輔助用建表格式
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)
資料查詢語言,用來查詢資料庫中表的記錄
整體語法概覽
select | 欄位列表 |
from | 表名列表 |
where | 條件列表 |
group by | 分組欄位列表 |
having | 分組後條件列表 |
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 起始索引,查詢記錄數;
登入後複製
[注]:
案例練習
整體語法順序
資料控制語言,用來建立資料庫使用者,控制資料庫的存取許可權
管理使用者
查詢使用者
use mysql;
select *from user;
登入後複製
建立使用者
create user '使用者名稱'@'主機名' identified '密碼';
登入後複製
修改使用者密碼
alter user '使用者名稱'@'主機名' identified with mysql_native_password by '新密碼';
登入後複製
刪除使用者
drop user '使用者名稱'@'主機名';
登入後複製
[注]:
許可權控制
常用的許可權
許可權 | 說明 |
all,all privileges | 所有許可權 |
select | 查詢資料 |
insert | 插入資料 |
update | 修改資料 |
delete | 刪除資料 |
alter | 修改表 |
drop | 刪除資料庫/表/檢視 |
create | 建立資料庫/表 |
查詢許可權
show grants for '使用者名稱'@'主機名';
登入後複製
授予許可權
grant 許可權列表 on 資料庫名.表名 to '使用者名稱'@'主機名';
登入後複製
復原許可權
revoke 許可權列表 on 資料庫名.表名 from '使用者名稱'@'主機名';
登入後複製
[注]:
推薦學習:《》
以上就是根據範例整理總結SQL基本語句的詳細內容,更多請關注TW511.COM其它相關文章!