SQL基础

80 阅读2分钟

一、语法要点 

1、关键字不区分大小写

2、语句后面带分号 

二、基础语句 (mysql)

1、mysql -u root -p ——输入用户名密码登录 

2、use user ——user是要连接的数据库

3、show tables --展示指定数据库user下的所有表

 三、插入 

按列顺序插入:insert into class values('class 1','grade 1',40); 

自定义列及其顺序插入:insert into class (grade,classname,num) values ('grade2','class1','38'); 

 四、查询: 

1、查询所有列数据:select * from class; 

2、查询指定列数据:select classname,grade from class; 

3、查询指定行:

 where子句进行过滤:比较操作符、IN、BETWEEN、LIKE关键字 

(1)比较操作符:

select * from class where grade='grade1'; 

(2)IN关键字: 

select * from class where grade in ('grade1','grade3'); 

select * from class where grade not in ('grade1','grade3'); 

(3)BETWEEM关键字:

 select * from class where num between 36 and 37; 

 select * from class where num not between 36 and 37;(查询结果包含取值为36和37的记录) 

(4)LIKE关键字:

select * from class where grade like '%2';

select * from class where grade not like '%2';

 where子句结合多个条件 

(1)AND同时满足:

SELECT * FROM class WHERE grade='grade2' AND classname='class2'; 

(2)OR其一满足: 

SELECT * FROM class WHERE grade='grade2' OR classname='class2'; 

4、查询值为空的行: 

select * from class where num is null; 

select * from class where num is not null; 

 五、关键字处理查询结果

 1、排序 

升序:select * from class order by num asc; 

降序:select * from class order by num desc; 

2、选择前n条: 

MySQL语法: select * from class limit 2;

SQL Server语法:select top 2 * from class; 

 六、函数处理查询结果 

通用形式:select function(列) from 表 

1、Aggregate 函数(合计函数):处理多值,返回单一值 

1)MAX(column):返回某列的最高值 select max(num) from class; 

2)MIN(column):返回某列的最低值 select min(num) from class;

3)SUM(column):返回某列的总和 select sum(num) from class;

4)AVG(column):返回某列的平均值 select avg(num) from class;

5)COUNT(column):返回某列的行数(不包括 NULL 值),COUNT(*):返回被选行数 select count(*) from class; 

2、Scalar 函数:处理单一值,返回单一值。一般用户文本处理。 www.w3school.com.cn/sql/sql\_fu… 

 七、group by和having函数 

1、group by:分组合计

 select classname,sum(num) from class group by classname;

 select classname,sum(num) from class where num>36 group by classname; 

 select classname,avg(num) from class group by classname; 

 select classname,min(num) from class group by classname; 

2、having:在having后接合计函数做进一步筛选 

(1)having同where之处,接比较操作符、IN、BETWEEN、LIKE关键字进行筛选 select * from class having grade='grade1'; 

(2)having后还可接合计函数,对分组结果进行筛选,这是where所不能的 select classname,sum(num) from class group by classname having sum(num)>45; 

(3)having和where可以共存: select classname,sum(num) from class where grade in ('grade1','grade2') group by classname having sum(num)>40; 

 八、更新 

1、更新一个列:update student set sex='M' where name='Cindy'; 

2、更新若干列:update student set sex='M',age=21 where name='Cindy';

 九、删除

 delete from student where name='Mike';