<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
SQL語句,即結構化查詢語言(Structured Query Language),是一種特殊目的的程式語言,是一種資料庫查詢和程式設計語言,用於存取資料以及查詢、更新和管理關聯式資料庫系統,同時也是資料庫指令碼檔案的擴充套件名。
SQL標準規定的SQL語句分為:DDL(Data Define Language 資料定義語言)、 DML(Data Manipulation Language 資料操作語言)、DQL(Data Query Language 資料查詢語言)、DCL(Data Control Language 資料控制語言)。本文將詳細介紹它們。
首先了解一下關於SQL語法的一些注意事項:
1. SQL 語句可以單行或多行書寫,以分號結尾。
2. 可使用空格和縮排來增強語句的可讀性。
3. MySQL 資料庫的 SQL 語句不區分大小寫,關鍵字建議使用大寫。
4. 3 種註釋
① 單行註釋: -- 註釋內容 或 # 註釋內容(mysql 特有)
② 多行註釋: /* 註釋 */
DDL語言:全面資料定義語言(Data Define Language),是用來定義和管理資料物件,如資料庫,資料表等。DDL命令有CREATE(建立)、DROP(刪除)、ALTER(修改)。
下面用程式碼給大家舉例子:
-- SQL語法不區分大小寫 -- 每一句結束的時候都要用一個分號; # 庫的操作 -- 顯示所有的庫 show databases; -- 建立一個庫 -- create database 庫名; create database ku; -- 刪除一個庫 -- drop database 庫名; drop database ku; -- 使用庫 -- use 庫名; use ku; # 表的操作 -- 檢視庫中所有的表 show tables; -- 建表 create table 表名( 欄位名 型別 屬性, 欄位名 型別 屬性, .... 欄位名 型別 屬性 ); create table tab_teacher( tea_name varchar(10), tea_sex char(1), tea_birthday datetime, tea_money decimal(20,1) ); show tables; -- 檢視表結構 desc tab_teacher; show create table tab_teacher; -- ` 反引號 讓關鍵詞失效 CREATE TABLE `tab_teacher` ( `tea_name` varchar(10) DEFAULT NULL, `tea_sex` char(1) DEFAULT NULL, `tea_birthday` datetime DEFAULT NULL, `tea_money` decimal(20,1) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
DML語言:資料操作語言(Data Manipulation Language),是用於運算元據庫物件中所包含的資料。DML命令有INSERT(增加)、DELETE(刪除)、UPDATE(修改)。
下面用程式碼給大家舉例子:
# DML 語句 -- 新增 -- 語法 -- insert into 表名(欄位名,欄位名...欄位名) values(值,值...值); -- 日期用字串的形式表示 insert into student(sid,sname,birthday,ssex,classid) values(9,'張三','1999-1-1','男',3); insert into student(sid,ssex,classid) values(11,'男',2); -- 讓主鍵自增 insert into student(sname) values("王桑"); insert into student values(default,'老王','1970-6-1','男',2); insert into student values(null,'老王','1970-6-1','男',2); -- 一次性插入多條資料 insert into student(sname,ssex) values('王帥帥','男'),('王靚靚','男'),('王妹妹','女'); -- 不常用的新增方式 -- 表都要存在 create table stu1( xingming varchar(10), ssex varchar(2) ) -- insert into select insert into stu1 select sname,ssex from student; -- 新建表的時候插入資料 -- 新表不能存在 create table newstu select sname,birthday,ssex from student; -- 修改 -- 語法 -- update 表名 set 欄位名=值,欄位名=值... where 子句 update stu1 set xingming = '趙雷雷'; update newstu set ssex= '女' where sname='老王'; -- 範圍 update student set ssex = '女',classid = 10 where sid >= 10 and sid <= 15; -- between 小資料 and 巨量資料 update student set ssex='呵呵',classid = 20 where sid between 10 and 15; -- 刪除 -- delete from 表名 where 子句 delete from stu1; delete from student where sname = '老王'; -- 清空表 truncate 表名 truncate student;
DQL語言:資料查詢語言(Data Query Language),是用於查詢資料庫資料。DQL命令有SELECT(查詢)。
下面用程式碼給大家舉例子:
# DQL -- 查詢 -- 查詢表所有行和列的資料(得到的是一張虛擬表) -- select * from 表名; select * from student; -- 查詢指定欄位 -- select 欄位名1,欄位名2... from 表名; select sid,sname,birthday,ssex,classid from student; -- 欄位起別名 -- select 舊欄位名 as '新欄位名'; select sname as '姓名', birthday '生日',ssex 性別 from student; -- 去除重複 distinct -- select distinct 欄位名... from 表名; select distinct ssex,classid,sid from student; -- 帶條件的查詢 WHERE 子句 select * from student where ssex = '男' and classid = 1; -- 生日 大於 1990-1-1 的學生 select * from student where birthday < '1990-1-1'; -- 模糊查詢 like insert into student(sname) values('張三丰'),('張三'),('張三三'); -- 張字有關的資料 -- 模糊符號 % 任意多的任意字元 select * from student where sname like '%張%'; -- 姓張的人 select * from student where sname like '張%'; -- 模糊符號_ 一個任意字元 select * from student where sname like '張__'; -- 學生編號是 2,5,6,8,9,20,300,4000 -- in 在特定的範圍內查詢 select * from student where sid in (2,5,6,8,9,20,300,4000); -- 沒有生日的學生 is 是對null的判斷 select * from student where birthday is null; select * from student where birthday is not null; # 分組 -- group by 欄位 select count(1) from student where ssex = '男'; select count(1) from student where ssex = '女'; select ssex,count(sid) from student group by ssex; -- 每個班有多少學生 select classid,count(sid) from student group by classid; -- sc 每個學生的平均分 select sid,avg(score) 平均分, sum(score) 總成績,max(score) 最高分, min(score) 最低分, count(*) 次數 from sc group by sid;
語法:之前我們做的查詢都是橫向查詢,它們都是根據條件一行一行的進行判斷,而使用聚合函數查詢是縱向查詢,它是對一列的值進行計算,然後返回一個結果值。聚合函數會忽略空值 NULL。
-- 統計個數 count(欄位)/欄位可以寫*、常數、任意欄位名/count不統計資料為null的個數。
-- 統計平均值 avg(欄位)
-- 統計最大值 max(欄位)
-- 統計最小值 min(欄位)
-- 統計總和 sum(欄位)
eg: select count(*) 總個數, sum(score) 總成績, avg(score) 平均分, max(score) 最高分, min(score) 最低分 from sc;
# 聚合函數 count(欄位) -- 統計個數 -- 數位 avg(欄位) -- 平均值 sum(欄位) -- 總和 max(欄位) -- 最大值 min(欄位) -- 最小值 -- count 統計個數 select count(*) from student where ssex = '男'; select count(sname) from student where ssex = '男'; select count(1) from student where ssex = '男'; select count('a') from student where ssex = '男'; -- count() 不統計null select count(birthday) from student; -- avg 平均值 -- 所有學生的平均分 select avg(score) from sc; -- sum 總成績 select sum(score) from sc; select count(*) 次數, sum(score) 總成績, avg(score) 平均分, max(score) 最高分,min(score)最低分 from sc;
到此這篇關於MySQL的 DDL和DML和DQL的基本語法的文章就介紹到這了,更多相關MySQL的 DDL和DML和DQL內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45