关于sql语句的总结
发布日期:2016-4-24 20:4:20
1:查询数据库dbName有多少张表 如下所示: select count(*) from information_schema.tables where table_schema='dbName’; 如果是SQL Server数据库的话: select name from dbo.sysobjects where OBJECTPROPERTY(id, N'IsUserTable') = 1 //查询所有表名 select count(name) from dbo.sysobjects where OBJECTPROPERTY(id, N'IsUserTable') = 1 //查询一共有多少张表 2:根据某个字段合并表 select id,name,sum(operate) from test group by name; 执行结果如下所示: 3: 用一条SQL 语句 查询出每门课都大于80 分的学生姓名 select name from table group by name having min(fenshu)>80 4:删除除了自动编号不同, 其他都相同的学生冗余信息 delete tablename where 自动编号 not in(select min( 自动编号) from tablename group by 学号, 姓名, 课程编号, 课程名称, 分数) 学生表 如下: 5:截断表的方法 截断表的意思是: (1)将表中数据全部清空(2)重新添加数据的话,id还从1开始。相当于重建表。 truncate user; 截断用户表 如果表中有外键的话,只不能执行truncate了。可以采用下面的语句: SET FOREIGN_KEY_CHECKS=0; TRUNCATE TABLE user; SET FOREIGN_KEY_CHECKS=1; SET FOREIGN_KEY_CHECKS=1;的意思是恢复外键。 SET FOREIGN_KEY_CHECKS=0;的意思是取消外键。 6:查看数据库字段的属性(Collation字符编码) show full columns from user; 7:查看字符集的长度 show character set 8:left join和inner join 请参考left join与inner join举例 9:查询分组,并统计分组下的粉丝 select (select count(*) from wx_fan f where f. wxAccountId = 2 and f.wxGroupId = g.wxGroupId) as num , g.* from wx_group g where g.accountId = 2 10:查询某个表中重复的字段 select * from wx_users where cellphone in (select cellphone from wx_users group by cellphone having COUNT(*)>1) 11:unique唯一性 ALTER TABLE wx_fan ADD unique(openid);
|