插入數(shù)據(jù)
讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:域名注冊、網絡空間、營銷軟件、網站建設、五華網站維護、網站推廣。
insert into 表名(字段) values(‘數(shù)據(jù)’);
insert into 表名1(name,age) select name,age from 表2; #表2 數(shù)據(jù)信息復制到表1
修改數(shù)據(jù)
update 表名 set '字段'='數(shù)據(jù)';??? #修改數(shù)據(jù)
delect from 表名 where 字段=值;?? #刪除數(shù)據(jù)
truncate table 表名;?????????? #清空所有數(shù)據(jù) 且無法恢復
DQL (數(shù)據(jù)查詢語言,用來查詢數(shù)據(jù))
select 要查詢字段 from 表名 [where 滿足條件];
[group by 分組依據(jù)]
[order by 排序依據(jù)]
[limit 限定輸出結果]
select * from 表名;???????? #查詢 表 所有數(shù)據(jù)
select 字段 字段 from 表名;????? #查詢指定字段數(shù)據(jù)
select st.name,st.age,th.name,th.age from st,th;??????????? #查詢一個或多個? 表中的數(shù)據(jù)
SELECT 字段名 FROM 表名 WHERE 條件1 OR 條件2 [...OR 條件n];
例:SELECT * FROM students WHERE age20 OR education!='大專'; #查詢年齡小于20或 者學歷不等于大專的學生信息
SELECT 字段名 FROM 表名 WHERE 條件1 AND 條件2 [...AND 條件n];
例:SELECT * FROM students WHERE age22 AND education='大專'; # 查詢年齡大于22 且學歷為大專的學生信息
select 字段 from 表名 where age in (12,17,23);????????????? #數(shù)據(jù)在指定 數(shù)據(jù) 里面
select 字段 from 表名 where age between 23 and 28;?????? #數(shù)據(jù)在23-28 之間
select * from 表名 order by 字段名;???????????????????? ?#排序,升序
select 字段 from 表名 order by desc;????????????????? ???? ?#?? 字段降序
select 字段1,字段2…… from 表名 group by? 分組依據(jù)字段;????????? #每個字段只顯示一條
例:SELECT id,sname,age,phone,place,GROUP_CONCAT(age,place) FROM students GROUP BY age,place; #查詢學生信息,根據(jù)age,place分組并顯示每一組的記 錄
select? distinct? 字段 from? 表名;????????????????????????? #去除結果重復行
例:SELECT DISTINCT age FROM students; # 查詢學生的年齡段情況
selcet 字段1,字段2,group_concat(分組依賴字段名) from 表名 group by 分組依賴字段名;??? #查詢每個組中記錄數(shù)量,顯示出來(使用關鍵字GROUP BY與GROUP_CONCAT()函數(shù)一起使用,可以將每個組中的記錄數(shù)量都顯 示出來)
例:selcet id,sname,age,phone,GROUP_CONCAT(age) FROM students GROUP BY age; # 查詢學生id,姓名,年齡,電話,根據(jù)age分組并顯示每一組的記錄
SELECT 字段名 FROM 表名 [其他條件] LIMIT int,int; 參數(shù)1是開始讀取的第一條記錄的 編號,參數(shù)2是要查詢記錄的個數(shù)
例:SELECT * FROM students ORDER BY age LIMIT 0,5; # 查詢學生信息,根據(jù)age 排序從第0位開始顯示,只顯示5條
select?字段名?from?表名where字段名?regexp '匹配方式';
(^匹配以特定字符或 字符串開頭的記錄,
$匹配以特定字符或 字符串結尾的記錄
[^字符集 合]匹配除“字符集合”以 外的任意一個字符
S1|S2|S3匹配S1 S2 S3中 的任意一個字符串
字符串{N }匹配字符串出現(xiàn)N次
字符串 {M,N}匹配字符串出現(xiàn)至 少M次,最多N次)
聚合函數(shù)查詢
select?count(字段名)?from 表名;?????????? #對于除"*"以外的任何參數(shù),返回所選擇集合中非NULL值的行的數(shù)目;對于參數(shù)“*”,返回選擇集 合中所有行的數(shù)據(jù),包含NULL值的行
例:SELECT COUNT(*) FROM students;
select?sum(字段名) from 表名;????????? #表中某個字段取值的總和
select avg(字段名) from 表名;???????#表中某個字段取值的平均值
select max(字段名) from 表名;?????? ?#表中某個字段取值的最大值
select min(字段名) from 表名;??????? ?#表中某個字段取值的最小值
連接查詢
a.內連接:列出數(shù)據(jù)表中與連接條件相匹配的數(shù)據(jù)行,組合成新記錄【只有滿足條件的記錄才出現(xiàn)在查詢結 果】 內連接的最常見的例子是相等連接,也就是連接后的表中的某個字段與每個表中的都相同
select 字段名1,字段名2? from 表名1?inner join 表名2?where 連接條件;
例:select s.name,d.dname?from staff s inner join department d WHERE s.dpid = d.id; # 連接員工表的dpid字段和部門表的id字段,并查詢員工姓名和部門名稱
b.外連接:與內連接不同,外連接是指使用OUTER JOIN關鍵字將兩個表連接起來。外連接生成的結果集不僅 包含符合連接條件的行數(shù)據(jù) ,而且還包含左表(左外連接時的表) 右表(右外連接時的表)或 兩邊連接表(全外連接時的表)中所有的數(shù)據(jù)行。
select?字段名稱?from 表名1 LEFT|RIGHT?join 表名2 on 表名1.字段名1 = 表名2.字段名2;
例:select?s.name,d.dname FROM staff s LEFT JOIN department d ON s.dpid = d.id; #連接員工表的dpid字段和部門表的id字段,并查詢員工姓名和部門名稱,如果右表中沒有對應的 連接數(shù)據(jù),會自動添加NULL值
例:SELECT s.name,d.dname FROM staff s RIGHT JOIN department d ON s.dpid = d.id; # 連接員工表的dpid字段和部門表的id字段,并查詢員工姓名和部門名稱,如果左表中沒有對應 的連接數(shù)據(jù),會自動添加NULL值
例:SELECT 字段名1,字段名2 FROM 表名1,表名2 WHERE 連接條件 AND 限制條件; 例:SELECT s.name,d.dname FROM staff s,department d WHERE s.dpid = d.id AND s.dpid1; # 查詢員工姓名和部門名稱,條件是員工表的dpid字段與部門表中的id字段相等,并且dpid大于1
合并查詢結果
select 字段名?from ?表名 UNION?select 字段名 ?from 表名;?? #關鍵字UNION是將所 有的查詢結果合并到一起,并且去除相同記錄
例:SELECT dpid FROM staff UNION SELECT id FROM department; # 查詢員工表dpid與部門表id,如果有重復數(shù)據(jù),只顯示一次
select?字段名?drom 表名 UNION ALL?select 字段名from表名;?? #關鍵字UNION ALL 則只是簡單地將結果合并到一 起
例:SELECT dpid FROM staff UNION ALL SELECT id FROM department; # 查詢員工表dpid與部門表id,全部顯示
4.4
MySQL數(shù)據(jù)表的修改
在MySQL中,允許對創(chuàng)建好的數(shù)據(jù)表進行修改,修改時可以有以下幾種形式:修改表名、修改字段名、修改字段類型、修改字段排列位置、添加字段、刪除字段、添加字段約束、刪除約束等,它們一般都是使用“Alter table表名”命令,但后跟的具體參數(shù)不同,下面分別介紹其語句格式。
4.4.1修改表名
語句格式一:Alter table表名RENAME [TO] 新表名;
語句格式二:RENAME TABLE 表名 TO 新表名;
在上面語句格式中,“表名”為要更名的表,“新表名”為要更改成的表名,格式一中參數(shù)“TO”可以省略。
下面截圖中的“ALTER TABLE”語句將dept更名為t_dept。
4.4.3修改字段類型
語句格式:ALTER TABLE 表名 MODIFY 字段名?數(shù)據(jù)類型;
在上面語句格式中,“表名”指定要修改的是哪個表,“MODIFY”表示要修改表中字段數(shù)據(jù)類型,“字段名”指定要修改表中哪個字段(的數(shù)據(jù)類型),“數(shù)據(jù)類型”指定表中字段要修改成的新數(shù)據(jù)類型。
下面截圖中的“ALTER TABLE”語句將t_dept表中deptno字段數(shù)據(jù)類型由原來的 int(10)修改為varchar(20)。
1. 修改表的名字
alter table table_name rename table_new_name;
其中,table_name是舊表名,table_new_name是新表名。
2.修改字段的數(shù)據(jù)類型
語法: alter table 表名 modify 字段名 數(shù)據(jù)類型
3.修改字段名
語法: alter table 表名 change 舊字段名 新字段名 新數(shù)據(jù)類型