Skip to content

Commit 0def96d

Browse files
committed
Update README.md - Remove duplicate documentation with POD
1 parent cbbcfd6 commit 0def96d

File tree

1 file changed

+1
-364
lines changed

1 file changed

+1
-364
lines changed

README.md

Lines changed: 1 addition & 364 deletions
Original file line numberDiff line numberDiff line change
@@ -68,367 +68,4 @@ my $clause = {}; # Clause of SQL Query.
6868
$sql_abstract->select_join($table_list, $column, $clause);
6969
```
7070

71-
## Methods
72-
73-
`CellBIS::SQL::Abstract` inherit from [Mojo::Base](https://metacpan.org/pod/Mojo::Base).
74-
Methods `insert`, `update`, `select`, and `select_join`.
75-
76-
`create_table` is additional method.
77-
Currently, only supports MariaDB/MySQL and SQLite Syntax
78-
79-
The following are the methods available from this module:
80-
81-
### create_table - MariaDB/MySQL :
82-
```perl
83-
use CellBIS::SQL::Abstract
84-
my $sql_abstract = CellBIS::SQL::Abstract->new;
85-
86-
my $table_name = 'my_users';
87-
my $col_list = [ 'id', 'first_name', 'last_name', 'other_col_name' ];
88-
my $col_attr = {
89-
'id' => {
90-
type => {
91-
name => 'int',
92-
size => 11
93-
},
94-
is_primarykey => 1,
95-
is_autoincre => 1,
96-
},
97-
'first_name' => {
98-
type => {
99-
name => 'varchar',
100-
size => 50,
101-
},
102-
is_null => 0,
103-
},
104-
'last_name' => {
105-
type => {
106-
name => 'varchar',
107-
size => 50,
108-
},
109-
is_null => 0,
110-
},
111-
'other_col_name' => {
112-
type => {
113-
name => 'varchar',
114-
size => 60,
115-
},
116-
is_null => 0,
117-
}
118-
};
119-
my $create_table = $sql_abstract->create_table($table_name, $col_list, $col_attr);
120-
```
121-
SQL Equivalent :
122-
```mysql
123-
CREATE TABLE IF NOT EXISTS users(
124-
id INT(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
125-
first_name VARCHAR(50) NOT NULL,
126-
last_name VARCHAR(50) NOT NULL,
127-
other_col_name VARCHAR(60) NOT NULL
128-
) ENGINE=InnoDB DEFAULT CHARSET=utf8
129-
```
130-
131-
### create_table - SQLite :
132-
```perl
133-
use CellBIS::SQL::Abstract
134-
135-
my $sql_abstract = CellBIS::SQL::Abstract->new(db_type => 'sqlite');
136-
137-
my $table_name = 'my_users';
138-
my $col_list = [ 'id', 'first_name', 'last_name', 'other_col_name' ];
139-
my $col_attr = {
140-
'id' => {
141-
type => { name => 'integer' },
142-
is_primarykey => 1,
143-
is_autoincre => 1,
144-
},
145-
'first_name' => {
146-
type => {
147-
name => 'varchar',
148-
size => 50,
149-
},
150-
is_null => 0,
151-
},
152-
'last_name' => {
153-
type => {
154-
name => 'varchar',
155-
size => 50,
156-
},
157-
is_null => 0,
158-
},
159-
'other_col_name' => {
160-
type => {
161-
name => 'varchar',
162-
size => 60,
163-
},
164-
is_null => 0,
165-
}
166-
};
167-
$create_table = $sql_abstract->create_table($table_name, $col_list, $col_attr);
168-
```
169-
SQL Equivalent :
170-
```sqlite
171-
CREATE TABLE IF NOT EXISTS users(
172-
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
173-
first_name VARCHAR NOT NULL,
174-
last_name VARCHAR NOT NULL,
175-
other_col_name VARCHAR(60) NOT NULL
176-
)
177-
```
178-
179-
### create_table with Foreign key - MariaDB/MySQL
180-
```perl
181-
use CellBIS::SQL::Abstract
182-
my $sql_abstract = CellBIS::SQL::Abstract->new;
183-
184-
my $table_name = 'my_companies';
185-
my $col_list = [
186-
'id_company',
187-
'id_company_users',
188-
'company_name',
189-
];
190-
my $col_attr = {
191-
'id_company' => {
192-
type => {
193-
name => 'int',
194-
size => '11'
195-
},
196-
is_primarykey => 1,
197-
is_autoincre => 1,
198-
},
199-
'id_company_users' => {
200-
type => {
201-
name => 'int',
202-
size => '11',
203-
},
204-
is_null => 0,
205-
},
206-
'company_name' => {
207-
type => {
208-
name => 'varchar',
209-
size => '200',
210-
},
211-
is_null => 0,
212-
}
213-
};
214-
my $table_attr = {
215-
fk => {
216-
name => 'user_companies_fk',
217-
col_name => 'id_company_users',
218-
table_target => 'users',
219-
col_target => 'id',
220-
attr => {
221-
onupdate => 'cascade',
222-
ondelete => 'cascade'
223-
}
224-
},
225-
charset => 'utf8',
226-
engine => 'innodb',
227-
};
228-
my $create_table = $sql_abstract->create_table($table_name, $col_list, $col_attr, $table_attr);
229-
```
230-
SQL Equivalent :
231-
```mysql
232-
CREATE TABLE IF NOT EXISTS company(
233-
id_company INT(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
234-
id_company_users INT(11) NOT NULL,
235-
company_name VARCHAR(200) NOT NULL,
236-
KEY user_company_fk (id_company_users),
237-
CONSTRAINT user_company_fk FOREIGN KEY (id_company_users) REFERENCES users (id)
238-
ON DELETE CASCADE ON UPDATE CASCADE
239-
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
240-
```
241-
242-
### create_table with Foreign key - SQLite
243-
```perl
244-
use CellBIS::SQL::Abstract
245-
246-
my $sql_abstract = CellBIS::SQL::Abstract->new(db_type => 'sqlite');
247-
248-
my $table_name = 'my_companies';
249-
my $col_list = [
250-
'id_company',
251-
'id_company_users',
252-
'company_name',
253-
];
254-
my $col_attr = {
255-
'id_company' => {
256-
type => { name => 'integer' },
257-
is_primarykey => 1,
258-
is_autoincre => 1,
259-
},
260-
'id_company_users' => {
261-
type => { name => 'integer' },
262-
is_null => 0,
263-
},
264-
'company_name' => {
265-
type => {
266-
name => 'varchar',
267-
size => '200',
268-
},
269-
is_null => 0,
270-
}
271-
};
272-
my $table_attr = {
273-
fk => {
274-
name => 'user_companies_fk',
275-
col_name => 'id_company_users',
276-
table_target => 'users',
277-
col_target => 'id',
278-
attr => {
279-
onupdate => 'cascade',
280-
ondelete => 'cascade'
281-
}
282-
},
283-
charset => 'utf8',
284-
engine => 'innodb',
285-
};
286-
$create_table = $sql_abstract->create_table($table_name, $col_list, $col_attr, $table_attr);
287-
```
288-
SQL Equivalent :
289-
```sqlite
290-
CREATE TABLE IF NOT EXISTS company(
291-
id_company INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
292-
id_company_users INTEGER NOT NULL,
293-
company_name VARCHAR NOT NULL,
294-
CONSTRAINT user_company_fk FOREIGN KEY (id_company_users) REFERENCES users (id)
295-
ON DELETE CASCADE ON UPDATE CASCADE
296-
)
297-
```
298-
299-
### insert
300-
```perl
301-
use CellBIS::SQL::Abstract
302-
my $sql_abstract = CellBIS::SQL::Abstract->new;
303-
304-
my $table_name = 'my_users';
305-
my $column = [
306-
'first_name',
307-
'last_name'
308-
];
309-
my $value = [
310-
'my_name',
311-
'my_last_name'
312-
];
313-
314-
# If no Prepare Statement
315-
my $insert_no_pre_st = $sql_abstract->insert($table_name, $column, $value);
316-
317-
# IF Prepare Statement
318-
my $insert = $sql_abstract->insert($table_name, $column, $value, 'pre-st');
319-
```
320-
SQL equivalent :
321-
```mysql
322-
# No Prepare Statement :
323-
INSERT INTO my_users(first_name, last_name) VALUES('my_name', 'my_last_name');
324-
325-
# Prepare Statement :
326-
INSERT INTO my_users(first_name, last_name) VALUES(?, ?);
327-
```
328-
329-
### update
330-
```perl
331-
use CellBIS::SQL::Abstract
332-
my $sql_abstract = CellBIS::SQL::Abstract->new;
333-
334-
my $table_name = 'my_users'; # Table name.
335-
my $column = [
336-
'first_name',
337-
'last_name'
338-
];
339-
my $value = [
340-
'Achmad Yusri',
341-
'Afandi'
342-
];
343-
my $clause = {
344-
where => 'id = 2'
345-
};
346-
347-
# Preare Statement :
348-
my $update = $sql_abstract->update($table_name, $column, $value, $clause);
349-
350-
# No Prepare Statement :
351-
my $update = $sql_abstract->update($table_name, $column, $value, $clause, 'pre-st');
352-
```
353-
SQL equivalent :
354-
```mysql
355-
# Preare Statement :
356-
UPDATE my_users SET first_name=?, last_name=? WHERE id = 2;
357-
358-
# No Prepare Statement :
359-
UPDATE my_users SET first_name='Achmad Yusri', last_name='Afandi' WHERE id = 2;
360-
```
361-
362-
### delete
363-
```perl
364-
use CellBIS::SQL::Abstract
365-
my $sql_abstract = CellBIS::SQL::Abstract->new;
366-
367-
my $table_name = 'my_users';
368-
my $clause = {
369-
where => 'id = 2'
370-
};
371-
my $delete = $sql_abstract->delete($table_name, $clause);
372-
```
373-
SQL equivalent :
374-
```mysql
375-
DELETE FROM my_users WHERE id = 2;
376-
```
377-
378-
### select
379-
```perl
380-
use CellBIS::SQL::Abstract
381-
my $sql_abstract = CellBIS::SQL::Abstract->new;
382-
383-
my $table_name = 'my_users';
384-
my $column = [];
385-
my $clause = {
386-
where => 'id = 2'
387-
};
388-
my $select = $sql_abstract->select($table_name, $column, $clause);
389-
```
390-
SQL equivalent :
391-
```mysql
392-
SELECT * FROM my_users WHERE id = 2;
393-
```
394-
### select_join
395-
```perl
396-
use CellBIS::SQL::Abstract
397-
my $sql_abstract = CellBIS::SQL::Abstract->new;
398-
399-
my $table_list = [
400-
{ name => 'my_users', 'alias' => 't1', primary => 1 },
401-
{ name => 'my_companies', 'alias' => 't2' }
402-
];
403-
my $column = [
404-
't1.first_name',
405-
't1.last_name',
406-
't2.company_name',
407-
];
408-
my $clause = {
409-
'typejoin' => {
410-
'my_companies' => 'inner',
411-
},
412-
'join' => [
413-
{
414-
name => 'my_companies',
415-
onjoin => [
416-
't1.id', 't2.id_company_users',
417-
]
418-
}
419-
],
420-
'where' => 't1.id = 2 AND t2.id_company_users = 1',
421-
'orderby' => 't1.id',
422-
'order' => 'desc', # asc || desc
423-
'limit' => '10'
424-
};
425-
my $select_join = $sql_abstract->select_join($table_list, $column, $clause);
426-
```
427-
SQL equivalent :
428-
```mysql
429-
SELECT t1.first_name, t1.last_name, t2.company_name
430-
FROM my_users AS t1
431-
INNER JOIN my_companies AS t2
432-
ON t1.id = t2.id_company_users
433-
WHERE t1.id = 2 AND t2.id_company_users = 1 ORDER BY t1.id DESC LIMIT 10;
434-
```
71+
For more information you can see on [CPAN](https://metacpan.org/pod/CellBIS::SQL::Abstract).

0 commit comments

Comments
 (0)