Professional Documents
Culture Documents
#1. Connectinon
mysql -u username -h hostname -p password -P port [-e]
#2. Rights
#
MySQL database contains the user rights within the DBMS and are not depe
ndant on the OS
#
#
#
#
#
#
#
Rights scope
mysql.user - Global scope
mysql.db -Database scope
mysql.host - Host scope
mysql.tables_priv - Table scope
mysql.columns_priv - Column scope
mysql.procs_priv - Procedure scope
#1. Create users
CREATE USER 'username'@'hostname' IDENTIFIED BY 'password';
# 2. Grant access and usage
GRANT ALL PRIVILEGES
ON
database_name.table_name --(*.* / *)
TO
'username'@'hostname'
IDENTIFIED BY
(PASSWORD) -- expects password hash(md5/sha)
'password'
(WITH GRANT OPTION);
#full usage rights with optional permission to grant privileges
to other users
GRANT USAGE
ON
database_name.table_name --(*.* / *)
to
'username'@'hostname'
IDENTIFIED BY
(PASSWORD) -- expects password hash (md5/sha)
'password';
#provisions access to DBMS but to no database/table
#the access can be given using GRANT PRIVILEGES later on
# 3. Revoke access
REVOKE ALL PRIVILEGES
ON
database_name.table_name --(*.* / *)
FROM
'username'@'hostname';
#4. Remove usage
DATABASE 'database_name';
TABLE 'table_name';
INDEX 'index_name' ON 'table_name';
INDEX 'table_name.index_name' --MSSQL
TRIGGER 'trigger_name' ON 'table_name';
PROCEDURE 'proedure_name' ON 'table_name';
FUNCTION 'function_name' ON 'table_name';
#5. Triggers
#Single Trigger
CREATE TRIGGER 'trigger_name' 'trigger_time' 'trigger_event' ON 'table_n
ame' FOR EACH ROW 'trigger_statement';
--trigger_time = before/after
--trigger_event=insert/update/delete
--trigger_statement= standard SQL statement
#Multiple Trigger
DELIMITER |
CREATE TRIGGER 'trigger_name' 'trigger_time' 'trigger_event' ON
'table_name'
FOR EACH ROW BEGIN
'statement1';
'statement2';
'statement3';
END;|
DELIMITER ;
#6. Routines
#1. Stored procedures
--are associated with DB's not the entire DBMS
--implicitly execute 'use database_name'
CALL 'database_name.routine_name'();
CALL 'routine_name'('optional_parameters');
CREATE PROCEDURE 'procedure_name'(['proc_parameter',...]) SELECT
* FROM 'table_name';
CREATE PROCEDURE 'procedure_name' (OUT variable_name INT)
SELECT COUNT(*) INTO variable_name FROM 'table_name';
CALL 'database_name.procedure_name'(@total);
--proc_parameter= will accept [IN | OUT | INOUT variable_name va
riable_type]
#Execute multiple stored procedures
DELIMITER |
CREATE PROCEDURE 'database_name.procedure_name'()
BEGIN
SELECT COUNT(*) FROM 'table_name';
SELECT * FROM 'table_name';
END; |
DELIMITER;
#2. Functions
CREATE FUNCTION 'function_name' ('func_parameter[....]') RETURNS
'data_type'
RETURN 'function_operations';
CREATE FUNCTION stored_function_hello_world (arg1 CHAR(10)) RETU
RNS CHAR(20)
RETURN CONCAT('Hello ',arg1);
CREATE FUNCTION GET_AGE (arg1 date) RETURNS INT(2)
RETURN DATEDIFF(NOW(),arg1)/365;