这几天学习公司系统的数据流向。主要涉及到几个表的数据。但是表中的数据有上百万条,所以如果出现sql语句没有带条件的,会导致查询卡死,甚至出现内存溢出的情况。公司用到的数据库是sqlserver,所以下列的sql语句主要是针对sqlserver数据库的,其他数据库大同小异。
1、当我要熟悉数据库表结构的时候,我需要执行一个语句,这条语句能够查看数据库的很多信息,如列名,字段名,字段大小,字段类型等等.......
select * from information_schema.columns where table_name=‘表名‘
2.、当然如果你想创建数据库表的创建情况的话可以执行下面的调用存储过程的语句:
exec sp_help ‘表名‘
3、当我想了解数据库主,外键的时候,我通过下面的语句:
查询主键:EXEC sp_pkeys @table_name=‘表名‘
查询外键:
select 主键列名=(selectname from syscolumns where colid=b.rkey AND id = b.rkeyid) ,外键表名称=object_name(b.fkeyid),外键列名=(select name from syscolumns wherecolid=b.fkey AND id = b.fkeyid) from sysobjectsa join sysforeignkeys b on a.id = b.constid join sysobjects c on a.parent_obj =c.id where a.xtype = 'f' AND c.xtype='U' and object_name(b.rkeyid)='表名'
4、查找数据库前面的数据使用TOP关键字。 由于数据量太大,所以想分析数据的话我们可以提取数据前50或100条数据来查找,具体使用方法
select top100 * from 表名
ps:*号可以替换为数据库的列名来查找,后面也可以加上查询条件等等。
5、当查看公司字段的时候,很多字段都使用了子查询,连接查询,所以还不会这些的可以查查相关的资料(弄懂inner/left/right join之间的区别)
6、公司数据库设计的思考,由于涉及到保密关系,所以很多细节性的东西不能描述,但是我们在设计表的时候,外键之间的关联和表与表之间的关系一定要弄清楚,必要的时候可以画草图辅助构思。
其他的,等遇到了问题再逐渐总结上来吧。
(转载本站文章请注明作者和出处 Coder的不平凡 ,请勿用于任何商业用途)
原文地址:http://blog.csdn.net/pearyangyang/article/details/41115491