El carácter de escape es ', por lo que tendría que reemplazar la cita con dos comillas.
Por ejemplo,
SELECT * FROM PEOPLE WHERE SURNAME='O'Keefe'
convierte
SELECT * FROM PEOPLE WHERE SURNAME='O''Keefe'
Dicho esto, es probablemente incorrecta de hacer esto por sí mismo. Su lenguaje puede tener una función para escapar cadenas para usar en SQL, pero una opción aún mejor es usar parámetros. Por lo general, esto funciona de la siguiente manera.
Su comando SQL sería:
SELECT * FROM PEOPLE WHERE SURNAME=?
Entonces, cuando lo ejecutas, se pasa en "O'Keefe" como parámetro.
Como SQL se analiza antes de establecer el valor del parámetro, no hay forma de que el valor del parámetro altere la estructura del SQL (y es incluso más rápido si se quiere ejecutar la misma instrucción varias veces con diferentes parámetros)
Debo señalar también que, si bien su ejemplo solo causa un error, usted se abre a muchos otros problemas al no escapar de las cadenas adecuadamente. Consulte http://en.wikipedia.org/wiki/SQL_injection para obtener un buen punto de partida o el siguiente clásico xkcd comic.
Ver [** cadena literal para Citando técnica de marcas de una sola cotización **] (http://lalitkumarb.com/2014/12/31/quoting-string-literal-technique-to-avoid-erros -due-to-single-quotation-marks-in-the-string /) –