網(wǎng)站建設(shè)費用包括哪些內(nèi)容優(yōu)化落實新十條措施
🍎道阻且長,行則將至。🍓
目錄
一、SQL概述
1.簡介
2.格式語法
3.SQL分類
二、DDL操作數(shù)據(jù)庫
1.創(chuàng)建數(shù)據(jù)庫
2.查詢與使用
3.刪除數(shù)據(jù)庫
三、DDL:操作表
????????(1)數(shù)據(jù)類型
? ? ? ? (2)創(chuàng)建表
????????(3)查詢當(dāng)前數(shù)據(jù)庫的表?
? ? ? ? (4)刪除表
????????(5)修改表
四、DML:操作數(shù)據(jù)
????????(1)添加數(shù)據(jù)
????????(2)修改數(shù)據(jù)
????????(3)刪除數(shù)據(jù)
四、DQL
????????(1)基礎(chǔ)查詢
????????(2)條件查詢
????????(3)模糊查詢
????????(4)排序查詢
????????(5)聚合函數(shù)
????????(6)分組查詢
????????(7)分頁查詢
一、SQL概述
1.簡介
Structured Query Language,簡稱 SQL,即結(jié)構(gòu)化查詢語言,是一門操作關(guān)系型數(shù)據(jù)庫的編程語言,它定義操作所有關(guān)系型數(shù)據(jù)庫的統(tǒng)一標(biāo)準(zhǔn),對于同一個需求,不同數(shù)據(jù)庫操作的方式可能會存在一些不一樣的地方,稱為“方言”。
2.格式語法
SQL 語句可以單行或多行書寫,以分號結(jié)尾。MySQL 數(shù)據(jù)庫的 SQL 語句不區(qū)分大小寫,關(guān)鍵字建議使用大寫。 注釋:
單行注釋: -- 注釋?(--后面要加空格 )或 #注釋(MySQL 特有);
多行注釋: /* 注釋 */。
3.SQL分類
? ? ? ? (1)DDL(Data Definition Language) ?數(shù)據(jù)定義語言
用來定義數(shù)據(jù)庫對象:數(shù)據(jù)庫,表,列等;
????????(2)DML(Data Manipulation Language) 數(shù)據(jù)操作語言
對數(shù)據(jù)庫中表的數(shù)據(jù)進行增刪改;
????????(3)DQL(Data Query Language) 數(shù)據(jù)查詢語言
從數(shù)據(jù)庫表中查詢到我們想要的數(shù)據(jù);
????????(4)DCL(Data Control Language) 數(shù)據(jù)控制語言
定義數(shù)據(jù)庫的訪問權(quán)限和安全級別,及創(chuàng)建用戶。
最常操作的是 DML
和 DQL
,因為我們開發(fā)中最常操作的就是數(shù)據(jù)。
二、DDL操作數(shù)據(jù)庫
1.創(chuàng)建數(shù)據(jù)庫
CREATE DATABASE 數(shù)據(jù)庫名稱;
創(chuàng)建數(shù)據(jù)庫的時候先做判斷,如果不存在再創(chuàng)建:
CREATE DATABASE IF NOT EXISTS 數(shù)據(jù)庫名稱;
2.查詢與使用
- 查詢所有的數(shù)據(jù)庫: SHOW DATABASES;
- 使用數(shù)據(jù)庫 :USE 數(shù)據(jù)庫名稱;
- ?查看當(dāng)前使用的數(shù)據(jù)庫:SELECT DATABASE();
3.刪除數(shù)據(jù)庫
DROP DATABASE 數(shù)據(jù)庫名稱;
DROP DATABASE IF EXISTS 數(shù)據(jù)庫名稱;
三、DDL:操作表
操作表也就是對表進行增(Create)刪(Retrieve)改(Update)查(Delete)
????????(1)數(shù)據(jù)類型
MySQL 支持多種類型,可以分為三類:
數(shù)值:
tinyint : 小整數(shù)型,占一個字節(jié)
int : 大整數(shù)類型,占四個字節(jié)eg : age int
double : 浮點類型使用格式: 字段名 double(總長度,小數(shù)點后保留的位數(shù))eg : score double(5,2)
日期:
date : 日期值。只包含年月日eg :birthday date :
datetime : 混合日期和時間值。包含年月日時分秒
字符串:
char : 定長字符串。優(yōu)點:存儲性能高缺點:浪費空間eg : name char(10) 如果存儲的數(shù)據(jù)字符個數(shù)不足10個,也會占10個的空間
varchar : 變長字符串。優(yōu)點:節(jié)約空間缺點:存儲性能底eg : name varchar(10) 如果存儲的數(shù)據(jù)字符個數(shù)不足10個,那就數(shù)據(jù)字符個數(shù)是幾就占幾個的空間
? ? ? ? (2)創(chuàng)建表
CREATE TABLE 表名 (字段名1 數(shù)據(jù)類型1,字段名2 數(shù)據(jù)類型2,…字段名n 數(shù)據(jù)類型n
);
注意最后一行沒有逗號。
????????(3)查詢當(dāng)前數(shù)據(jù)庫的表?
SHOW TABLES;
DESC 表名稱;??查看mysql數(shù)據(jù)庫中表的結(jié)構(gòu)。
? ? ? ? (4)刪除表
DROP TABLE 表名;
DROP TABLE IF EXISTS 表名;
????????(5)修改表
ALTER TABLE 表名 RENAME TO 新的表名;
ALTER TABLE 表名 ADD 列名 數(shù)據(jù)類型;????????????????添加一列
ALTER TABLE 表名 DROP 列名;? ? ? ? ? ? ? ? ? ? ? ? ? ? ?刪除一列
ALTER TABLE 表名 MODIFY 列名 新數(shù)據(jù)類型;
ALTER TABLE 表名 CHANGE 列名 新列名 新數(shù)據(jù)類型;
四、DML:操作數(shù)據(jù)
DML主要是對數(shù)據(jù)進行增(insert)刪(delete)改(update)操作。在命令行寫sql語句特別不方便,尤其是編寫創(chuàng)建表的語句, 【Navicat 官網(wǎng)鏈接】 Navicat for MySQL 是管理和開發(fā) MySQL 或 MariaDB 的理想解決方案,為數(shù)據(jù)庫管理、開發(fā)和維護提供了一款直觀而強大的圖形界面。
????????(1)添加數(shù)據(jù)
-- 指定列添加數(shù)據(jù)
INSERT INTO 表名(列名1,列名2,…) VALUES(值1,值2,…);
-- 全部列添加數(shù)據(jù)**
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,…)…;
????????(2)修改數(shù)據(jù)
UPDATE 表名 SET 列名1=值1,列名2=值2,… [WHERE 條件] ;
-- 修改語句中不加[WHERE 條件]條件,將修改所有數(shù)據(jù)
????????(3)刪除數(shù)據(jù)
DELETE FROM 表名 [WHERE 條件] ;
四、DQL
DQL是對表中的數(shù)據(jù)進行查詢。
????????(1)基礎(chǔ)查詢
-- 查詢多個字段
SELECT 字段列表 FROM 表名;
SELECT * FROM 表名; -- 查詢所有數(shù)據(jù)
-- 去除重復(fù)記錄 DISTINCT
SELECT DISTINCT 字段列表 FROM 表名;
-- 別名
AS
????????(2)條件查詢
SELECT 字段列表 FROM 表名 WHERE 條件列表;
????????(3)模糊查詢
select * from stu where name like '李%';
-- (1)_ : 代表單個任意字符
-- (2)% : 代表任意個數(shù)字符
????????(4)排序查詢
SELECT 字段列表 FROM 表名 ORDER BY 排序字段名1 [排序方式1],排序字段名2 [排序方式2] …;-- 排序方式有兩種,分別是:
-- ASC : 升序排列(默認(rèn))
-- DESC : 降序排列如果有多個排序條件,當(dāng)前邊的條件值一樣時,才會根據(jù)第二條件進行排序
????????(5)聚合函數(shù)
SELECT 聚合函數(shù)名(列名) FROM 表;
-- null 值不參與所有聚合函數(shù)運算
????????(6)分組查詢
SELECT 字段列表 FROM 表名 [WHERE 分組前條件限定] GROUP BY 分組字段名 [HAVING 分組后條件過濾];
p:分組之后,查詢的字段為聚合函數(shù)和分組字段,查詢其他字段無任何意義
pp:where 和 having 區(qū)別:
執(zhí)行時機不一樣:where 是分組之前進行限定,不滿足where條件,則不參與分組,而having是分組之后對結(jié)果進行過濾。可判斷的條件不一樣:where 不能對聚合函數(shù)進行判斷,having 可以。
????????(7)分頁查詢
分頁查詢是將數(shù)據(jù)一頁一頁的展示
SELECT 字段列表 FROM 表名 LIMIT 起始索引 , 查詢條目數(shù);
-- 起始索引是從0開始
?物有本末,事有終始,知所先后。🍭