-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdatabse_sql.sql
More file actions
122 lines (87 loc) · 2.47 KB
/
databse_sql.sql
File metadata and controls
122 lines (87 loc) · 2.47 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
-- Active: 1708267180025@@127.0.0.1@3306@learning_db
-- ! Database SQL
-- create database
CREATE DATABASE learning_db;
-- delete database
DROP DATABASE learning_db;
-- show all DATABASES
SHOW DATABASES;
-- ! Table SQL
-- create table sql
CREATE TABLE users(
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
age INT NULL,
role_id INT NOT NULL,
FOREIGN KEY(role_id) REFERENCES roles(id)
);
-- update table name
ALTER TABLE users RENAME TO test_users;
-- delete table sql
DROP TABLE users;
--! Table column sql
-- create column
ALTER TABLE users
ADD age INT NULL;
-- update column column name
ALTER TABLE users
CHANGE COLUMN username name varchar(255) NULL DEFAULT NULL;
--update column type
ALTER TABLE users
CHANGE COLUMN name name varchar(255) NULL DEFAULT NULL;
-- delete column
ALTER TABLE users
DROP COLUMN name;
--! Row Execute sql
-- create row data users table
INSERT INTO users (id, fname) VALUES (2, "Sharier Rahman");
-- show all row data users table
SELECT * FROM users;
-- update row data users table
UPDATE users SET age = 5 WHERE id = 2;
--? delete row data users table
-- delete specific row
DELETE FROM users WHERE id = 3;
-- delete all row
DELETE FROM users;
--* Read row with ORDER BY(ASC/DESC)
SELECT * FROM users ORDER BY id DESC;
SELECT * FROM users ORDER BY id ASC;
--* use NULL value
SELECT * FROM users WHERE lname IS NULL;
SELECT * FROM users WHERE lname IS NOT NULL;
--* SELECT TOP Clause
SELECT * FROM users LIMIT 1;
SELECT * FROM users WHERE id=2 LIMIT 3;
--* SELECT MIN() and MAX()
SELECT MIN(age) as SmallestAge FROM users;
SELECT MAX(age) as HeightAge FROM users;
--* count row
SELECT COUNT(age) AS count_users FROM users;
-- Ignore Duplicates
SELECT COUNT(DISTINCT age) AS count_users FROM users WHERE age > 5;
--* sum row
SELECT SUM(age * 5) AS total_ages FROM users;
--* LIKE Operator
SELECT * FROM users WHERE lname LIKE 's__ag%';
--* IN Operator
-- SELECT * FROM users WHERE IN age (5);
--! sql join
--* INNER JOIN
SELECT users.name, users.age, roles.name, roles.status
FROM users
INNER JOIN roles ON roles.id = users.role_id;
--* left JOIN
SELECT users.name, users.age, roles.name, roles.status
FROM roles
LEFT JOIN users ON roles.id = users.role_id;
--* right JOIN
SELECT users.name, users.age, roles.name, roles.status
FROM roles
RIGHT JOIN users ON roles.id = users.role_id;
--* Full JOIN [not incomplete]
-- SELECT *
-- FROM users
-- FULL JOIN roles ON roles.id = users.role_id
-- ;
--* self join [not incomplete]