sql命令(四)-操做數據表中的記錄

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;  //插入兩個字段

相關文章
相關標籤/搜索