您好,登錄后才能下訂單哦!
MySQL增、刪、改、插
全表查詢表記錄
格式1:select 字段1,...字段N from 庫名.表名;
格式2:select 字段1,...字段N from 庫名.表名 where 條件表達式;
注意事項:
1.使用"*"可匹配所有字段。
2.指定表名時,可采用 庫名.表名 的形式
例:
mysql>create database ku;
mysql>create table ku.lisi(
>name char(10) not null,
>gender enum("boy","girl"),
>age int(3) not null
>);
mysql>insert into ku.lisi values("luozixu","boy"23);
mysql>insert into ku.lisi values("wang","girl",25);
mysql>select * from ku.lisi;
mysql>select name,age from ku.lisi where gender="girl";
例:
為指定字段顯示別名,name顯示為"姓名"、age顯示為"年齡"
mysql>select name AS "姓名",age AS "年齡" from ku.lisi;
查詢及條件匹配
使用WHERE句子引導
1.適用于更新,刪除,查詢等
2.只有符合條件的記錄才會被操作
常見的匹配條件
1.檢查字段的數(shù)值大小
2.字符串是否匹配
3.邏輯測試,范圍測試
數(shù)值的比較
= 等于
>、>= 大于、大于或等于
<、<= 小于、小于或等于
!= 不等于
BETWEEN..AND... 在...與...之間
邏輯比較,多條件組合
OR、AND、! 邏輯或、邏輯與、邏輯非
IN..、NOTIN.. 在..范圍內(nèi)、不在..范圍內(nèi)
IS NULL 字段的值為空
IS NOT NULL 字段的值不為空
DISTINCT 不顯示重復的值
運算操作
+ 加法
- 減法
* 乘法
/ 除法
% 取余法(求模)
使用模糊查詢
基本用法:
-WHERE 字段名 LIKE "通配字串"
-通配符"_"匹配單個字符,"%"匹配0-N個字符
例:列出name字段值以J開頭或以Y結(jié)尾的記錄
mysql>select * from ku.lisi where name LIKE "J" OR name LIKE "Y";
使用正則表達式
基本用法:
-WHERE 字段名 REGEXP '正則表達式'
例:列出name字段值以J開頭或以Y結(jié)尾的記錄
mysql>select * from ku.lisi where name regexp '^J|Y$';
where子查詢
使用where子查詢:
-把內(nèi)層查詢結(jié)果作為外層查詢的查詢條件
格式1:select 字段名列表 from 庫.表A where 條件 (select 字段名列表 from 庫.表A );
格式2:select 字段名列表 from 庫.表A where 條件 (select 字段名列表 from 庫.表A where 條件);
例:輸出年齡小于平均年齡的學生的姓名和年齡
mysql>select name,age from ku.lisi where age < (select avg(age) from ku.lisi);
格式3:select 字段名列表 from 庫.表A where 條件 (select 字段名列表 from 庫.表B );
格式4:select 字段名列表 from 庫.表A where 條件 (select 字段名列表 from 庫.表B where 條件);
常用的統(tǒng)計函數(shù)
avg() 集合的平均數(shù)
sum() 對集合中的各參數(shù)求和
min() 集合中的最小值
max() 集合中的最大值
count() 記錄的個數(shù)
例:輸出ku庫lisi表的記錄個數(shù),各個學生年齡總和
計算各學生的平均年級、最大、最小的年齡。
mysql>select count(*),sum(age) from ku.lisi;
mysql>select avg(age),max(age) from ku.lisi;
查詢結(jié)果排序/分組
基本用法:
-ORDER BY 字段名 [asc(升序)/desc(降序)]
-GROUP BY 字段名 [HAVING 條件表達式]
-LIMIT N,M 限制顯示記錄條目數(shù)
例:
查詢ku庫lisi表,按年齡排序,輸出前2條結(jié)果。
mysql>select * from ku.lisi order by age limit 2;
再輸出降序排列的前2列結(jié)果
mysql>select * from ku.lisi order by age desc limit 2;
例:
查詢ku庫lisi表,按性別進行分組,分別統(tǒng)計boy、girl的人數(shù)。
mysql>select gender AS "性別",count(*) AS "人數(shù)" from ku.lisi group by gender;
insert 插入記錄
格式1:(僅指定部分字段的值)
insert into 庫名.表名(字段1,字段2,..字段N) values(字段1賦的值,字段2賦的值,....字段N賦的值);
格式2:(指定每一個字段的值)
insert into 庫名.表名 values(字段1賦的值,字段2賦的值,....字段N賦的值);
注意事項:
1.字段值要與字段類型相匹配。
2.對于字符類型的字段,要用雙或單引號括起來。
3.依次給所有字段賦值時,字段名可以省略。
4.只給一部分字段賦值時,必須明確寫出對應的字段名稱。
例:
1.創(chuàng)建庫和表結(jié)構
mysql>create database ku;
mysql>create table ku.xi(
>name char(10) not null,
>gender enum("boy","girl") default "girl",
>age int(3) not null
>);
2.插入表記錄
mysql>insert into ku.xi(name,age) values("luozixu",23);
mysql>insert into ku.xi values("lisi","boy",25);
3.查看表記錄
mysql>select * from ku.xi;
update 更新記錄
格式1:(更新表內(nèi)的所有記錄)
update 庫名.表名 set 字段1=字段1修改的值,字段2=字段2修改的值,...字段N=字段N修改的值;
格式2:(只更新符合條件的部分記錄)
update 庫名.表名 set 字段1=字段1修改的值,字段2=字段2修改的值,...字段N=字段N修改的值 where 條件表達式;
注意事項:
1.字段值要與字段類型相匹配。
2.對于字符類型的字段,要用雙或單引號括起來。
3.若不是用WHERE限定條件,會更新所有記錄。
4.限定條件時,只更新匹配條件的記錄。
例:
1.將ku庫xi表中的所有人的age字段設置為10。
mysql>update ku.xi set age=10;
mysql>select * from ku.xi;
2.將性別為boy的人的age字段設置為20。
mysql>update ku.xi set age=20 where gender="boy";
mysql>select * from ku.xi;
delete 刪除表記錄
格式1:(僅刪除符合條件的記錄)
delete from 庫名.表名 where 條件表達式;
格式2:(刪除表所有的表記錄)
delete from 庫名.表名;
例:
1.刪除ku庫xi表中age字段小于10的表記錄。
mysql>delete from ku.xi where age<=10;
mysql>select * from ku.xi;
2.刪除表所有的表記錄
mysql>delete from ku.xi;
mysql>select * from ku.xi;
多表查詢(又稱 連接查詢)
1.將2個或2個以上的表,按某個條件連接起來,從中選取需要的數(shù)據(jù)。
2.當多個表中,存在相同意義的字段(字段名可以不相同)時,可以通過該字段連接起來多個表。
格式1:select 字段名列表 from 表a,表b;
格式2:select 字段名列表 from 表a,表b where 條件;
以上格式查詢結(jié)果叫笛卡爾集,顯示查詢結(jié)果的總條目是(表a的記錄*表b的記錄數(shù))
例:
mysql>select * from ku.user,ku.user2;
mysql>select * from ku.user,ku.user2 where ku.user2.shell != ku.user.shell and ku.usr.uid<100;
內(nèi)連接查詢(只顯示與查詢條件匹配的記錄)
格式:select 字段名列表 from 表a,表b;
外連接查詢
1.左連接查詢(以左表記錄為主)
2.右連接查詢(以右表記錄為主)
左連接查詢
格式:select 字段名列表 from 表a left join 表b on 條件表達式;
右連接查詢
格式:select 字段名列表 from 表a right join 表b on 條件表達式;
表的復制及改名
將源表xxx復制為新表yyy
格式:create table 庫名.yyy select * from 庫名.xxx;
例:
mysql>create table ku.yy select * from mysql.user;
將指定的查詢結(jié)果復制為新表zzz
格式:create table zzz SQL查詢語句;
例:
mysql>create table ku.zz select user,host,password from mysql.user;
復制源表xxx的表結(jié)構到新表bbb
格式:create table 庫名.bbb select * from 庫.xxx where false(錯誤的記錄匹配);
例:
mysql>create table ku.bb select * from mysql.user where false;
mysql>desc ku.bb;
將源表bbb的名稱改為www
格式:alter table bbb rename to www;
例:
mysql>alter table ku.bb rename to ku.ww;
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。