日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Mysql基础语法DDL、DML、DQL

發布時間:2025/3/15 数据库 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Mysql基础语法DDL、DML、DQL 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

DDL:

  • DDL(Data Definition Language)數據定義語言
  • 用來定義數據庫對象:數據庫,表,列等。關鍵字:create, drop,alter 等
DML語句操作關鍵字
添加INSERT INTO 表名 (字段名) VALUES (值);
修改UPDATE 表名 SET 字段名=新的值;
刪除DELETE FROM 表名;
查詢SELECT * FROM 表名;
含義SQL語句
查詢所有的數據庫SHOW DATABASES;
查詢當前正在使用的數據庫SELECT DATABASE();
使用數據庫USE 數據庫名;
查詢某個數據庫的定義信息SHOW CREATE DATABASE 數據庫名;
創建數據庫CREATE DATABASE 數據庫名;
判斷是否存在并創建數據庫CREATE DATABASE IF NOT EXISTS 數據庫名;
創建數據庫并指定字符集(編碼表)CREATE DATABASE 數據庫名 DEFAULT CHARACTER SET 編碼;
判斷數據庫不存在再創建數據庫并指定字符集CREATE DATABASE IF NOT EXISTS 數據庫名 CHARACTER SET 編碼;
修改數據庫字符集ALTER DATABASE 數據庫名DEFAULT CHARACTER SET 新字符集;
刪除數據庫DROP DATABASE 數據庫名;
如果數據庫存在再刪除數據庫DROP DATABASE IF EXISTS 數據庫名;

演示:

-- 查詢所有的數據庫 SHOW DATABASES;-- 查詢當前正在使用的數據庫 SELECT DATABASE();-- 使用數據庫 USE db1;-- 查詢某個數據庫的定義信息 SHOW CREATE DATABASE db1;-- 創建數據庫 CREATE DATABASE db2;-- 判斷是否存在并創建數據庫 CREATE DATABASE IF NOT EXISTS db2;-- -- 創建數據庫并指定字符集(不指定的話默認的是UTF-8) CREATE DATABASE db4 CHARACTER SET utf8;-- 判斷數據庫不存在再創建數據庫并指定字符集 CREATE DATABASE IF NOT EXISTS db3 CHARACTER SET utf8;-- 修改數據庫字符集 ALTER DATABASE db1 CHARACTER SET utf8;-- 刪除數據庫 DROP DATABASE db3;-- 如果數據庫存在再刪除數據庫 DROP DATABASE IF EXISTS db3; 含義SQL語句
查看數據庫中的所有的表SHOW TABLES;
查看表結構DESC 表名;
查看創建表的SQL語句SHOW CREATE TABLE 表名;
查看數據表信息SHOW TABLE STATUS FROM 數據庫 LIKE 表名;
創建表CREATE TABLE 表名(列名 數據類型 約束,列名 數據類型 約束);
快速創建一個表結構相同的表CREATE TABLE 表名 LIKE 其他表;
直接刪除表DROP TABLE 表名;
判斷表是否存在并刪除表DROP TABLE IF EXISTS 表名;
添加表一列ALTER TABLE 表名 ADD 字段名 字段類型;
修改列類型ALTER TABLE 表名 MODIFY 字段名 新類型;
修改列名ALTER TABLE 表名 CHANGE 老字段名 新字段名 類型;
刪除列ALTER TABLE 表名 DROP 字段名;
修改表名RENAME TABLE 表名 TO 新表名;
修改表名ALTER TABLE 表名 RENAME TO 新表名;
修改表的字符集ALTER TABLE 表名 DEFAULT CHARACTER SET 新字符集;

演示:

-- 查詢表 SHOW TABLES;-- 查詢表結構 DESC student;-- 查看創建表的SQL語句 SHOW CREATE TABLE student;-- 查看數據表信息 SHOW TABLE STATUS FROM db1 LIKE 'student';-- 創建數據表 CREATE TABLE student2( id INT, name VARCHAR(20), age TINYINT, address VARCHAR(100) );-- 判斷是否存在并創建數據表 CREATE TABLE IF NOT EXISTS student2( id INT, name VARCHAR(20), age TINYINT, address VARCHAR(100) );-- 快速創建一個表結構相同的表 CREATE TABLE student3 LIKE student;-- 顯示表的相關信息 SHOW TABLE STATUS FROM db1 LIKE 'student';-- 刪除數據表 DROP TABLE student2;-- 判斷表是否存在并刪除表 DROP TABLE IF EXISTS student2;-- 添加表中的列 ALTER TABLE student ADD Test VARCHAR(20);-- 修改列的類型 ALTER TABLE student MODIFY Test INT;-- 修改列名 ALTER TABLE student CHANGE Test Test2 VARCHAR(20);-- 刪除列 ALTER TABLE student DROP Test2;-- 修改表名 RENAME TABLE student TO student2;-- 修改表的字符集 ALTER TABLE student2 DEFAULT CHARACTER SET utf8;

