124復習前一天的內容
一、含義
union:合並、聯合,將多次查詢結果合並成一個結果
二、語法
查詢語句1
union 【all】
查詢語句2
union 【all】
...
三、意義
1、將一條比較復雜的查詢語句拆分成多條語句
2、適用於查詢多個表的時候,查詢的列基本是一致的
四、特點
1、要求多條查詢語句的查詢列數必須一致
2、要求多條查詢語句的查詢的各列類型、順序最好一致
3、union默認去重,union all包含重復項
語法: 執行順序
select 查詢列表 #7
from 表1 別名 #1
連接類型 join 表2 #2
on 連接條件 #3
where 篩選 #4
group by 分組列表 #5
having 篩選條件 #6
order by 排序列表 #8
limit 起始條目索引,條目數 #9
插入:
一、方式一
語法:
insert into 表名 (字段名,...) values (值,...);
特點:
1.要求值的類型和字段的類型要一致或兼容
兼容:如果是int類型的數據,插入‘123‘不會報錯.
原因在於‘123‘可以隱式地轉換成int類型的123。
但是類似‘john‘不能轉換成int類型會報錯
2、字段的個數和順序不一定與原始表中的字段個數和順序一致,但必須保證值和字段一一對應
3、假如表中有可以為null的字段,註意可以通過以下兩種方式插入null值
①字段和值都省略
②字段寫上,值使用null
二、方式二
語法:
insert into 表名 set 字段=值,字段=值...;
兩種方式的區別:
①方式一支持一次插入多行,語法如下:
insert into 表名 【(字段名,...)】 values
(值,...),
(值,...),
...;
②方式一支持子查詢,語法如下:
insert into 表名
查詢語句;
一、修改單表的記錄
語法:
update 表名 set 字段=值,字段=值,... 【where篩選條件】;
二、修改多表的記錄【補充】
語法:
update 表1 別名
left outer|right outer|inner join 表2 別名
on 連接條件
set 字段=值,字段=值,...
【where 篩選條件】;
刪除表:
方式一:使用delete
一、刪除單表的記錄
語法:
delete from 表名 【where 篩選條件】 【limit條目數】;
二、級聯刪除【補充】
語法:
delete 表1的別名,表2的別名
from 表1
left outer|right outer|inner join 表2
on 連接條件
【where 篩選條件】;
方式二:使用truncate
語法:truncate table 表名;
兩種方式的比較【面試題】
1.truncate刪除後,如果再插入,標識列(自增長列)從1開始
delete刪除後,如果再插入,標識列從斷點開始
2.delete可以添加篩選條件
truncate不可以添加篩選
3.truncate效率較高
4.truncate沒有返回值(0行受影響),delete可以返回受影響的行數
5.truncate可以不可以回滾,delete可以回滾
DDL語言
一、創建庫
create database 【if not exists】 庫名 【character set 字符集名】
二、修改庫名
安全:
①先關停數據庫服務
②找到數據庫data文件夾下對應的數據庫文件後,直接重命名。然後再啟動服務
alter database
三、刪除庫
drop database 【if exists】 庫名;
一、創建表
create table 【if not exists】表名(
字段名 字段類型 【約束】,
字段名 字段類型 【約束】,
。。。
字段名 字段類型 【約束】
);
二、修改表
1.添加列
alter table 表名 add column 列名 類型【first|after 字段名】;
添加的列默認放在所有列的最後。
如果要將添加列放在所有字段之前,加上first。 #不支持last
放在指定的列之後,用after 字段名。
2.修改列的類型或約束
alter table 表名 modify column 列名 新類型 【新約束】;
3.修改列名
alter table 表名 change column 舊列名 新列名 類型;
4.刪除列
alter table 表名 drop column 列名;
5.修改表名
alter table 表名 rename 【to】新表名;
三、刪除表
drop table 【if exists】 表名;
四、復制表
1.復制表的結構
create table 表名 like 舊表;
2.復制表的結構+數據
create table 表名
select 查詢列表 from 舊表【where篩選】;
一、數值型
1.整型
tinyint smalint mediumint int/integer bigint
1 2 3 4 8
特點:
①都可以設置無符號和有符號,默認有符號,通過unsigned設置無符號
②如果超出了範圍,會報out of range異常,插入臨界值
③長度可以不指定,默認會有一個長度
長度代表顯示的最大寬度,如果不夠則左邊用0填充,
但需要搭配zerofill,並且默認變為無符號整型
二、浮點型
定點數:decimal(M,D)
浮點數:double(M,D)
特點:
①M代表整數部位+小數部位的個數,D代表小數部位
②如果超出範圍,則報out of range異常,並且插入臨界值
③M和D都可以省略,但對於定點數,M默認為10,D默認為0
④如果精度要求較高,則優先考慮定點數
三、字符型
char varchar binary varbinary enum set text blob
char:固定長度的字符,寫法為char(M),長度不能超過M,其中M可以省略,默認為1
varchar:可變長度的字符,寫法為varchar(M),最大長度不可以省略
四、日期型
year年
date日期
time時間
datetime 日期+時間 8byte #可以只提供日期,則時間默認為00:00:00
timstamp 日期+時間 4byte 比較容易受時區、語法模式、版本的影響,更能反映當前時區的真實時間
124復習前一天的內容