COMMANDS
- SELECT <column-1> [, column-2] ...
- FROM <table-1>
{ INNER | LEFT OUTER | RIGHT OUTER} JOIN table-2
ON table-1.column-1 {=|<|>|<=|>=|<>} table-2.column-2 - WHERE selection-criteria
- ORDER BY column-1 [ASC | DESC] [, column-2 [ASC | DESC]] ...
- INSERT INTO <table-name> [(column-list)]
- VALUES (value-list)
- UPDATE <table-name>
- SET <expression-1> [, expression-2] ...
- WHERE selection-criteria
- DELETE FROM <table-name>
SELECT
SELECT ProductCode, Description, Price
FROM Products
WHERE Price > 50
ORDER BY ProductCode ASC
SELECT * FROM PRODUCTS
SELECT p.ProductCode, p.Price, li.Quantity,
p.Price * li.Quantity AS Total
FROM Products p
INNER JOIN LineItems li
ON p.ProductCode = li.ProductCode
WHERE p.Price > 50
ORDER BY p.ProductCode ASC;
SELECT p.ProductCode, p.Price, li.Quantity,
p.Price * li.Quantity AS Total
FROM Products p, LineItems li
WHERE p.ProductCode = li.ProductCode AND p.Price > 50
ORDER BY p.ProductCode ASC;
SELECT TOP(5) p.prod_name FROM products p, LineItem li
TABLESAMPLE (3 ROWS)
ORDER BY p.prod_price;
SELECT products.prod_name FROM products
ORDER By products.prod_price DESC, products.prod_name
TABLESAMPLE (50 PERCENT);
// Use [] to delimit the column name when there is space btwn
// and alias it using 'AS' to be 'LastName'
SELECT [Last Name] AS LastName
INSERT
INSERT INTO Products (ProductCode, Description, Price)
VALUES ('casp', 'ASP.NET Web Programming with C#', 54.50)
// without the column list
INSERT INTO Products
VALUES ('casp', 'ASP.NET Web Programming with C#', 54.50)
UPDATE
// Update a single row
UPDATE Products
SET Description =
'Murach''s ASP.NET Web Programming with C#',
Price = 49.50
WHERE ProductCode = 'casp'
// Update multiple rows
UPDATE Products
SET Price = 49.95
WHERE Price = 49.50
DELETE
DELETE FROM Products WHERE ProductCode = 'casp' DELETE FROM Invoices WHERE AmountDue = 0 DELETE FROM Invoices
WHERE, IN, NOT
SELECT prod_name, prod_price FROM products p, LineItem li TABLESAMPLE (3 ROWS) WHERE prod_price <> 10, prod_name = 'fuses' ORDER BY price; ... WHERE price BETWEEN 5 AND 10; WHERE vend_id = 1002 AND price <= 10; WHERE vend_id = 1002 OR vend_id = 2001 AND price <= 10; WHERE prod_name LIKE 's%e'; // % is wildcard, WHERE prod_name LIKE 'jet%'; // matching any 'jet' in the beginning WHERE prod_name LIKE '%anvil%'; // %...%, match anywhere WHERE name LIKE '_ley'; // _ match one char WHERE name LIKE '[EJ]%'; // match E or J as the start char WHERE name LIKE '[^EJ]%'; // ^ NOT match, any name not begin with E or J WHERE NOT name LIKE '[EJ]%'; // same as '[^EJ]%' // WHERE OPERATOR: // =, <>, !=, <, <=, !<, >, >=, !>, BETWEEN, IS NULL
Fields/Column Concatenation
SELECT name + ' (' + age + ')'
FROM students
ORDER BY name;
// T-SQL RTrim: trim all space from the right
// LTrim: trim all space from the left
SELECT RTrim(name) + ' (' + LTrim(age) + ')' AS
student_title
FROM students
ORDER BY name;
Using MATH
SELECT id, quantity, price,
quantity * price AS total_price
FROM orderlist
WHERE order_num > 2000;
// T-SQL math operators: + - * / %
Using Function
// Common Text Functions
// CharIndex()
// Left(), Right()
// Len()
// Lower(), Upper()
// LTrim(), RTrim()
// Replace()
// Soundex() : soundex value when they sound similar
// Str()
// SubString()
SELECT name, UPPER(name) AS name_upper
FROM orderlist
WHERE order_num > 2000;
// Common Data and Time functions
// DateAdd()
// DateDiff()
// DateName()
// DatePart()
// Day()
// GetData()
// Month()
// Year()
// Supported Date Parts:
// day (dd or d)
// dayofyear (dy or y)
// hour (hh)
// millisecond (ms)
// minute (mi or n)
// month (m or mm)
// quarter (q or qq)
// second (ss or s)
// week (wk or ww)
// weekday (DatePart() only), (dw)
// year (yy or yyyy)
SELECT name,
DatePart(weekday, orderdate) AS weekday
FROM orderlist;
// to return named weekdays instead of numbered day
SELECT name,
DateName(weekday, DatePart(weekday, orderdate) ) AS weekday
FROM orderlist;
// Day(), Month(), and Year() are shortcuts for
// DatePart(day,), DatePart(month,) and DatePart(year,)
// when comparing dates, always use DateDiff()
SELECT name, id
FROM orderlist
WHERE DateDiff (month, order_date, '2005-09-01') = 0;
...
Where Year(order_date) = 2005 AND Month(order_date) = 9;
// Numeric Functions
// Abs()
// Cos()
// Exp()
// Pi()
// Rand()
// Round()
// Sin()
// Sqrt()
// Square()
// Tan()
// SQL Aggregate Functions
// Avg(), Count(), Max(), Min(), Sum()
SELECT Avg(price) AS avg_price // Null columns are ignored by Avg()
FROM products
WHERE id = 1003;
SELECT Count(*) AS num_customers // count all rows
FROM customers;
SELECT Count(customer_email) AS num_customers // count only those with emails
FROM customers;
SELECT Sum(price*quantity) AS total_price
FROM orderlist
WHERE order_num = 2000;
// Use ALL (default) or DISTINCT for unique items
SELECT Avg(DISTINCT price) AS avg_price_ofunique
FROM products
WHRE id = 1002;
Filtering Groups
// group by vend_id and calcute all products from that // vendor SELECT vend_id, Count(*) AS num_prods FROM products GROUP BY vend_id; SELECT cust_id, Count(*) AS orders FROM orderlist WHERE price >= 10 GROUP BY cust_id HAVING Count(*) >= 2; // HAVING support all WHERE operators // HAVING filters after data is grouped. // WHERE filters before data is grouped // (rows eliminated by WHERE are not included in the group) // (This can change the calculated values used in HAVING clause. // ORDER BY // sorts generated output, can use any column, not required // GROUP BY // groups rows but may not be in order, // only selected columns or expression columns may be used // every selected column expression must be used // required if using columns (or expressions) with Count/Avg/Sum/Min/Max SELECT order_num, Sum(quantity*price) AS ordertotal FROM orderlist GROUP BY order_num HAVING Sum(quantity*price) >= 50; // ORDER BY ordertotal; // optional
SQL Servre 2005
% USE mydatabase; % sp_databases; % sp_tables; % sp_tables NULL, dbo, mydatabase, "'TABLE'"; % sp_columns customers; % sp_server_info; % sp_space_used; % sp_statistics; % sp_helpuser; % sp_helplogins;
No comments:
Post a Comment