lunes, 17 de diciembre de 2012
Después de tanto tiempo por fin el sdk de android se puede descargar directamente junto con eclipse y ya viene listo para trabajar.
La forma convencional de instalar el sdk para poder programar en android era un poco tediosa y muchas veces daba problemas pero ahora ya tenemos la posibilidad de descargar todo lo necesario junto en un archivo comprimido y que al descomprimirlo de una vez es posible empezar a desarrollar para android.
Esta versión es llamada ADT Bundle disponible para windows y linux, en mi caso utilice la versión para linux, entonces nos dirigimos a la pagina oficial de android sdk http://developer.android.com/sdk/index.html y descargamos el archivo 320 mb aproximadamente pero que valen la pena sabiendo que una vez descargado, descomprimimos pegamos las carpetas que trae (una llamada eclipse y la otra sdk) en la ubicación deseada y luego en la carpeta de eclipse ejecutamos el mismo y ya viene el entorno configurado para iniciar a programar aplicaciones para android, de forma rápida y sencilla.
La forma convencional de instalar el sdk para poder programar en android era un poco tediosa y muchas veces daba problemas pero ahora ya tenemos la posibilidad de descargar todo lo necesario junto en un archivo comprimido y que al descomprimirlo de una vez es posible empezar a desarrollar para android.
Esta versión es llamada ADT Bundle disponible para windows y linux, en mi caso utilice la versión para linux, entonces nos dirigimos a la pagina oficial de android sdk http://developer.android.com/sdk/index.html y descargamos el archivo 320 mb aproximadamente pero que valen la pena sabiendo que una vez descargado, descomprimimos pegamos las carpetas que trae (una llamada eclipse y la otra sdk) en la ubicación deseada y luego en la carpeta de eclipse ejecutamos el mismo y ya viene el entorno configurado para iniciar a programar aplicaciones para android, de forma rápida y sencilla.
domingo, 18 de noviembre de 2012
On 12:42 by Unknown No comments
La mayoria de las veces la instalación del android sdk en linux da problemas otras veces se puede instalar de primera siguiendo algun tutorial pero que pasa cuando da problema después de haber seguido varios tutoriales y no encontrarle solución? por esta razón decido hacer este post, después de haber instalado como 4 veces el sdk en diferentes versiones de linux pues dos funcionaron a la primera y la ultima estuvo tediosa y aburrida.
Para instalar el SDK se puede seguir cualquier tutorial en Internet y lo mas recomendable como dicen es descargar eclipse desde la pagina y no instalarlo desde los repositorios , luego de esto descargamos el sdk, descomprimimos, etc. Pueden ir al link Instalar SKD para ver que se debe hacer antes de añadir el sdk a eclipse porque hasta este momento todo bien, es decir hasta la instalación de android y descarga de las librerias y complementos necesarios del sdk no da problemas y si los da es por malas configuraciones del sistema operativo.
Una vez teniendo todo descargado necesitamos indicarle a eclipse que vamos a anadir el SDK para poder realizar aplicaciones para android. En eclipse nos vamos a help --> install new software y clic en el boton "Add" y colocamos los datos que nos pide donde "name" puede ser cualquier nombre que queramos y en
location debe ir:
https://dl-ssl.google.com/android/eclipse/ o sino
http://dl-ssl.google.com/android/eclipse/.
Entonces en esta parte es donde da el error:
Cannot complete the install because one or more required items could not be found.
Software being installed: Android Development Tools 0.9.1.v200905011822-1621 ..... etc....
Solución 1: Como dice en el link, puede ser que se este usando la version de eclipse de los repositorios y por eso no se pueda instalar. PERO yo descargue desde la pagina oficial eclipse y me dio el error. Puede que algunos les funcione pero a otros no.
Solución 2: Instalar eclipse desde consola: sudo apt-get install eclipse que en muchos casos puede funcionar pero yo probé y el mismo error nuevamente. Entonces por ahí leí que en windows daba el mismo error pero al ejecutar eclipse como administrador si dejaba descargar los paquetes para el ADT (android development tools). entonces una forma sencilla de hacerlo es en consola nos logueamos como root
sudo -s
y escribimos nautilus (esto en ubuntu) sino en mi caso que ahora uso kubuntu tuve que instalar nautilus.
Entonces seguimos, luego de escribir nautilus logueados como root nos abre home como root y ya podemos modificar cualquier carpeta o archivo del sistema nos vamos a eclipse, lo ejecutamos, volvemos a agregar el nuevo software y FUNCIONA!! ahora si empieza la descarga de los paquetes y complementos y como paso final solo queda indicar a eclipse donde se encuentra el sdk (ver link mencionado) y listo ya podemos trabajar aplicaciones android en eclipse y ya sin necesidad de ejecutar eclipse como root, sino que normalmente.
Para instalar el SDK se puede seguir cualquier tutorial en Internet y lo mas recomendable como dicen es descargar eclipse desde la pagina y no instalarlo desde los repositorios , luego de esto descargamos el sdk, descomprimimos, etc. Pueden ir al link Instalar SKD para ver que se debe hacer antes de añadir el sdk a eclipse porque hasta este momento todo bien, es decir hasta la instalación de android y descarga de las librerias y complementos necesarios del sdk no da problemas y si los da es por malas configuraciones del sistema operativo.
Una vez teniendo todo descargado necesitamos indicarle a eclipse que vamos a anadir el SDK para poder realizar aplicaciones para android. En eclipse nos vamos a help --> install new software y clic en el boton "Add" y colocamos los datos que nos pide donde "name" puede ser cualquier nombre que queramos y en
location debe ir:
https://dl-ssl.google.com/android/eclipse/ o sino
http://dl-ssl.google.com/android/eclipse/.
Entonces en esta parte es donde da el error:
Cannot complete the install because one or more required items could not be found.
Software being installed: Android Development Tools 0.9.1.v200905011822-1621 ..... etc....
Solución 1: Como dice en el link, puede ser que se este usando la version de eclipse de los repositorios y por eso no se pueda instalar. PERO yo descargue desde la pagina oficial eclipse y me dio el error. Puede que algunos les funcione pero a otros no.
Solución 2: Instalar eclipse desde consola: sudo apt-get install eclipse que en muchos casos puede funcionar pero yo probé y el mismo error nuevamente. Entonces por ahí leí que en windows daba el mismo error pero al ejecutar eclipse como administrador si dejaba descargar los paquetes para el ADT (android development tools). entonces una forma sencilla de hacerlo es en consola nos logueamos como root
sudo -s
y escribimos nautilus (esto en ubuntu) sino en mi caso que ahora uso kubuntu tuve que instalar nautilus.
Entonces seguimos, luego de escribir nautilus logueados como root nos abre home como root y ya podemos modificar cualquier carpeta o archivo del sistema nos vamos a eclipse, lo ejecutamos, volvemos a agregar el nuevo software y FUNCIONA!! ahora si empieza la descarga de los paquetes y complementos y como paso final solo queda indicar a eclipse donde se encuentra el sdk (ver link mencionado) y listo ya podemos trabajar aplicaciones android en eclipse y ya sin necesidad de ejecutar eclipse como root, sino que normalmente.
sábado, 20 de octubre de 2012
El modelado 3D es un tema talvez un poco alejado en cuanto a ingenieria en ciencias y sistemas se refiere pero hay que conocer lo basico para saber sobre que va todo esto de los modelos, y juegos lo cual es lo mas interesante de todo este tema, la creacion de videojuegos con el uso de herramientas tales como blender, maya, unity, etc. y en los juegos ya se hace uso de la programacion.
Como parte de un curso en la universidad se nos pide elegir un personaje y hacer un modelado del mismo asi como una pequena animacion con el personaje elegido.
A continuacion les dejo un video (no muy bueno) sobre un modelado en blender que explica algunas cuestiones basicas sobre como modelar.
Y en espanol el canal de perublend3d es de los mejores que hay para aprender a utilizar blender.
Como parte de un curso en la universidad se nos pide elegir un personaje y hacer un modelado del mismo asi como una pequena animacion con el personaje elegido.
A continuacion les dejo un video (no muy bueno) sobre un modelado en blender que explica algunas cuestiones basicas sobre como modelar.
La animacion realizada ya con el modelo completado y modificado una cantidad enorme de veces para que quedara lo mejor posible es:
Videos muy sencillos pero que si se dedican al modelado poco a poco iran mejorando con la experiecia, lo que requiere el modelado mas que todo es paciencia para ir dando la mejor forma posible al personaje que estemos modelando y asi tener mejor calidad de detalle.
A continuacion le dejo los enlaces de los videotutoriales que realmente son de ayuda para empezar a modelar y que tienen la guia para que podamos empezar de buena forma, lo demas ya es un poco de creatividad y como lo mencione anteriormente mucha paciencia.
El primero de mas de 20 tutoriales relacionados con el uso de blender y sus diferentes tecnicas de modelado.
Algunas sugerencias para trabajar de forma mas fácil con cup o la discusión de algunos errores se trataran a continuación:
1. Un consejo útil para distinguir a la hora de trabajar en la gramática es tener todos los no terminales con mayúsculas y los terminales con minúsculas o viceversa para tener una fácil distinción entre ambos.
2. Podemos tomar el valor de un no terminal y guardarla en una variable colocando dos puntos y luego la variable en donde almacenaremos el valor. Ejemplo:
PORTADA ::= abretag portada PROPORTADA:xxx cierretag PARRAFO
se guarda en la variable xxx el valor de lo que tiene PROPORTADA.
3. "RESULT" es una palabra reservada de cup que lo que hace es ir almacenando valores en ella, es como un string que va concatenado cadenas y puede ser bastante util si se realiza un compilador que haga la tarea de traductor. Por ejemplo en un proyecto había que leer un lenguaje html pero en español y con palabras propias, es decir un lenguaje inventado y eso pasarlo a html 5 y la solucion fue utilizar RESULT para ir traduciendo y formar una gran cadena con código html.
Ej:
lo que hace la produccion anterior es que la variable xxx toma el valor de PROPORTADA y luego ese valor se imprime y se le asigna a la variable RESULT junto con los demas parametros html5 que se necesitan.
como se puede el no terminal PROPORTADA trae el valor de FONDO y el no terminal FONDO toma su valor de:
por lo tanto en no terminal PROPORTADA utilizado en la primera produccion mostrada tendria un valor de:
1. Un consejo útil para distinguir a la hora de trabajar en la gramática es tener todos los no terminales con mayúsculas y los terminales con minúsculas o viceversa para tener una fácil distinción entre ambos.
2. Podemos tomar el valor de un no terminal y guardarla en una variable colocando dos puntos y luego la variable en donde almacenaremos el valor. Ejemplo:
PORTADA ::= abretag portada PROPORTADA:xxx cierretag PARRAFO
se guarda en la variable xxx el valor de lo que tiene PROPORTADA.
3. "RESULT" es una palabra reservada de cup que lo que hace es ir almacenando valores en ella, es como un string que va concatenado cadenas y puede ser bastante util si se realiza un compilador que haga la tarea de traductor. Por ejemplo en un proyecto había que leer un lenguaje html pero en español y con palabras propias, es decir un lenguaje inventado y eso pasarlo a html 5 y la solucion fue utilizar RESULT para ir traduciendo y formar una gran cadena con código html.
Ej:
lo que hace la produccion anterior es que la variable xxx toma el valor de PROPORTADA y luego ese valor se imprime y se le asigna a la variable RESULT junto con los demas parametros html5 que se necesitan.
como se puede el no terminal PROPORTADA trae el valor de FONDO y el no terminal FONDO toma su valor de:
por lo tanto en no terminal PROPORTADA utilizado en la primera produccion mostrada tendria un valor de:
" background-color: blue "
y el result mostrado de la primera produccion seria:
<body style="background-color: blue ">
y asi sucesivamente se puede ir creando un gran string que tenga como resultado lo que hemos compilado y todo almacenado en la variable RESULT y tomando lo valores ascendentemente como se vio en el ejemplo anterior.
4. La mejor herramienta para trabajar con jflex y Cup es definitivamente notepad++ un gran editor de texto bastante sencillo y que puede ser util para trabajar con estas herramientas con las cuales necesitamos un editor de texto y notepad o wordpad son demasiado sencillos.
5. Errores comunes:
5.1 syntax error: Lo mas común es que se nos olvide colocar punto y coma al final de una producción.
5.2 El famoso y dolor de cabeza "Shirt/reduce conflict, que nos muestra algo así:
Este error sucede cuando tenemos producciones que van a terminar a los mismos estados es decir van a derivar a los mismos terminales siguiendo una producción diferente pero al reducir siempre dan lo mismo; son bastantes difíciles de encontrar porque revisamos las producciones vemos que no son iguales y nos preguntamos que pasa? La solución es analizar o reducir manualmente las producciones en la que nos tira los errores y ver como quedan ya reducidas ahí nos daremos cuenta del error y habrá que cambiar alguna de las dos producciones para que se pueda tomar una única ruta para la reducción.
5.3 mas que ser errores son los "warning' que nos muestra cuando declaramos no terminales y nunca los usamos en las producciones, son indefensos pero si tenemos otro tipo de errores ya son molestos verlos en consola por lo que solamente debemos quitar los no terminales que no usamos y listo.
Estos son los errores mas comunes que se dan en cup, claro que hay mas pero estos son con los que comúnmente me enfrente.
Por ultimo hay una presentación muy buena de la cual yo saque un post sobre utilizar una clase java para compilar archivos de jflex, en la presentación se muestra también como utilizar una clase para compilar desde un ide archivos de cup y esta muy bien detallada, en enlace es:
viernes, 19 de octubre de 2012
CUP es una herramienta utilizada para
la generación de analizadores sintácticos para java y una de las mas usadas y
comunes.
Para conocer a fondo que es cup pueden
ir a CUP.
A continuación voy a explicar la
estructura de un archivo de cup así como su sintaxis, hay una buena cantidad de
manuales en internet acerca de esto pero el objetivo del blog es hacerlo de la
manera mas resumida y entendible posible ya que muchas veces (casi siempre)
estamos escasos de tiempo y no podemos ponernos a leer un manual de 20 o más
paginas.
Archivo de entrada para Cup:
Consta de 5 partes las cuales son:
1- definición de paquetes y librerías
2- Código de usuario
3- Declaración de terminales y no
terminales
4- Declaración de precedencia
5- Definición de símbolo inicial y
reglas de producción
Se podría decir que esa es la
estructura general y lleva ese orden a excepción del código de usuario el cual
puede ser usado entre las producciones.
1-
La definición de paquetes y librerías se
refiere a los "package" e "imports" en java, los cuales serán
útiles cuando se agreguen los archivos generados por cup a nuestro proyecto en
java.
2-
Código de usuario: Lo utilizamos para escribir código java dentro
de el parser, puede ser action code o parser code.
La sintaxis que utiliza es:
parser code {: //código java :} o
action code {://código java:}
3-
Terminales y No terminales: La declaración de
los símbolos terminales de la gramática y de los no terminales.
4-
La declaración de precedencia se realiza si
es necesaria, algunas veces no es necesaria pero otras si.
5-
En la ultima parte se inicia con el símbolo inicial
de la gramática y se escribe toda la gramática con notación bnf.
Al final de cada producción podemos incluir código java
si queremos que se ejecute una acción al llegar a dicha producción, por
ejemplo:
BEGIN ::=
COMPLETO {:System.out.println(“Se llego a la produccion inicial”);:};
Aquí se tiene la producción
BEGIN::= COMPLETO y lo que se hará es imprimir un string cuando se llegue a tal
producción, el código se coloca dentro llaves así ------> {://código aquí:}.
A continuación un
pequeño ejemplo de un archivo de cup el cual contiene la sintaxis comentada y
muestra de forma mas clara como se utiliza.
Nota: la sintaxis
genera un parser para reconocer sentencias if anidadas.
miércoles, 17 de octubre de 2012
On 15:25 by Unknown in Compiladores No comments
Cup es una herramienta utilizada para generar analizadores sintácticos en java, bastante usada y bastante útil para trabajar. Para conocer mas acerca de cup pueden ir a Mas acerca de CUP.
Para poder usar cup primero debemos descargarlo desde: Descargar CUP.
Una vez descargado, descomprimimos y la carpeta java_cup la colocamos en alguna carpeta
facil de acceder en el disco local para mayor comodidad ejemplo :
C:\compiladores\java_cup.
Ya que tenemos esto ahora vamos a generar un parser a partir de una gramática lo que hacemos es colocar el archivo con la sintaxis de cup dentro de la carpeta "compiladores" y abrimos el cmd, nos ubicamos en la carpeta compiladores
Ahora escribimos:
java java_cup.Main <archivo_trabajar>.<extension>
y vemos que nos muestra los resultados en el cmd y nos genera dos archivos el parser.java y el sym.java donde el primero contiene una clase de java con todo el código del analizador sintáctico y la otra clase contiene los tokens con un identificador entero unico asignado a cada uno.
De esta forma ya podemos trabajar con cup y en la siguiente entrada se explicara sobre la sintaxis y estructura de CUP.
Para poder usar cup primero debemos descargarlo desde: Descargar CUP.
Una vez descargado, descomprimimos y la carpeta java_cup la colocamos en alguna carpeta
facil de acceder en el disco local para mayor comodidad ejemplo :
C:\compiladores\java_cup.
Ya que tenemos esto ahora vamos a generar un parser a partir de una gramática lo que hacemos es colocar el archivo con la sintaxis de cup dentro de la carpeta "compiladores" y abrimos el cmd, nos ubicamos en la carpeta compiladores
Ahora escribimos:
java java_cup.Main <archivo_trabajar>.<extension>
y vemos que nos muestra los resultados en el cmd y nos genera dos archivos el parser.java y el sym.java donde el primero contiene una clase de java con todo el código del analizador sintáctico y la otra clase contiene los tokens con un identificador entero unico asignado a cada uno.
De esta forma ya podemos trabajar con cup y en la siguiente entrada se explicara sobre la sintaxis y estructura de CUP.
martes, 16 de octubre de 2012
Si ya es conocido que con wine se pueden instalar diversos programas que solamente funcionan en windows, algunas veces se vuelve un poco complicado o un proceso tardado, en este caso vamos a utilizar una herramienta llamada playonlinux que se podria decir que es un frontend de wine bastante amigable y facil de usar, se puede descargar desde PlayOnLinux.
Una vez descargado e instalado podemos iniciar el proceso de instalacion, en este ejemplo se instalara Call of Duty 2.
1. Ejecutamos playonlinux y nos vamos a la opcion "instalar programa" y nos aparece una ventana con distintas pestanas para elegir que software queremos instalar, en nuestro caso nos vamos a juegos y elegimos call of duty 2 del listado que nos aparece.
Una vez descargado e instalado podemos iniciar el proceso de instalacion, en este ejemplo se instalara Call of Duty 2.
1. Ejecutamos playonlinux y nos vamos a la opcion "instalar programa" y nos aparece una ventana con distintas pestanas para elegir que software queremos instalar, en nuestro caso nos vamos a juegos y elegimos call of duty 2 del listado que nos aparece.
2. elegimos el juego y clic en instalar y nos aparecera el asistente para la instalcion.
3. insertamos el dvd de call of duty 2 y damos clic en siguiente y en donde nos pide el origen del dvd (donde esta montado) elegimos el dvd que insertamos, sino nos aparece hay que dar clic en actualizar.
4. clic en siguiente y la instalacion inicia.
5. Una vez instalado nos muestra nos debe de aparecer en playonlinux.
6. Ahora debemos crackear cod2 para ello nos vamos a "abrir directorio" y copiamos el crack del cd hacia la carpeta.
7. Si iniciamos a jugar veremos que el juego carga muy bien hasta llegar a la pantalla de menu donde nos mostrara una pantalla negra y no podremos hacer nada, por lo que necesitamos instalar "driconf" ya sea desde el centro de software o con el gestor de paquetes y en driconf activamos la compresion de texturas s3tc.
8. Ahora si corremos el juego vemos que ya podemos ver el menu correctamente, pero queda el ultimo paso y es instalar directx 9 que es necesario para cod2 y no tener problemas al jugar. para ello en playonlinux nos vamos a la opcion configurar y en la pestana instalar paquete seleccionamos directx 9 esperamos la descarga y esperamos la instalacion y listo! ahora si podemos jugar cod2 en linux.
El proceso de instalacion para NFS undercover es el mismo y simplemente dependiendo del juego descargaran paquetes o actualizaciones de wine para que el juego funcione correctamente, por lo que si el juego pertenece a alguno de los que aparece en el listado no deberia de haber ningun problema.
Les dejo unas imagenes de NFS Undercover instalado en linux el cual funciona bien y como mencione anteriormente depende de los requisitos del juego debemos instalar algun complemento tal como el directx9 para cod2 o automaticamente playonlinux descargara los paquetes que necesita para su funcionamiento.
On 21:14 by Unknown in SQL No comments
La ultima parte del mini manual para tener una idea general de la utilidad de sql y como utilizarlo para las consultas.
Sentencias para consultas:
Order by: Para
ordenar los resultados de una consulta por alguna columna deseada. Ej:
Select * from Estudiantes
Order by nom_alumno
--la consulta se mostrara ordenada por el campo
nom_alumno.
Por defecto
ordena de forma ascendente pero si se quiere en forma descendente solo se
agrega la clausula “DESC”.
select * from
estudiantes
order by
nom_alumno desc
El siguiente
conjunto de instrucciones son bastantes simples y su nombre prácticamente
indica prácticamente lo que hacen, por lo que solo se mostraran ejemplos de su
uso en consultas.
La sintaxis
general es:
Select <clausula>
(<campo>) from <tabla>
Donde clausula se refiere a la instrucción.
EJEMPLOS:
select count (nom_alumno)
as ‘cantidad alumnos’ from estudiantes
select sum(notas)
as ‘total notas’ from estudiantes –suma todos los campos
select avg(notas)
as ‘promedio’ from estudiantes—promedio de todos los campos
select min(notas)
as ‘nota minima’ from estudiantes
select max (notas)
as ‘nota maxima’ from estudiantes
Otra instrucción
bastante útil es DISTINCT la cual
sirve para mostrar solamente una vez resultados que puedan tener campos
iguales, por ejemplo si tenemos
carnet nombre
promedio
2000 Carlos 90
1243 Carlos 45
Y realizamos
una consulta como:
Select Distinct nombre from Estudiantes
Solo nos
mostrara Carlos una vez.
CONSULTAS A MULTIPLES TABLAS:
Es una de las
ventajas de sql y de la sentencia select el poder realizar una consulta de
varias tablas simultáneamente y esto es posible si se tienen conexiones entre
tablas, es decir se deben tener llaves primarias y foráneas para relacionar la información
por medio de ellas.
Hay dos formas
diferentes de realizar una consulta múltiple:
Forma 1 Ejemplo:
select campoa1,campoa2, campob1, campob2, campoc1,
campoc2
from tablaa, tablab,tablac
where tabla1.campoa1 = tablab.campob2 and –los
campos campoa1 y campob2 deben de ser llave -----primaria y foránea por eso se
comparan en donde sus valores sean iguales.
tablab.campob1 = tablac.campoc1
Forma 2 Ejemplo:
select campoa1,campoa2, campob1, campob2, campoc1,
campoc2
from tabla inner
join tablab
on
tabla.campoa1=tablab.campob2
inner join tablac tablab.campob1=tablac.campoc1
--aqui relacionamos tablas directamente con inner
join para comparar sus campos.
Para terminar les dejo un link de un tutorial bastante completo y muy bien explicado de SQL para profundizar mejor en el tema.
lunes, 15 de octubre de 2012
On 11:42 by Unknown in SQL No comments
1- Alter table: Puede usarse para diferentes definiciones, las mas comunes so
Anadir
nuevo campo a una tabla. Ej:
Alter table Tabla1 add nueva_col varchar (40) null
2-
Eliminar
una columna de una tabla, tomando en cuenta que antes de realizar esta eliminación
se deben de quitar las restricciones que tiene la columna a eliminar.
Alter table Tabla1 drop column nombre
3-
Agregar
una llave primaria o una llave foránea a una tabla. Ej:
Alter table Tabla1 add primary key (campo1)
Alter table Tabla1 add foreign key (campo2)
--Para la llave primaria es necesario que al campo (columna) que se le
aplique contenga valores ---únicos.
Drop Table: sirve para eliminar una tabla de la base de datos. Ej:
Drop table Tabla1
CONDICIONES DE BUSQUEDA:
Nos sirven para realizar consultas condicionales utilizando operadores de comparación,
lógicos o palabras reservadas de sql.
1.
Operadores
(=, <>, <, >, >=, <=) Ej: Seleccionar los alumnos cuyo carnet
este comprendido
entre el 500 y 1000.
select carnet as ‘numero de carnet’,
nom_alumno as ‘nombre estudiante’
from estudiantes
where carnet >=500 and carnet <=1000 – la ultima linea podria
cambiarse por
--where carnet between 500 and 1000
2.
Operadores
lógicos (and, or, not): En el ejemplo
anterior vimos el uso de “and” y prácticamente trabajan de la misma forma que
en cualquier lenguaje ya sea de programación o de consulta como en este caso y
su uso es para consultas compuestas Ej:
select carnet, promedio
from estudiantes
where carnet between 500 and 1000 and
not promedio <60
--la condcion not sirve para solamente tomar los promedios mayores a 60.
3.
Instrucción
“LIKE” :
select carnet, nom_alumno from estudiantes
where nom_alumno like ‘%r%’
--mostrara todos los registros de alumnos que tengan la letra r en su campo
nombre.
4.
Instrucción
“Soundex”: Nos sirve para realizar consultas de valores que tenemos la idea de
su sonido o pronunciación pero no conocemos exactamente como se escriben. Ej:
select carnet, nom_alumno from estudiantes
where soundex (nom_alumno) = soundex(‘rob’)
--listar los alumnos cuyo nombre suene como ‘rob’
5.
Instrucción
“is null”: Se utiliza para listar valore de columnas cuyos campos tengan
valores nulos.
select*
from estudiantes
where telefono is
null or celular is null
domingo, 14 de octubre de 2012
On 20:21 by Unknown in SQL No comments
Despues de meses de ausencia voy a
tratar de publicar la mayoria de trabajos que he
realizado (bueno, la mayoria de los que funcionan xD)
en especial codigo (metodos,
funciones, etc) que pueda ser de utilidad a la hora de realizar una aplicacion y
empezar a incluir un poco de teoria relacionada
a la informatica en el blog para tener una
base tambien sobre lo que se realiza.
El
siguiente manual constara de 3 partes y sera sobre diferentes tipos de
consultas o "queries" que podemos realizar con sql,
en este caso se trabajo con SQL Server 2005.
MANUAL SQL
SQL (structure query languaje)
lenguaje de consultas estructurado establecido claramente como el lenguaje de
alto nivel estandar para las bases de datos
relacionales.
Ocupa
tres tipos de sentencias con objetivos particulares los cuales son: DDL, DML, DCL.
DDL (Lenguaje de definicion de
datos): Grupo de sentencias que soportan la declaracion de
objetos que pertenecen a la BD.
por ejemplo instrucciones tales como: Create, alter, drop,
etc.
DML (Lenguaje de Manipulacion de
Datos): permite manipular los datos almacenados en la base de datos,
instrucciones tales como: insert, update, delete,
etc.
DCL (Data control languaje):
Controla las funciones de administracion que
realiza el DBMS, tales como seguridad y
atomicidad. Instrucciones tales como: Rollback, Revoke, grant ,etc.
Vamos
a iniciar con los ejemplos:
Creacion de una base de datos
completa: aqui se indica ubicacion, tamano, tamano maximo y
como crecera la base de datos.
create database ventas on primary(
name = ventas,
filename = 'C:\Mis_bases\ventas.mdf',
size = 5MB, Maxsize = 8 MB,
filegrowth = 1 mb
)
LOG ON
(
name = ventas_log,
filename =
'C:\Mis_bases\ventas.ldf',
size = 5MB, Maxsize = 8 MB,
filegrowth = 1 mb
)
la forma "corta" seria create database ventas;
CREAR UNA TABLA: Se crea la tabla "Registro" con cuatro campos.
create table Registro
(Nombre_completo varchar(75),
Pais_de_nacimiento varchar (25),
correo_e varchar (50),
contrasena varchar(20));
LIGADURAS
Las
ligaduras nos ayudaran a dejar la restriccion de
las entradas al DBMS y no tener que hacer esto
en la aplicacion.
1. Por
Defecto: Asigna un valor especifico a una columna
cuando este valor no sea dado, es decir asigna un valor por default a
un campo en el cual no ingresemos un valor. Ej:
create table empleados
(
id int primary key, --id = pk
edad int not null default 18
--edad automaticamente toma
el valor 18 si no se ingresa nada
);
2. Por Validacion: Especificamos los valores que se aceptaran para un campo, es decir los valores que
el DBMS aceptara
para que le sean ingresados. Ej:
create table empleados
(
id int primary key, --id = pk
edad int not null default 18
--edad automaticamente toma
el valor 18 si no se ingresa nada
Sexo varchar (1) check (Sexo in ('f',
'm')) -- se verifica que el valor ingresado sea f o m
)
3. Por referencia: Especifica
los valores que son aceptados por una columna y estos valores son
tomados de una columna que pertenece a otra tabla. Ej:
create table empleados
(
id int primary key, --id = pk
edad int not null default 18
--edad automaticamente toma
el valor 18 si no se ingresa nada
Sexo varchar (1) check (Sexo in ('f',
'm')), -- se verifica que el valor ingresado sea f o m
no_func int references trabajos
(func_id)) -- toma el valor de func_id
de la tabla "trabajos"
create table trabajos
(id int, func_id int unique)
--unique no permite duplicados es
una llave alternativa
LLAVA PRIMARIA: Un campo unico que
identifica de manera inequivoca a un registro.
LLAVE FORANEA:
Se define una columna o combinacion de columnas en las cuales
su valor correspondera al
valor de la llave primaria de la misma tabla o de otra tabla. Ej:
create table cliente
(email varchar (30) unique not null,
numcli int not null primary key)
create table pedido(
numped int not null primary key,
numerocli int not null, foreign key (numerocli)
references cliente (numcli)
)
--NOTA
--Primero
crear las tablas que solo tienen llave primaria, luego las que tienen
--llave foranea.
Suscribirse a:
Entradas (Atom)
Search
Categories
android
(2)
Animacion 3D
(3)
aspx
(4)
bases de datos
(7)
Blender
(3)
C
(1)
C#
(4)
cisco
(1)
Compiladores
(11)
conceptos
(1)
cup
(2)
DB2
(2)
gns3
(5)
Irony
(3)
Java
(3)
kvm
(1)
linux
(5)
manual express latex
(1)
MongoDB
(1)
ocio
(3)
oracle
(3)
poo
(1)
Postgresql
(4)
programacion
(9)
Redes
(7)
resumen
(1)
soluciones
(1)
SQL
(16)
sqlserver
(1)
teoría
(5)
Ubuntu
(9)
Uwintu
(1)
VB
(1)
windows
(2)
Statistics
Con la tecnología de Blogger.