DML:

  • DML(Data Manipulation Language)數據操作語言
  • 用來對數據庫中表的數據進行增刪改。關鍵字:insert, delete, update 等
含義SQL語句
給全部列添加數據INSERT INTO表名 VALUES (值1, 值2, 值3,…);
給指定列添加數據INSERT INTO 表名 (字段名1, 字段名2, 字段名3, …) VALUES (值1, 值2, 值3, …);
不帶條件修改數據UPDATE 表名 SET 字段名=值;
帶條件修改數據UPDATE 表名 SET 字段名=值 WHERE 字段名=值;
不帶條件刪除數據DELETE FROM 表名;
帶條件刪除數據DELETE FROM 表名 WHERE 字段名=值;
truncate刪除表記錄TRUNCATE TABLE 表名;

演示:

  • 列名和值的數量以及數據類型要對應,除了數字類其他數據類型的數據都需要加單引號
  • 修改語句中必須加條件,如果不加條件會把所有的數據都修改/刪除
-- 默認給全部列添加數據 INSERT INTO表名 VALUES (值1, 值2, 值3,…); INSERT INTO student VALUES (1, '李白', 100, '王者峽谷');-- 給指定列添加數據 INSERT INTO 表名(列名1,列名2...)VALUES(值1,值2...); INSERT INTO student (id, name, age, address) VALUES (2, '韓信', 90, '王者峽谷'); INSERT INTO student (id, name) VALUES (3, '露娜');-- 批量添加數據 INSERT INTO 表名 VALUES (值1,值2,...),(值1,值2,...); INSERT INTO student VALUES (4, '宮本', 80, '王者峽谷'), (5, '猴子', 70, '王者峽谷'), (6, '阿珂', 60, '王者峽谷');-- 不帶條件修改數據 修改表中所有adress=王者峽谷的數據 UPDATE student SET address = '野區';-- 帶條件修改數據 UPDATE 表名 SET 字段名=值 WHERE 字段名=值; UPDATE student SET age = 99 WHERE id = 1; UPDATE student SET name = '韓信', age = 99, address = '王者峽谷' WHERE id = 2;-- 不帶條件刪除數據 刪除表中所有數據 DELETE FROM student;-- 帶條件刪除數據 DELETE FROM 表名 WHERE條件; DELETE FROM student WHERE name = '李白'; DELETE FROM student WHERE id = '2';

DQL:

  • (Data Query Language)數據查詢語言
  • 用來查詢數據庫中表的記錄(數據)。關鍵字:select, where 等
單表數據查詢語法:
  • SELECT 字段列表
  • FROM 表名列表
  • WHERE 條件列表
  • GROUP BY 分組字段
  • HAVING 分組后的過濾條件
  • ORDER BY 排序
  • LIMIT 分頁
查詢全部:
含義SQL語句
查詢全部表數據SELECT * FROM 表名;
查詢指定字段的表數據SELECT 列名1,列名2,…FROM 表名;
去除重復查詢SELECT DISTINCT 列名1,列名2,…FROM 表名;
計算列的值(四則運算)SELECT 列名1 運算符(+ — * /) 列名2 FROM 表名;
查詢時進行null的判斷SELECT IFNULL 列名(要替換的列,要替換的值)FROM 表名;
起別名查詢SELECT 列名 AS 別名 FROM 表名;

演示:

-- 查詢全部表數據 SELECT * FROM 表名; SELECT * FROM student;-- 查詢指定字段的表數據 SELECT 列名1,列名2,...FROM 表名; SELECT id, name, age FROM student;-- 去除重復查詢 SELECT DISTINCT 列名1,列名2,...FROM 表名; SELECT DISTINCT address FROM student;-- 計算列的值(四則運算) SELECT 列名1 運算符(+ — * /)列名2 FROM 表名; SELECT age + 100 FROM student; SELECT age + 100 FROM student WHERE id = 5;-- 查詢時候進行null的判斷,用SELECT ifnull 列名(要替換的列,要替換的值)FROM 表名; SELECT name, IFNULL(age, 0) + 10 FROM student;-- 起別名查詢 as可寫可不寫,不寫要空格 SELECT 列名 AS 別名 FROM 表名; SELECT age AS "年齡" FROM student;
條件查詢:

查詢語法:

SELECT 列名列表 FROM 表名 WHERE 條件; 符號功能
>大于
<小于
>=大于等于
<=小于等于
=等于
<> 或 !=不等于
BETWEEN … AND …在某個范圍之內(都包含)
IN(…)多選一
LIKE 占位符模糊查詢 _單個任意字符 %多個任意字符
IS NULL是NULL
IS NOT NULL不是NULL
AND 或 &&并且
OR 或 ||或者
NOT 或 ! 非不是

