1. 程式人生 > >表的完整語法增,刪,改,查( 子查詢 )

表的完整語法增,刪,改,查( 子查詢 )

多行 教學 pan 比較 nbsp 匹配 字段 values 數據

表的完整語法增刪該查

表的完整 增 語法

1.所有數據按順序插入
    insert [into] 表名 values (值1,……值n),[值1,……值n]

2.指定字段匹配插入,可以任意順序           按規定字段順序指定插入
    insert [into] 表名(字段1,字段3……字段n) values(值1,值3,……值n)

3,插入查詢     按規定字段順序指定插入
    insert [into] 新表名(字段1,字段3……字段n) select (字段1,字段3……字段n) from 原表名

表的完整 刪 語法

會記錄自增信息,操作日誌記錄,效率低
  
delete from 表名 [條件]: 不加條件清空所有數據,會記錄自增信息 重置自增信息   truncate table 表名

表的完整 改 語法

update 表名 set 字段1=值1,[字段2=值2,……] [條件]       無條件,全部改掉,加條件,滿足條件的改掉

表的完整 查 語法

select [distinct] 字段1 [as 別名],…… 字段n [as 別名] from [庫名.]表名 from [
                                                                where  約束條件   +  比較運算符 | 區間運算符 | 邏輯運算符 | 相似運算符 | 正則匹配
                                                                group by  分組依據  + 聚合函數 | having
                                                                having  過濾條件 + 對分組後的帥選
                                                                order by  排序
                                                                limit(m,n)  限制顯示的條數
                                                            
]

簡單查詢

select concat(area,"-",port) as 家鄉 from emp

concat() 字符串拼接
distinct:去重前提:所查所有字段的綜合結果完全相同,才認為是重復的,只保留重復中的一行數據
select distinct area from emp
select distinct area.port from emp   兩行記錄兩個字段全重復才重復

where:約束條件 + 比較運算符

1.比較運算符
= | < | > | <= | >= | !=

2.區間運算符
between 10 and 20
in(10
,20,30) 3.邏輯運算符 and | or | not 4.相似運算符 like _owen%:模糊匹配字符串,_表示一個字符,%表示任意字符

5.正則匹配
select * from emp where name regexp ‘.*[0-9]+.*‘;
group by: 分組 + 聚合函數 
聚合函數:
    max():最大值
    min():最小值
    avg():平均值
    sum():和
    count():計數
    group_concat():組內字段拼接,用來查看組內其他字段

子查詢:一個查詢作為另外一個查詢的結果

單例子查詢:子查詢語句的結果為一行數據,可以結合 = | < | > | <= | >= | != 運算符來完成父查詢
select salary from emp where salary > 10; # => 作為子查詢
select name, gender, area from emp where salary = (select salary from emp where salary > 10);
多行子查詢:子查詢語句結果為一行數據,可以結合 in | all | any 運算符來查詢
in :任意單一值
all:全部值
any:任意多個值,子查詢的每一個結果可以作為參考依據

select * from emp where salary < all(select max(salary) 最高薪資 from emp where dep=教學部 group by gender);
having 篩選:用在分組之後
select dep, avg(salary) 平均薪資 from emp group by dep having avg(salary) > 6;
order by排序:可以跟聚合函數一起用
升序 asc
降序 desc

select * from emp order by age desc;

limit 限制 :

select * from emp limit 6,5;
select * from emp order by salary desc limit 1;limit(m,n) 從 m+1 行顯示 n 條


常用函數

concat(字段1,……字段n): 完成字段的拼接
concat_ws(x,字段1,……字段n):完成字段的拼接,x為連接符
lower():小寫
upper():大寫
ceil():向上取整
floor():向下取整
round():四舍五入








表的完整語法增,刪,改,查( 子查詢 )