create table users ( //實驗所使用的表結構
id SMALLINT UNSIGNED PRIMARY key auto_increment,
username varchar(20) not null,
passwd varchar(20) not null,
agee TINYINT UNSIGNED not null DEFAULT 10,
sex boolean
); spa
1,insert使用 rem
insert users VALUES(null,'tom','123',25,1);//id爲自動標號,使用null/default 均可以讓其自動增加(此寫法能夠省略列名,又能夠讓id自動增加) it
insert users VALUES(default,'tom','123',default,1),(default,'tom','123',25,1);//同時插入兩條記錄 table
insert users set username='Bean',passwd='456';//插入一條記錄username的值是Bean,passwd是456 test
2,update使用(更新記錄) date
UPDATE users set agee = agee + 5;//更新表中agee字段的全部記錄。全部記錄都加5 select
UPDATE users set agee = agee - id,sex = 0;//參照上面的註釋 搜索
UPDATE users set agee = agee + 10 where id % 2 = 0;//id爲偶數的agee字段都加10 im
3,delete使用(刪除記錄) 數據
delete from 表 where 條件;
4,select 操做(查找語句)
SELECT VERSION();//查看版本號
SELECT NOW();//查看當前系統時間
select 3+5;//計算表達式
select id,username from users;//從表中查詢兩列數據
SELECT id as userid,username as uname from users;//添加別名(查詢出的表的字段以別名出現)
5,group by 查詢結果分組(不一樣的值爲一組) (ASC 升序,DESC 降序)
SELECT sex from users GROUP BY sex;//獲得sex字段值不一樣的表,相同的值只會出現一次
6,having 分組條件 ()
SELECT sex,agee from users GROUP BY sex HAVING agee > 10;//獲得sex字段值不一樣的表,相同的值只會出現一次,而且agee的值必須大於10
//COUNT(*)返回的是表中全部的記錄數,而COUNT(expr)返回的是expr字段不爲空的記錄數。
SELECT sex from users GROUP BY sex HAVING count(id)>=2;//詞條語句的意思是:對sex進行分組,每一個值爲一組,每組的個數大於或等於2個的,則將對應的sex值顯示出來。參考下面的例子
7,order by 的使用
SELECT * from users ORDER BY id DESC; //搜索表中的數據,以降序排列(顯示又大到小)
SELECT * from users ORDER BY agee,id desc ;//優先以agee的值進行升序排列,若是有agee相同的值,則以對應的id進行降序排列
8,limit語句限制查詢數量
SELECT * from users limit 2 ; //返回查詢出的結果中前2條數據
SELECT * from users limit 3,2 ;//返回第四條開始的前2條(id爲4和5的數據)數據(由於數據的是以0開始,因此3表示id爲4的那條數據,2表示要查詢的條數)
create table test( //建立一張新表
id TINYINT UNSIGNED PRIMARY key auto_increment,
username varchar(20)
);
insert test(username) SELECT username from users WHERE agee >= 30;//從表users中查詢出agee大於等於30的數據,將username的值插入test(因爲查詢出的字段只有一個username ,可是表test有id和username,因此不能使用insert test SELECT username from users WHERE agee >= 30;,而是必須指定插入的字段)
insert test1(username,agee) SELECT username ,agee from users WHERE agee >= 30; //插入兩個字段