1.數(shù)據(jù)庫
CREATE DATABASE DatabaseName;
#查看數(shù)據(jù)庫
SQL> SHOW DATABASES;
#刪除
DROP DATABASE DatabaseName;
#使用數(shù)據(jù)庫
USE DatabaseName;
2.表操作
創(chuàng)建表
SQL> CREATE TABLE CUSTOMERS(
ID INT NOT NULL,
NAME VARCHAR (20) NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR (25) ,
SALARY DECIMAL (18, 2),
PRIMARY KEY (ID)
);
#展示表字段
SQL> DESC CUSTOMERS;
刪除表
DROP(DELETE) TABLE table_name;
插入表
INSERT INTO TABLE_NAME (column1, column2, column3,...columnN)]
VALUES (value1, value2, value3,...valueN);
#如
INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (1, 'Ramesh', 32, 'Ahmedabad', 2000.00 );
用一個表填充另一個表:
可以通過使用select語句填充一個表的數(shù)據(jù)到另一個表中的字段,這是必需的,以填充第一個表。下面是語法:
INSERT INTO first_table_name [(column1, column2, ... columnN)]
SELECT column1, column2, ...columnN FROM second_table_name
[WHERE condition];
查詢表
SELECT column1, column2, columnN FROM table_name;
WHERE子句不只是用在SELECT語句,它也用于UPDATE,DELETE等語句,我們將在以后的章節(jié)研究學(xué)習(xí)。
SELECT column1, column2, columnN FROM table_name
WHERE [condition]
#例子
SQL> SELECT ID, NAME, SALARY FROM CUSTOMERS
WHERE NAME = 'Hardik';
and和or
SELECT column1, column2, columnN FROM table_name
WHERE [condition1] AND [condition2]...AND [conditionN];
#例子
SQL> SELECT ID, NAME, SALARY FROM CUSTOMERS
WHERE SALARY > 2000 AND age < 25;
SELECT column1, column2, columnN FROM table_name
WHERE [condition1] OR [condition2]...OR [conditionN]
#例子
SQL> SELECT ID, NAME, SALARY FROM CUSTOMERS
WHERE SALARY > 2000 OR age < 25;
update表
UPDATE table_name
SET column1 = value1, column2 = value2...., columnN = valueN
WHERE [condition];
#例子
SQL> UPDATE CUSTOMERS
SET ADDRESS = 'Pune', SALARY = 1000.00;
DELETE查詢用來從表中刪除現(xiàn)有的記錄。
DELETE FROM table_name
WHERE [condition];
#刪除某一個
SQL> DELETE FROM CUSTOMERS
WHERE ID = 6;
#刪除所有記錄
SQL> DELETE FROM CUSTOMERS;
like語句
(%)百分號代表零個,一個或多個字符。
(_)下劃線表示單個數(shù)字或字符。所述符號可以在組合使用。
WHERE SALARY LIKE '200%' 查找以200開始的任何值
WHERE SALARY LIKE '%200%' 查找含有200的任何值
WHERE SALARY LIKE '_00%' 查找在第二和第三位置是00的任何值
WHERE SALARY LIKE '2_%_%' 查找開始2并且長度至少為3個字符的任何值
WHERE SALARY LIKE '%2' 查找以2結(jié)尾的任何值
WHERE SALARY LIKE '_2%3' 查找第二位置為2,并以3結(jié)束的任何值
WHERE SALARY LIKE '2___3' 查找以5位數(shù)字-開頭為2,并3結(jié)束的任何值
SQL TOP子句用于從表中獲取一個TOP N數(shù)字或X%的紀(jì)錄。
注意: 不是所有的數(shù)據(jù)庫都支持TOP子句。例如,MySQL使用LIMIT子句來獲取記錄;Oracle使用ROWNUM獲取有限的記錄數(shù)。
SELECT TOP number|percent column_name(s)
FROM table_name
WHERE [condition]
#例子
SQL> SELECT TOP 3 * FROM CUSTOMERS;
#mysql
SQL> SELECT * FROM CUSTOMERSLIMIT 3;
#orace
SQL> SELECT * FROM CUSTOMERSWHERE ROWNUM <= 3;
SQL ORDER BY子句
用于按升序或降序排序數(shù)據(jù)在一列或多列的基礎(chǔ)上。一些數(shù)據(jù)庫默認排序查詢結(jié)果按升序排列。
SELECT column-list FROM table_name
[WHERE condition]
[ORDER BY column1, column2, .. columnN] [ASC | DESC];
#下面是一個例子,將結(jié)果通過NAME和SALARY升序排序:
SQL> SELECT * FROM CUSTOMERS ORDER BY NAME, SALARY;
#獲取使用自己的優(yōu)先順序行,SELECT查詢將如下:
SQL> SELECT * FROM CUSTOMERS
ORDER BY (CASE ADDRESS
WHEN 'DELHI' THEN 1
WHEN 'BHOPAL' THEN 2
WHEN 'KOTA' THEN 3
WHEN 'AHMADABAD' THEN 4
WHEN 'MP' THEN 5
ELSE 100 END) ASC, ADDRESS DESC;
GROUP BY子句用于協(xié)同SELECT語句用來安排相同的數(shù)據(jù)分組。
GROUP BY子句在SELECT語句的WHERE子句之后并ORDER BY子句之前。
SELECT column1, column2
FROM table_name
WHERE [ conditions ]
GROUP BY column1, column2
ORDER BY column1, column2
#如果你想知道每個客戶的薪水的總額,使用GROUP BY查詢?nèi)缦滤?SQL> SELECT NAME, SUM(SALARY) FROM CUSTOMERS GROUP BY NAME;
SQL DISTINCT關(guān)鍵字與SELECT語句一起使用,以消除所有重復(fù)的記錄和獲取的唯一記錄。
可能有一種情況,當(dāng)你在一個表中多個重復(fù)的記錄。 當(dāng)獲取這些記錄,它獲取的唯一記錄更有意義,而不是獲取重復(fù)記錄。
SELECT DISTINCT column1, column2,.....columnN
FROM table_name
WHERE [condition]
#SELECT查詢返回重復(fù)的工資記錄:
SQL> SELECT DISTINCT SALARY FROM CUSTOMERS
ORDER BY SALARY;