You are now a sqlite data analyst, and you are given a database schema as follows:

    【Schema】
    【DB_ID】 codebase_community
【Schema】
# Table: votes
[
(Id:INTEGER, Primary Key, Examples: [1, 2, 3]),
(PostId:INTEGER, Examples: [3, 2, 5]),
(VoteTypeId:INTEGER, Examples: [2, 5, 3]),
(CreationDate:DATE, Examples: [2010-07-19]),
(UserId:INTEGER, Examples: [58, 6, 66]),
(BountyAmount:INTEGER, Examples: [50, 25, 0])
]
# Table: tags
[
(Id:INTEGER, Primary Key, Examples: [1, 2, 3]),
(TagName:TEXT, Examples: [bayesian, prior, elicitation]),
(Count:INTEGER, Examples: [1342, 168, 6]),
(ExcerptPostId:INTEGER, Examples: [20258, 62158, 67815]),
(WikiPostId:INTEGER, Examples: [20257, 62157, 67814])
]
# Table: posts
[
(Id:INTEGER, Primary Key, Examples: [1, 2, 3]),
(PostTypeId:INTEGER, Examples: [1, 2, 7]),
(AcceptedAnswerId:INTEGER, Examples: [15, 59, 5]),
(CreaionDate:DATETIME, Examples: [2010-07-19 19:12:12]),
(Score:INTEGER, Examples: [23, 22, 54]),
(ViewCount:INTEGER, Examples: [1278, 8198, 3613]),
(Body:TEXT),
(OwnerUserId:INTEGER, Examples: [8, 24, 18]),
(LasActivityDate:DATETIME, Examples: [2010-09-15 21:08:26]),
(Title:TEXT),
(Tags:TEXT, Examples: [<bayesian><prior><elicitation>]),
(AnswerCount:INTEGER, Examples: [5, 7, 19]),
(CommentCount:INTEGER, Examples: [1, 4, 2]),
(FavoriteCount:INTEGER, Examples: [14, 8, 36]),
(LastEditorUserId:INTEGER, Examples: [88, 183, 23]),
(LastEditDate:DATETIME, Examples: [2010-08-07 17:56:44]),
(CommunityOwnedDate:DATETIME, Examples: [2010-07-19 19:13:28]),
(ParentId:INTEGER, Examples: [3, 7, 6]),
(ClosedDate:DATETIME, Examples: [2010-07-19 20:19:46]),
(OwnerDisplayName:TEXT, Examples: [user28, user209, Michael Bishop]),
(LastEditorDisplayName:TEXT, Examples: [user28, user10525, sjcockell])
]
# Table: users
[
(Id:INTEGER, Primary Key, Examples: [-1, 2, 3]),
(Reputation:INTEGER, Examples: [1, 101, 6792]),
(CreationDate:DATETIME, Examples: [2010-07-19 06:55:26]),
(DisplayName:TEXT, Examples: [Community, Geoff Dalgas, Jarrod Dixon]),
(LastAccessDate:DATETIME, Examples: [2010-07-19 06:55:26]),
(WebsiteUrl:TEXT),
(Location:TEXT, Examples: [on the server farm, Corvallis, OR, New York, NY]),
(AboutMe:TEXT),
(Views:INTEGER, Examples: [0, 25, 22]),
(UpVotes:INTEGER, Examples: [5007, 3, 19]),
(DownVotes:INTEGER, Examples: [1920, 0, 5]),
(AccountId:INTEGER, Examples: [-1, 2, 3]),
(Age:INTEGER, Examples: [37, 35, 28]),
(ProfileImageUrl:TEXT)
]
# Table: postHistory
[
(Id:INTEGER, Primary Key, Examples: [1, 2, 3]),
(PostHistoryTypeId:INTEGER, Examples: [2, 1, 3]),
(PostId:INTEGER, Examples: [1, 2, 3]),
(RevisionGUID:TEXT, Examples: [e58bf7fd-e60f-4c58-a6e4-dfc91cf98a69]),
(CreationDate:DATETIME, Examples: [2010-07-19 19:12:12]),
(UserId:INTEGER, Examples: [8, 24, 18]),
(Text:TEXT),
(Comment:TEXT),
(UserDisplayName:TEXT, Examples: [user28, user209, Michael Bishop])
]
# Table: comments
[
(Id:INTEGER, Primary Key, Examples: [1, 2, 3]),
(PostId:INTEGER, Examples: [3, 5, 9]),
(Score:INTEGER, Examples: [5, 0, 11]),
(Text:TEXT),
(CreationDate:DATETIME, Examples: [2010-07-19 19:15:52]),
(UserId:INTEGER, Examples: [13, 37, 5]),
(UserDisplayName:TEXT, Examples: [user28, Statprof, jjgibaja])
]
# Table: postLinks
[
(Id:INTEGER, Primary Key, Examples: [108, 145, 217]),
(CreationDate:DATETIME, Examples: [2010-07-21 14:47:33]),
(PostId:INTEGER, Examples: [395, 548, 375]),
(RelatedPostId:INTEGER, Examples: [173, 539, 30]),
(LinkTypeId:INTEGER, Examples: [1, 3])
]
# Table: badges
[
(Id:INTEGER, Primary Key, Examples: [1, 2, 3]),
(UserId:INTEGER, Examples: [5, 6, 8]),
(Name:TEXT, Examples: [Teacher, Student, Editor]),
(Date:DATETIME, Examples: [2010-07-19 19:39:07])
]
【Foreign keys】
votes.PostId=posts.Id
votes.UserId=users.Id
tags.ExcerptPostId=posts.Id
posts.LastEditorUserId=users.Id
posts.OwnerUserId=users.Id
posts.ParentId=posts.Id
postHistory.PostId=posts.Id
postHistory.UserId=users.Id
comments.PostId=posts.Id
comments.UserId=users.Id
postLinks.PostId=posts.Id
postLinks.RelatedPostId=posts.Id
badges.UserId=users.Id

    【Question】
    How many badges has the user csgillespie obtained? "csgillespie" is the DisplayName of user

    【Evidence】
    "csgillespie" is the DisplayName of user

    Please read and understand the database schema carefully, and generate an executable SQL based on the user's question and evidence. 

SQL: SELECT COUNT(T1.Id) FROM badges AS T1 INNER JOIN users AS T2 ON T1.UserId = T2.Id WHERE T2.DisplayName = 'csgillespie'