1. 程式人生 > >mysql表操作

mysql表操作

限制 等於 ble select 設置 最小值 ... upd 目的

mysql表操作:
插入:
insert into 表明()....
創建:
create table user(host char(60),user char(16))
select host,user from mysql.user
創建表的時候用查詢到的表的結構,字段和記錄
create table user_new1(ip char(60),username char(16))
select host as ip,user as username from mysql.user;
依然是創建表的時候拿到查詢的表的結構,字段和記錄,但是如果後面不加as命名的話嗎,
就會有四個字段,自己創建的那兩個字段也會出現,不過記錄不會再裏面。所以想要改變名字
必須要用as
select host as 主機名,user as 用戶名 from mysql.user;
可以在查詢的時候將查詢的顯示的字段改名字,利用as
更新:
update db1.t1 set 字段=值 where id>10 or(and) id < 30;
後面跟條件,當滿足什麽條件或者什麽條件 還有滿足什麽條件和什麽條件的時候
刪除:
delete from 表名 條件;
刪除表中滿足什麽條件的記錄
清空表:
truncate 表名;
單表查詢語法:
select * from 表名;
*可以是表中所有字段,也可以是某些字段或者某個字段下的記錄
select distinct 字段 from 表名;
去重用法,查詢到的虛擬表去重
select 字段,int字段*整型數字 from 表名;
同樣也可以用as將數字運算的結果記錄來改名,也可以不加as做到改名字的目的
select concat(‘查看信息:‘,字段)from 表名;
利用concat()函數看可以拼接字符串,這樣可以令顯示的記錄更加清晰
select concat_ws(‘:‘,字段,字段)from 表名;
顯示效果【字段:字段】
concat_ws()可以拼在數據中間
在單表查詢的順序中,最先的是約束條件,然後是分組,然後是過濾,然後到去重復,然後再排序,
最後是限制條件
where 約束條件,可以是比較運算符 主要是用來確定條件是什麽或者大小範圍
例如:
要尋找class表中ID大於5的
select * from class where id >5
要尋找class表中ID等於5的
select * from class where id =5
其他運算符同上,沒什麽區別
可以用between來規定範圍
select * from class where id between 1 and 5
可以用in來確定具體範圍
select * from class where id in(1,5)
可以用like來約束具有部分條件的記錄
select * from class where name like ‘e%‘
看可以使用and or not
約束條件可以用等號來確定是某些具體的字符串
或者用運算符還有範圍來確定數字範圍
select post,count(id) from class group by post
group by分組,分組的話將表中的記錄以一塊一塊那種方式來進行操作,也就是說具有
相同字段值的記錄,將會聚合到一塊來進行使用。
所以在分組之後,再使用where約束,就無法像未分組前那樣單條約束了,所以where約束
要放在分組之前
group可以使用聚合函數來進行操作,count字段個數,max最大值,min最小值,avg平均值
sum和。
分組的目的是為類以組為單位來處理記錄,而不是處理單獨的記錄
用group_concat()函數也可以查詢各個分組的相應字段的記錄
過濾條件having
having 用在分組之後,也就是說having所利用的過濾條件,只能是分組的聚合函數
因為分組之後記錄變成一塊一塊的處理,無法用於單挑記錄的過濾,所以只能用聚合函數
having也可以做到where那種約束,不過一般用於分組後
where不能用在分組後利用聚合函數為條件
order by 默認為升序,也可以用desc設置成降序
可以設置先按照字段數據升降序,如果數據相同的再按照id升降序
select * from employee order by age asc,id desc;
limit限制條件放在最後
select * from class order by id desc limit 1;
這樣顯示降序按照id排序,id最大的就再最上面,再限制只取一個的話,取出來的就是id最大的那個人
elect * from employee where name regexp ‘^e.*n$‘;
regexp後面寫正則

mysql表操作