python查看关键字列表的命令是_Python 41 完整查询语句 和 一堆关键字
一:完整查詢語句
1、拷貝表 ***
create table copy_table select *from customer ; 拷貝結構 與數據
create table copy_table select *from customer where 0 > 1; 僅拷貝結構
共同點: 索引 不能拷貝?? 描述不能拷貝(自增)
[ ] 表示可選的
{ }表示必選的
增
insert [into] 表名[字段名] value|values(字段值....);
into 可省略 ??? [字段名] 可選 ??????? 如果寫了,你后面的值必須與寫的字段匹配;不寫,后面的值必須和表的結構完全匹配
value 插入一條記錄
values 插入多條記錄
改
update 表名 set 字段名 = 新的值[,字段n = 新值n]? [where 條件]????可以同時修改多個字段用逗號隔開,注意最后一個字段不能加逗號
where 可選 ??????? 有就修改滿足條件的記錄,沒有就全部修改
刪
delete from 表名 [where 條件]
where 可選 ??????? 有就刪除滿足條件的記錄,沒有就全部刪除,如果你需要全部刪除 請使用truncate table 表名,
delete 是逐行比對? 刪除 效率低
delete刪除的行號會保留
查詢:完整的查詢語句
select? [distinct] {* | 字段名 | 聚合函數 | 表達式} from 表名
[where 條件
group by 字段名
having 條件
order by 字段名
limit 顯示的條數]
注意: 關鍵字的順序必須與上述語法一致
簡單查詢 ******
1.* 表示所有列 都顯示
2.也可以手動指定要顯示的列? 可以是多個
3.distinct 用于去除重復的記錄,只取出完全相同的記錄,當然,也可以手動指定要顯示的列 從而來去重
4.表達式? 支持四則運算
執行順序
def select()
from() 打開文件
where() 讀取每一行并判斷是否滿足條件
group() 對數據進行分組
having() 再分組之后進行過濾
having不單獨出現 僅用于分組之后進行過濾
distinct() 去重
order() 用于對篩選后的數據 進行排序
limit() 限制顯示的條數
最后根據select后制定的字段來顯示數據
準備數據:
create table stu(idint primary key auto_increment,name char(10),math float,english float); insert into stu values(null,"趙云",90,30); insert into stu values(null,"小喬",90,60); insert into stu values(null,"小喬",90,60); insert into stu values(null,"大喬",10,70); insert into stu values(null,"李清照",100,100); insert into stu values(null,"鐵拐李",20,55); insert into stu values(null,"小李子",20,55);
查詢所有人的總成績select name,english+math 總分 fromstu;select name,english+10 英語 fromstu;
需要 在字段的數據前加上字段名:
name:趙云 english:90 math:30需要使用字符串拼接函數
concat(字符串)
案列:selectconcat("name:",name),
concat("english:",english),
concat("math:",math)from stu;
小練習
觀光代碼 **
select (case
when english + math < 150 then
concat(name," shit")
when english + math >= 150 then
concat(name," nice")
end) 評語 from stu;
二:一堆關鍵字
where 條件???????????******
group by 字段名?? ***
having 條件??????????***
order by 字段名??? *****
limit 顯示的條數]?? *******
where
從硬盤上讀取數據時的一個過濾條件
where 的篩選過程 ??? 在沒有索引的情況下,挨個比較效率低,所以我們應該給表添加索引
group by
作用 用于給數據分組
為什么要分組?? 思考生活為什么要分組
1.在生活中是為了方便管理
2.在數據庫中是為了 方便統計
按照部門給數據分組? select *from emp group by dept;
有兩種情況
1.sql_mode中 沒有設置 ONLY_FULL_GROUP_BY 顯示每個組的第一條記錄 沒有意義 所以新版中 自帶ONLY_FULL_GROUP_BY
2.sql_mode中有設置 ONLY_FULL_GROUP_BY? 直接報錯
原因是:? * 表示所有字段都要顯示? 但是 分組后 記錄的細節被隱藏 只留下了
這意味著:只有出現在group by 后面的字段才能被顯示
分組是為了統計分組數據? 如何統計?
需要使用到聚合函數
聚合函數:
將一堆數據經過計算,得到一個數據
sum() 求和
avg() 求平均數
max()/min() 求最大值 / 最小值
count() 個數
準備數據
create table emp (idint,name char(10),sex char,dept char(10),job char(10),salary double);
insert into emp values (1,"劉備","男","市場","總監",5800),
(2,"張飛","男","市場","員工",3000),
(3,"關羽","男","市場","員工",4000),
(4,"孫權","男","行政","總監",6000),
(5,"周瑜","男","行政","員工",5000),
(6,"小喬","女","行政","員工",4000),
(7,"曹操","男","財務","總監",10000),
(8,"司馬懿","男","財務","員工",6000);
練習一
查詢每個部?門有?幾個?人select dept,count(*) fromemp group by dept;
計算每個部?門的平均?工資select avg(salary) fromemp group by dept;5.查詢平均?工資?大于5000的部?select avg(salary) from emp where avg(salary) > 5000group by dept;where語句后面 不能使用聚合函數select avg(salary) from emp;
練習二
練習一:
總結?:什么時候需要使用分組?? 只要你的需求中 帶有 每個這樣的字眼 就需要分組 每個崗位? 每個部門? 每個性別
練習二:
總結?:where 條件不能用于篩選分組后的數據
group_concat 用于分組后 將組中的某些字段拼接成字符串
select? dept,group_concat(name) from emp group by dept;
having
用于對分組后的數據進行過濾
having不會單獨出現 都是和group by 一起出現
與where的區別
相同點: 都用于過濾數據
不同點:
1.where是最先執行?? 用于讀取硬盤數據;having 要等到數據讀取完之后 才能進過濾 比where晚執行
2.where中不能使用聚合函數;having中可以
需求:5.查詢平均?工資?大于5000的部?select dept,avg(salary) from emp group by dept h0aving avg(salary) > 500;6.查詢工資最高的人的姓名和他的工資
需要用到子查詢
having小練習
order by [desc,asc]
用于對記錄進行 排序
desc為降序 ??? asc為升序
按照工資的從低到高順序 顯示所有的員工 ??? select *from emp order by salary; ??? 默認為升序
修改為降序 ??? select *from emp order by salary desc;
按照每個部門的平均工資 降序排序 ??? select dept,avg(salary) from emp group by dept order by avg(salary) desc;
limit? *******
用于限制顯示的條數 ??? limit [start,]count
看看表里前三條數據 ??? select *from emp limit 3;
看看表里的3-5條 ??? select * from emp limit 2,3;
看工資最高的那個人的信息 ??? select *from emp order by salary desc limit 1;
limit 常用于 數據的分頁展示? 比如騰訊新聞 的上拉加載新的而一頁
select *from emp limit 0,10; 第一頁???? 頁數 減1? 乘以條數 得到起始位置
select *from emp limit 10,10; 第2頁
select *from emp limit 20,10; 第3頁
總結
以上是生活随笔為你收集整理的python查看关键字列表的命令是_Python 41 完整查询语句 和 一堆关键字的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Mac电脑如何自定义桌面壁纸电脑桌面壁纸
- 下一篇: python椭圆拟合_opencv py