Académique Documents
Professionnel Documents
Culture Documents
EN ENTORNO SERVIDOR
CAPTULO 6:
Utilizacin de tcnicas de acceso a datos
PHP:
o MySQL 4.1 y posteriores:
$conector=mysqli_connect($host, $user, $password [,dbname]);
JSP:
o MySQL:
<%@page import=java.sql.* %>
<%
Connection conexion=null;
Statement st=null;
Class.forName(org.gjt.mm.mysql.Driver);
conexion=DriverManager.getConnection(jdbc:mysql://localhost/
directorios..., nombre_usuario,contrasea);
%>
JSP:
o SQL Server:
Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver);
Connection conexion=DriverManager.getConnection(
dbc:sqlserver://localhost;databaseName=ruta_bd,
nombre_usuario,contrasea);
o MS Access:
Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);
Connection conexion=DriverManager.getConnection
("jdbc:odbc:Driver={Microsoft Access Driver
(*.mdb)};DBQ=ruta_bd");
JSP:
o Oracle:
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conexion =
DriverManager.getConnection("jdbc:oracle:thin:@miservidor:
puerto:esquema","usuario","contrasea");
ASP:
o MySQL:
<%
Dim conn
Set conexion=Server.CreateObject(ADODB.connection)
conexion.open Driver={MySQL}; Server=nombre_servidor;
Port=puerto; Database=Nombre_db; Uid=Nombre_usuario;
Pwd=contrasea
%>
o SQL Server:
conexion.open Driver={SQL Server}; Server=nombre_servidor;
Database=Nombre_db; Uid=Nombre_usuario; Pwd=contrasea
ASP:
o Oracle:
conexion.Open Provider=MSDAORA.1;Password=contasea;User
ID=nombre_usuario;Data Source=data.world
o MS Access:
conexion.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=
nombre_bd
PHP:
o MySQL 4.1 y posteriores:
$result=mysqli_query($conector,$sentencia[,$modo_resultado]);
JSP:
st=conexion.createStatement();
ResultSet rs= st.executeQuery(sentencia);
int n=st.executeUpdate(sentencia);
ASP:
Set rs = conexion.Execute(sentencia)
Otras:
1. ALTER TABLE nombre_tabla ADD UNIQUE(nombre_columna1)
Otras:
1. ALTER TABLE nombre_tabla ADD PRIMARY KEY (nombre_columna1)
Otras:
1. ALTER TABLE nombre_tabla1 ADD FOREIGN
KEY(nombre_columna)REFERENCES nombre_tabla2(PK_tabla2)
Otras:
MySQL:
ALTER TABLE nombre_tabla
ALTER nombre_columna SET DEFAULT valor
MySQL:
CREATE TABLE nombre_tabla(
nombre_columna1 tipo1,
nombre_columna2 tipo2,
...
nombre_columnaN tipoN,
CHECK(condicin)
)
SQL Server:
CREATE TABLE nombre_tabla(
nombre_columna1 tipo1 CHECK(condicin),
nombre_columna2 tipo2,
...
nombre_columnaN tipoN
)
MySQL/SQL Server/Oracle/MS Access:
CREATE TABLE nombre_tabla(
nombre_columna1 tipo1,
nombre_columna2 tipo2,
...
nombre_columnaN tipoN,
CONSTRAINT nombre_restriccin CHECK(condicin1 AND ...)
)
Otras:
1.ALTER TABLE nombre_tabla ADD CHECK(condicin)
2.ALTER TABLE nombre_tabla ADD CONSTRAINT nombre_restriccin
CHECK(condicin1 AND )
MySQL:
CREATE TABLE nombre_tabla(
nombre_columna1 tipo1 NOT NULL AUTO_INCREMENT,
nombre_columna2 tipo2,
...
nombre_columnaN tipoN,
PRIMARY KEY(nombre_columna1)
)
SQL Server:
CREATE TABLE nombre_tabla(
nombre_columna1 tipo1 PRIMARY KEY IDENTITY,
nombre_columna2 tipo2,
...
nombre_columnaN tipoN,
)
MS Access:
CREATE TABLE nombre_tabla(
nombre_columna1 tipo1 PRIMARY KEY AUTOINCREMENT,
nombre_columna2 tipo2,
...
nombre_columnaN tipoN,
)
Oracle:
CREATE SEQUENCE nombre_seq MINVALUE 1
START WITH 1
INCREMENT BY 1
CACHE 10
o PRIMARY KEY:
MySQL:
ALTER TABLE nombre_tabla DROP PRIMARY KEY
SQL Server/Oracle/MS Access:
ALTER TABLE nombre_tabla DROP CONSTRAINT nombre_columna
o FOREIGN KEY:
MySQL:
ALTER TABLE nombre_tabla DROP FOREIGN KEY nombre_columna
o DEFAULT:
MySQL:
ALTER TABLE nombre_tabla ALTER nombre_columna DROP DEFAULT
o CHECK:
SQL Server/Oracle/MS Access:
ALTER TABLE nombre_tabla DROP CONSTRAINT nombre_restriccin
Aadir permisos:
GRANT privilegio1,... [(nombre_columna,...)] ON nombre_objeto TO
{nombre_usuario| PUBLIC | nombre_rol}
Eliminar permisos:
REVOKE privilegio1,... [(nombre_columna,...)] ON nombre_objeto FROM
{nombre_usuario/s| PUBLIC | nombre_rol/es}
Consultas:
o SELECT FROM: consulta el valor de determinadas
columnas de una tabla.
1. SELECT nombre_columna1,... FROM nombre_tabla
2. SELECT * FROM nombre_tabla
MySQL:
SELECT nombre_columna1,... FROM nombre_tabla LIMIT nmero
Oracle:
SELECT nombre_columna1,... FROM nombre_tabla WHERE ROWNUM <=
nmero
Destacar los
siguientes: mysql_fetch_row(),
mysql_fetch_array(), mysql_result() y my
mysql_free_result().
ASP:
conexion.close()
Set rs=nothing
Set conexion=nothing
JSP:
rs.close();
st.close();
conexion.close();
PHP:
o mysql_free_result($result);
o mysql_close($conector);
MS Access:
BEGIN TRANSACTION
Sentencia1_SQL
Sentencia2_SQL
...
ROLLBACK [WORK|TRANSACTION]
COMMIT [WORK|TRANSACTION]
SQL Server:
BEGIN TRAN|TRANSACTION [nombre_transaccin]
Sentencia1_SQL
Sentencia2_SQL
...
ROLLBACK TRAN|TRANSACTION [nombre_transaccin|
punto_recuperacin]|[WORK]
COMMIT TRAN|TRANSACTION [nombre_transaccin] | [WORK]
Oracle:
Sentencia1_SQL
Sentencia2_SQL
...
ROLLBACK [WORK] [TO SAVEPOINT nombre|TO punto_recuperacin]
COMMIT [WORK]
MySQL:
START {TRANSACTION|BEGIN [WORK]}
Sentencia1_SQL
Sentencia2_SQL
...
ROLLBACK [WORK][TO SAVEPOINT nombre |TO punto_recuperacin]
COMMIT [WORK]
o Oracle/MySQL:
SAVEPOINT nombre
Problemas:
o Lectura sucia: esta situacin se da cuando una
transaccin T1 modifica los datos que lee T2, y luego se
hace un rollback de T1.Por lo tanto T2 ha ledo unos datos
que no existen.
Serializable NO NO NO
Repeteable Read NO NO SI
Read Commited NO SI SI
Read Uncommited SI SI SI
Snapshot NO NO NO
MySQL:
SET [SESSION|GLOBAL] TRANSACTION ISOLATION LEVEL READ UNCOMMITED|
READ COMMITED|SERIALIZABLE| REPETEABLE READ
SQL Server:
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITED| READ
COMMITED|SERIALIZABLE| REPETEABLE READ | SNAPSHOT
Oracle:
SET TRANSACTION ISOLATION LEVEL {READ COMMITED | SERIALIZABLE}
Otro tipo de ficheros son los XML para trabajar con ellos
se convierte este en un objeto DOM que permita
recorrer la estructura en forma de rbol. Existen
mtodos para trabajar con objetos DOM.