演示:

-- 查詢語法 SELECT 列名列表 FROM 表名 WHERE 條件; -- 查詢年齡大于80的用戶信息 SELECT * FROM student WHERE age > 80;-- 查詢姓名是韓信的用戶信息 SELECT * FROM student WHERE age > 80 AND name = '韓信';-- 查詢年齡在60和80之間的用戶信息 SELECT * FROM student WHERE age >= 80 AND age <= 100; SELECT * FROM student WHERE age BETWEEN 80 AND 100;-- 查詢id是1,2,3的用戶 SELECT * FROM student WHERE id = 1 OR id = 2 OR id = 3; SELECT * FROM student WHERE id IN (1, 2, 3);-- 查詢姓名是null的用戶 SELECT * FROM student WHERE name IS NULL;-- 查詢姓名不是null的用戶 SELECT * FROM student WHERE name IS NOT NULL;-- 模糊查詢 -- 查詢姓韓的用戶 %:多個任意字符 SELECT * FROM student WHERE name LIKE '韓%';-- 查詢姓名帶虎的用戶 _:一個任意字符 SELECT * FROM student WHERE name LIKE '_虎%';-- 查詢名字是兩個的用戶 SELECT * FROM student WHERE name LIKE '__';-- 查詢名字帶猴的 SELECT * FROM student WHERE name LIKE '%猴%';
聚合函數查詢:

聚合函數:將一列數據作為一個整體,進行縱向的計算

函數名功能
count(列名)統計數量(一般選用不為null的列)
max(列名)最大值
min(列名)最小值
sum(列名)求和
avg(列名)平均值
-- 計算總記錄條數 SELECT COUNT(*) FROM student;-- 獲取最大年齡 SELECT MAX(age) FROM student;-- 獲取最小年齡 SELECT MIN(age) FROM student;-- 獲取所有年齡和 SELECT SUM(age) FROM student;-- 獲取地址為王者峽谷用戶年齡和 SELECT SUM(age) FROM student WHERE address = '王者峽谷';-- 獲取地址為王者峽谷用戶平均年齡 SELECT AVG(age) FROM student WHERE address = '王者峽谷';
排序查詢:
  • 排序查詢:多個排序條件,當前邊的條件值一樣時,才會判斷第二條件

排序方式:

  • ASC:升序
  • DESC:降序
含義SQL語句
排序查詢SELECT 列名 FROM 表名 WHERE 條件 ORDER BY 列名1 排序方式1,列名2 排序方式2;
-- 根據年齡升序排序 SELECT * FROM student ORDER BY age ASC;-- 根據年齡降序排序 SELECT * FROM student ORDER BY age DESC;-- 查詢手機中的帶信的用戶,根據年齡升序排序 SELECT * FROM student WHERE name LIKE '%信%' ORDER BY age DESC;-- 按照年齡升序,如果年齡相同,按照id排序 SELECT * FROM student ORDER BY age ASC, id DESC;
排序查詢:
含義SQL語句
排序SELECT 列名 FROM 表名 WHERE 條件 GROUP BY 分組列名 HAVING 分組后條件過濾 ORDER BY 排序列名 排序方式

演示:

-- 按照地址分組,獲取每組的年齡和 SELECT address ,SUM(age) FROM student GROUP BY address;-- 年齡大于60的進行分組,按照地區分組,獲取每組的年齡和 SELECT address, SUM(age) FROM student WHERE age > 60 GROUP BY address;-- 年齡大于60的進行分組,按照地區分組,獲取每組的總年齡,只顯示總年齡大于200的 SELECT address, SUM(age) AS getSum FROM student WHERE age > 60 GROUP BY address HAVING getSum > 200;-- 年齡大于60的進行分組,按照地區分組,獲取每組的總年齡,只顯示總年齡大于200的,并按照總年齡降序排序 SELECT address, SUM(age) AS getSum FROM student WHERE age > 60 GROUP BY address HAVING getSum > 200 ORDER BY getSum DESC;
分頁查詢:

數據多的時候使用,就像百度去搜東西一樣分頁顯示
LIMIT 當前頁數,每頁顯示的條數

含義SQL語句
分頁查詢SELECT 列名 FROM 表名 WHERE 條件 GROUP BY 分組列名 HAVING 分組后條件過濾 ORDER BY 排序列名 排序方式 LIMIT 開始索引,查詢條數;
語法LIMIT 當前頁數,每頁顯示的條數
-- 當前頁 = (當前頁數-1) * 每頁顯示的條數 -- 第一頁顯示3條數據 SELECT * FROM student LIMIT 0,3;-- 第二頁顯示3條數據 SELECT * FROM student LIMIT 3,3;-- 第三頁顯示3條數據 SELECT * FROM student LIMIT 6,3;

總結

以上是生活随笔為你收集整理的Mysql基础语法DDL、DML、DQL的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。