1. 程式人生 > >常用的sql語句總結

常用的sql語句總結

sql語句

常用的sql語句總結

insert常用的語句

insert 語法
insert into <表名> ( <字段名1>,..,<字段名n > ) values ( 值1 ), ……,( 值n );
--註意:
1、後面的值1對應的是字段名1的值,依此類推。
2、沒有指定字段時,表示對應每個字段都會插入數據
3、如果值是字符串的話要用 ‘ 單引號引起了 

僅在name下插入一個名字
mysql> insert into xixi(name) values(‘xiaoer‘);

插入兩行數據
mysql> insert into xixi values(2,‘zhangsan‘),(3,‘lisi‘);
--表示在xixi表中對應的2字段插入zhangsan 和3字段中插入了lisi

在表中的多個字段插入多條數據
mysql> insert into xixi(name,age) values(‘zhangsan‘,28),(‘lisi‘,29);
--在xixi表中插入name值為zhangsan,age字段值為28和name值為lisi,age字段值為29

查看表內容
mysql> select * from xixi;

使用 insert 復制表結構及內容,產生附表。
mysql> create xixi2 test2 like xixi;    --創建新表xixi2復制xixi表的結構
mysql> insert into xixi2 select * from xixi;    --把xixi表的內容插入新的xixi2表中

update常用的語句

update更改數據庫
為安全一定要加上where條件更新表內容

將字段中的lisi改為haha
mysql> update xixi set name=‘haha‘ where name=‘lisi‘;

將xixi表中字段id=5的行把name值改為maliu
update xixi set name=maliu where id=5;
一次修改多個值
mysql>update xxi set name-maliu,age=27 where id=5

更改後查看
select * from  xixi;

delete常用的語句

delete from xixi;     #邏輯刪除,一行一行刪。
truncate table xixi;  #物理刪除,效率高。

根據指定的條件刪除語句
mysql> delete from xixi where name=‘zhangsan‘;

如:從表中找出age大於50的進行降序排列,刪除第一個。
delete from xixi where age>50 order by age desc limit 1;

刪除之後查看下
mysql> select * from  test2;

在mysql命令加上選項-U後使用update與delete命令的時候不加where 條件不會執行。

select常用語句

命令語法
select 字段1,字段2,... from 表名 [ where 表達式 and 表達式 ] 
--其中,select、from、where是不能隨便改的,是關鍵字,支持大小寫。

查看表中的所有信息
select * from xixi;

 查看表中的id和name
select id,name from xixi;

查看id等於2 的信息
select id,name from xixi where id=2;

查看名字是zhangsan的記錄
select id,name from xixi where name=‘zhangsan‘;

查看id大於2的記錄
select id,name from xixi where id>2;

查看id大於2 並且 小於4的記錄
select id,name from xixi where id>2 and id<4;

查看表中所有id大於等於5並且小於等於10的數據
select * from xixi where id >= 5 and <= 10;

查看表中所有id等於5或者等於10的數據
select * from xixi where id = 5 or id = 1

查看id不等於5和10之間的數據
select * from xixi where id not between 5 and 10
select * from xixi where id < 5 or id > 10;

like結合通配符使用查詢   % 表示任意長度的任意字符, _ 表示任意單個字符 ,還支持正則表達式
select * from xixi where name like ‘a%‘;    --查看name字段中所有以a開頭的數據

使用in關鍵字指定列表如:
找出id等於5、6、7中的任意一行的所有數據
select * from xixi where id in (5,6,7);
select * from xixi where id not in (5,6,7); --not in 也就是取反的意思

limit指定行
select id,name from xixi limit 2;   --顯示前兩行
select id,name from xixi limit 2,3; --顯示第2行後的三行

asc正向排序查看(不加默認就是正向排序)
select id,name from xixi order by id asc;   --查看id和name字段以id字段進行正向排序

desc反向排序查看
select id,name from xixi order by id desc;  --查看id和name字段並以id字段進行反向排序
select * from xixi order by id desc;    --查看所有並以id字段進行反向排序顯示

distinct去重
select distinct age from xixi;  --xixi表的age字段中去除重復的行顯示

select分組查詢

一些聚合函數的常用示例
group by 分組     
count()統計指定列的數量
avg() 求指定列平均值
sum()求指定列的和
min()顯示指定列的最小值
max()顯示指定列的最大值
count()顯示指定列中非null值的個數
group_concat()分組顯示指定列的值

查詢students表中的以性別為分組,求出分組後的年齡之和
select gender,sum(age)from student group gender         --gender性別  --age年齡

查詢student表中以classid分組,顯示平均值大於22的classid
select?classid,avg(age)?as?avgage?from?student?group?by?classid?having?avgage?>?22;

查詢student表中以性別字段gender分組,顯示各組中的年齡大於18的學員的年齡總和
select?sum(age)?from?students?where?age?>?19?group?by?gender;

常用的sql語句總結