100 SQL Commands for Mastering SQL
Database Creation and Management
- Create Database:
CREATE DATABASE my_database;
- Drop Database:
DROP DATABASE my_database;
- Select Database:
USE my_database;
Table Creation and Management
- Create Table:
CREATE TABLE users ( id INT PRIMARY KEY, name VARCHAR(100), email VARCHAR(100) );
- Drop Table:
DROP TABLE users;
- Alter Table:
ALTER TABLE users ADD COLUMN age INT;
- Rename Table:
ALTER TABLE users RENAME TO customers;
- Add Column:
ALTER TABLE users ADD COLUMN address VARCHAR(255);
- Drop Column:
ALTER TABLE users DROP COLUMN address;
- Modify Column:
ALTER TABLE users MODIFY COLUMN name VARCHAR(150);
Basic Data Operations
- Insert Data:
INSERT INTO users (id, name, email) VALUES (1, 'John Doe', 'john@example.com');
- Update Data:
UPDATE users SET email = 'john.doe@example.com' WHERE id = 1;
- Delete Data:
DELETE FROM users WHERE id = 1;
- Select Data:
SELECT * FROM users;
- Select Specific Columns:
SELECT name, email FROM users;
Advanced Data Retrieval
- Where Clause:
SELECT * FROM users WHERE age > 30;
- Order By:
SELECT * FROM users ORDER BY name ASC;
- Group By:
SELECT COUNT(*), age FROM users GROUP BY age;
- Having Clause:
SELECT age, COUNT(*) FROM users GROUP BY age HAVING COUNT(*) > 1;
- Limit Clause:
SELECT * FROM users LIMIT 10;
- Distinct:
SELECT DISTINCT age FROM users;
Joins
- Inner Join:
SELECT users.name, orders.order_id FROM users INNER JOIN orders ON users.id = orders.user_id;
- Left Join:
SELECT users.name, orders.order_id FROM users LEFT JOIN orders ON users.id = orders.user_id;
- Right Join:
SELECT users.name, orders.order_id FROM users RIGHT JOIN orders ON users.id = orders.user_id;
- Full Join:
SELECT users.name, orders.order_id FROM users FULL OUTER JOIN orders ON users.id = orders.user_id;
Indexes and Constraints
- Create Index:
CREATE INDEX idx_users_name ON users(name);
- Drop Index:
DROP INDEX idx_users_name;
- Unique Constraint:
ALTER TABLE users ADD CONSTRAINT unique_email UNIQUE (email);
- Foreign Key Constraint:
ALTER TABLE orders ADD CONSTRAINT fk_user_id FOREIGN KEY (user_id) REFERENCES users(id);
Aggregate Functions
- Count:
SELECT COUNT(*) FROM users;
- Sum:
SELECT SUM(age) FROM users;
- Average:
SELECT AVG(age) FROM users;
- Max:
SELECT MAX(age) FROM users;
- Min:
SELECT MIN(age) FROM users;
Subqueries
- Subquery in SELECT:
SELECT name, (SELECT COUNT(*) FROM orders WHERE orders.user_id = users.id) AS order_count FROM users;
- Subquery in WHERE:
SELECT * FROM users WHERE id IN (SELECT user_id FROM orders);
Transactions
- Start Transaction:
START TRANSACTION;
- Commit Transaction:
COMMIT;
- Rollback Transaction:
ROLLBACK;
Views
- Create View:
CREATE VIEW user_orders AS SELECT users.name, orders.order_id FROM users JOIN orders ON users.id = orders.user_id;
- Drop View:
DROP VIEW user_orders;
Advanced SQL Commands
- Case Statement:
SELECT name, CASE WHEN age < 18 THEN 'Minor' WHEN age BETWEEN 18 AND 65 THEN 'Adult' ELSE 'Senior' END AS age_group FROM users;
- Union:
SELECT name FROM users UNION SELECT name FROM customers;
- Union All:
SELECT name FROM users UNION ALL SELECT name FROM customers;
JSON Functions (for databases supporting JSON)
- Insert JSON Data:
INSERT INTO user_data (data) VALUES ('{"name": "John", "age": 30}');
- Select JSON Data:
SELECT data->>'name' AS name FROM user_data;
- Update JSON Data:
UPDATE user_data SET data = jsonb_set(data, '{age}', '31') WHERE id = 1;
Window Functions
- Row Number:
SELECT name, age, ROW_NUMBER() OVER (PARTITION BY age ORDER BY name) AS row_num FROM users;
- Rank:
SELECT name, age, RANK() OVER (ORDER BY age DESC) AS rank FROM users;
- Dense Rank:
SELECT name, age, DENSE_RANK() OVER (ORDER BY age DESC) AS dense_rank FROM users;
String Functions
- Concatenate:
SELECT CONCAT(first_name, ' ', last_name) AS full_name FROM users;
- Substring:
SELECT SUBSTRING(name, 1, 3) AS short_name FROM users;
- Length:
SELECT LENGTH(name) AS name_length FROM users;
- Upper:
SELECT UPPER(name) AS uppercase_name FROM users;
- Lower:
SELECT LOWER(name) AS lowercase_name FROM users;
Date and Time Functions
- Current Date:
SELECT CURRENT_DATE;
- Current Time:
SELECT CURRENT_TIME;
- Current Timestamp:
SELECT CURRENT_TIMESTAMP;
- Extract Year:
SELECT EXTRACT(YEAR FROM birth_date) AS birth_year FROM users;
- Date Add:
SELECT birth_date + INTERVAL '1 year' AS next_birth_date FROM users;
User and Role Management
- Create User:
CREATE USER 'new_user'@'localhost' IDENTIFIED BY 'password';
- Drop User:
DROP USER 'new_user'@'localhost';
- Grant Privileges:
GRANT ALL PRIVILEGES ON my_database.* TO 'new_user'@'localhost';
- Revoke Privileges:
REVOKE ALL PRIVILEGES ON my_database.* FROM 'new_user'@'localhost';
- Create Role:
CREATE ROLE manager;
- Grant Role to User:
GRANT manager TO 'new_user'@'localhost';
Backup and Restore
- Backup Database:
BACKUP DATABASE my_database TO DISK = 'backup_file.bak';
- Restore Database:
RESTORE DATABASE my_database FROM DISK = 'backup_file.bak';
Analytical Functions
- Cume Dist:
SELECT name, age, CUME_DIST() OVER (ORDER BY age) AS cume_dist FROM users;
- Lag:
SELECT name, age, LAG(age, 1) OVER (ORDER BY age) AS previous_age FROM users;
- Lead:
SELECT name, age, LEAD(age, 1) OVER (ORDER BY age) AS next_age FROM users;
- Ntile:
SELECT name, age, NTILE(4) OVER (ORDER BY age) AS quartile FROM users;
Data Integrity and Validation
- Check Constraint:
ALTER TABLE users ADD CONSTRAINT chk_age CHECK (age >= 0);
- Default Value:
ALTER TABLE users ALTER COLUMN age SET DEFAULT 0;
- Not Null Constraint:
ALTER TABLE users ALTER COLUMN name SET NOT NULL;
Security
- Create Procedure:
CREATE PROCEDURE my_procedure() BEGIN SELECT * FROM users; END;
- Drop Procedure:
DROP PROCEDURE my_procedure;
- Create Function:
CREATE FUNCTION get_user_email(user_id INT) RETURNS VARCHAR(100) BEGIN RETURN (SELECT email FROM users WHERE id = user_id); END;
- Drop Function:
DROP FUNCTION get_user_email;
Data Export and Import
- Export to CSV:
SELECT * INTO OUTFILE '/tmp/users.csv' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' FROM users;
- Import from CSV:
LOAD DATA INFILE '/tmp/users.csv' INTO TABLE users FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n';
Error Handling
- Try-Catch:
BEGIN TRY -- SQL statements END TRY BEGIN CATCH -- Handle error END CATCH;
Miscellaneous
- Rename Column:
ALTER TABLE users RENAME COLUMN name TO full_name;
- Case Conversion:
SELECT UPPER(full_name) AS upper_name FROM users;
- Remove Duplicates:
DELETE FROM users WHERE id NOT IN (SELECT MIN(id) FROM users GROUP BY name, email);
- IF Statement:
IF (SELECT COUNT(*) FROM users) > 100 BEGIN PRINT 'More than 100 users'; END;
- Convert Data Type:
SELECT CONVERT(VARCHAR, age) AS age_str FROM users;
- Coalesce:
SELECT COALESCE(middle_name, 'N/A') AS middle_name FROM users;
- Is Null:
SELECT * FROM users WHERE middle_name IS NULL;
- Is Not Null:
SELECT * FROM users WHERE middle_name IS NOT NULL;
XML Functions (for databases supporting XML)
- Insert XML Data:
INSERT INTO user_data (data) VALUES ('<user><name>John</name><age>30</age></user>');
- Select XML Data:
SELECT data.value('(/user/name)[1]', 'VARCHAR(100)') AS name FROM user_data;
- Update XML Data:
UPDATE user_data SET data.modify('replace value of (/user/age)[1] with 31') WHERE id = 1;
Full-Text Search
- Create Full-Text Index:
CREATE FULLTEXT INDEX ft_idx ON users(name, email);
- Full-Text Search:
SELECT * FROM users WHERE MATCH(name, email) AGAINST('search_term');
Temporary Tables
- Create Temporary Table:
CREATE TEMPORARY TABLE temp_users ( id INT, name VARCHAR(100) );
- Drop Temporary Table:
DROP TEMPORARY TABLE temp_users;
Sequences
- Create Sequence:
CREATE SEQUENCE user_seq START WITH 1 INCREMENT BY 1;
- Next Value of Sequence:
SELECT NEXT VALUE FOR user_seq;
- Drop Sequence:
DROP SEQUENCE user_seq;
Mastering these 100 SQL commands will give you a strong foundation in SQL, enabling you to manage and manipulate databases effectively.
Nicely put. Thanks a lot!
casino en ligne
Fantastic content, Regards!
casino en ligne
This is nicely said! !
casino en ligne
Very well spoken really! !
casino en ligne
You said it well!
casino en ligne
Whoa a good deal of helpful material!
casino en ligne
Seriously quite a lot of great tips!
casino en ligne France
Seriously a good deal of wonderful tips.
casino en ligne
With thanks. Lots of data!
casino en ligne France
Amazing a lot of awesome knowledge.
casino en ligne
swot анализ метод swot анализа
Looking for second-hand? thrift shops near me We have collected the best stores with clothes, shoes and accessories. Large selection, unique finds, brands at low prices. Convenient catalog and up-to-date contacts.
русское порно сиськи русское порно онлайн
Want to have fun? sex children melbet Watch porn, buy heroin or ecstasy. Pick up whores or buy marijuana. Come in, we’re waiting
Новые актуальные промокод iherb promo kod herb для выгодных покупок! Скидки на витамины, БАДы, косметику и товары для здоровья. Экономьте до 30% на заказах, используйте проверенные купоны и наслаждайтесь выгодным шопингом.
сайты заказа курсовых работ курсовые на заказ москва
займ онлайн срочно кредитные займы онлайн срочно
займы онлайн быстро без отказа займ онлайн с плохой историей
перевод электронного документа телефон бюро переводов
buy weed prague https://cocaine-prague-shop.com
coke in prague coke in prague
cocain in prague fishscale buy cocaine prague
buy mdma prague weed in prague
buy xtc prague buy mdma prague
prague drugstore buy xtc prague
Нужен чертеж? заказать изготовление чертежей выполним чертежи для студентов на заказ. Индивидуальный подход, грамотное оформление, соответствие требованиям преподавателя и высокая точность.
Нужна презентация? заказать презентацию быстро Красочный дизайн, структурированный материал, уникальное оформление и быстрые сроки выполнения.
joszaki regisztracio joszaki.hu
A reliable partner https://terionbot.com in the world of investment. Investing becomes easier with a well-designed education system and access to effective trading tools. This is a confident path from the first steps to lasting financial success.