SQL基础知识:DDL、DML、DQL
DDL:數據定義語言
對數據庫和數據表的管理
數據庫
1、創建
create database [if not exists] databasename;2、列舉
show databases;3、查看當前所在數據庫
select database();4、切換
use databasename;5、刪除
drop database [if exists] databasename;數據表
注意:需要先指定數據庫,如果沒指定數據需要使用[databasename.]注明
1、創建
create table [if not exists] [databasename.]tablename(字段1 數據類型1,字段2 數據類型2,···字段N 數據類型N);數據類型
數值–整數用int,非整數用double/float;
字符–varchar
日期–date
日期時間–datetime
2、列舉
show table;3、描述
desc [databasename.]tablename;4、刪除
drop table [if exists] [databasename.]tablename;5、清空
truncate [databasename.]tablename;DML:數據操作語言
管理數據表的數據
插入:insert
insert into tablename(colname1,colname2···) values(value1,value2,···)更新:update
update tablename set colname1=newvalue [and colname2=newvalue2 and ···] [where 更新條件]不加條件為全列更新
刪除:delete
delete from tablename [where 刪除條件]不加條件為全表清空
DQL:數據查詢語言
對表中數據查詢和統計分析
基本查詢
select 1 from 2 where 3 group by 4 having 5 order by 6 limit 7執行順序:from、[join on ]、where、group by、having、select、order by 、limit
條件查詢:where
- and/or
- like
- between··· and···;>、<、>=、<=、!=、=
- in\exist
- is null\is not null
聚合查詢
count、sum、avg、max、min
分組查詢:group by
having 條件過濾,搭配group by使用
排序查詢:order by
desc 降序
分頁查詢:limit
結果保存
insert into tablename select ···tablename需要事先創建,select里的列名稱可以與tablename列名稱不一樣,但是數據類型跟列數必須一致
select ··· into tablename from a表多表查詢
連接方式
內連接
笛卡爾連接:cross join
SELECT * FROM r, s; SELECT * FROM r CROSS JOIN s;條件連接:又叫θ-連接,笛卡爾積得到的記錄中選擇滿足某個條件的,θ 表示條件中的 = / != / >= / <= / > / <等
SELECT r.a, r.b, s.c, s.d FROM r, s WHERE r.b <= s.c; SELECT r.a, r.b, s.c, s.d FROM r INNER JOIN s ON r.b <= s.c;等值連接:又叫內連接,笛卡爾積得到的記錄中選擇滿足某個相等條件的,將條件連接中的 θ 換為 = 即可,等值連接是一種特殊的條件連接
SELECT r.a, r.b, s.c, s.d FROM r, s WHERE r.b = s.c; SELECT r.a, r.b, s.c, s.d FROM r INNER JOIN s ON r.b = s.c;自然連接:笛卡爾積得到的記錄中選擇同名的某個列相等的,將等值連接中的列限定為同名列即可,同名列只顯示一次,是一種特殊的等值連接
SELECT r.a, r,b, s.c FROM r, s WHERE r.b = s.b; --or SELECT r.a, r.b, s.c FROM r INNER JOIN s ON r.b = s.b;外連接
左外連接:連接(自然 / 等值 / θ-連接)結果加上左側表失配行連右側表全空值行
SELECT * FROM r RIGHT JOIN s ON r.b = s.b;右外連接:連接(自然 / 等值 / θ-連接)結果加上右側表失配行連左側表全空值行
SELECT * FROM r RIGHT JOIN s ON r.b = s.b;全外連接:連接(自然 / 等值 / θ-連接)結果加上左側表失配行連右側表全空值行和右側表失配行連左側表全空值行
(SELECT * FROM r LEFT JOIN s ON r.b = s.b) UNION (SELECT * FROM r RIGHT JOIN s ON r.b = s.b); --or select s.*,r.* from s full join r.b = s.b子查詢
查詢結果的列來自同一張表,條件來自別的表
總結
以上是生活随笔為你收集整理的SQL基础知识:DDL、DML、DQL的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MySQL - 创建存储过程Proced
- 下一篇: 动态规划问题之背包模型(18题)