SQL极简教程 · MySQL · MyBatis · JPA 技术笔记 教程 总结oracle的基本sql介绍SQL用法

2018-02-09持续更新的SQL语言

2018-02-09  本文已影响3人  adorable_new

SQL学习笔记Structured Query Language:

对于SQL语言,有几个特点:
1 永远第一个出现的是关键字
2 以分号结尾,使多个查询可并列
3 SQL不区分大小写
下面是具体程序部分:

SQL语法系统学习

distinct的查询

SELECT distinct column1,column2…… FROM table_name where condition1 OR condition2 OR condition3;

插入,如果是针对所有列那么

INSERT INTO table_name (column1,column2……) values (value1. value2……);

空值的概念

`SELECT column_names
FROM table_name
WHERE column_name IS NULL;

SELECT column_names
FROM table_name
WHERE column_name IS NOT NULL;`

创建表的时候空值方法

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) );

产出的结果

+----+----------+-----+-----------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
| 1 | Ramesh | 32 | Ahmedabad | 2000.00 |
| 2 | Khilan | 25 | Delhi | 1500.00 |
| 3 | kaushik | 23 | Kota | 2000.00 |
| 4 | Chaitali | 25 | Mumbai | 6500.00 |
| 5 | Hardik | 27 | Bhopal | 8500.00 |
| 6 | Komal | 22 | MP | |
| 7 | Muffy | 24 | Indore | |
+----+----------+-----+-----------+----------+

update语句,WHERE子句指定哪些记录需要更新。如果省略WHERE子句,所有记录都将更新!

UPDATE table_name SET column1=value1, column2=value2,... WHERE CONDITION;

选取前几个,在MySQL和Oracle库有细微的差别

SELECT column_names FROM table_name LIMIT number;

LIKE操作符:

有两个通配符与LIKE运算符一起使用:
% - 百分号表示零个,一个或多个字符
_ - 下划线表示单个字符
`SELECT column1,column2,...
FROM table_name
WHERE column LIKE pattern;

SELECT * FROM customer
WHERE city LIKE 'L_n_on';`

IN 操作符

IN运算符允许您在WHERE子句中指定多个值或者表
SELECT column_names FROM table_name WHERE column_name IN (SELECT column from table_w3c where...);

BETWEEN操作符

SELECT column_name FROM tabl_name WHERE column_name BETWEEN values and value2;

实例注意,不同数据库是否包括范围区间变量不同

SELECT * FROM products WHERE productname BETWEEN 'C' AND 'M';

JOIN语句,记住SELECT后面可以更上两个表的列,用浮点连接即可

INNER JOIN:如果表中有至少一个匹配,则返回行
LEFT JOIN:即使右表中没有匹配,也从左表返回所有的行
RIGHT JOIN:即使左表中没有匹配,也从右表返回所有的行
FULL JOIN:只要其中一个表中存在匹配,则返回行

SELECT Orders.orderID,Customer.CustomerName,Order.OrderDate FROM Orders INNER JOIN Customers ON ORDERS.CustomerID=Customers.CustomerID;

FULL OUTER JOIN 关键字返回左表(Customers)和右表(Orders)中的所有行。

如果"Customers"表中的行与"Orders"中的行不匹配,或者"Orders"表中的行与"Customers"表中的行不匹配,也将列出它们。
SELECT Customers.CustomerName, Orders.OrderID FROM Customers FULL OUTER JOIN Orders ON Customers.CustomerID=Orders.CustomerID ORDER BY Customers.CustomerName;

UNION ALL允许不同值,但是UNION只会选择一个值

SELECT column_name FROM table1 UNION SELECT column_name FROM table2;

select into插入新表,格式是select*into from,列或者表都可以使用,

也可以加上LEFT JOIN花式插入,实现拼接完成之后插入新表
SELECT Cusetomer.CustomerName,Orders.DrderID INTO customerorderbackup2013 FROM customers left join orders on customers.customername=order.orderID;

SQL撤销索引/表以及数据库,DROP INDEX在各个流程中不同

DROP TABLE table_name DROP DATABASE database_name;

SQL的CREATE TABLE语句,由行列组成,必须有名字,CREATE DATABASE是创建数据库的字段

CREATE TABLE persons ( personID int, lastname varchar(255), firstname varchar(255), address varchar(255), ));

ALTER TABLE的用法是在现有的列表添加删除或者修改列

ALTER TABLE table_name ADD column_type;

同理有DROP和ALTER COLUMN TYPE1 TYPE2

其他不常用的用法简介:
AUTO_INCREMENT,自动增量(auto-increment)字段,在新记录插入表中时生成一个唯一的数字。

SQL别名,

查询涉及多个表
用于查询函数
需要把两个或更多的列放在一起
列名长或可读性差
`SELECT column1, column2....
FROM table_name AS alias_name
WHERE [condition];

SELECT C.ID,C.NAME,C.AGE,O.AMOUNT
FROM CUSTOMERS AS C,ORDERS AS O
WHERE C.ID=O.CUSTOMER_ID;`

子查询语句。子查询和SELECT语句一起用,

子查询(Sub Query)或者说内查询(Inner Query),也可以称作嵌套查询(Nested Query)
SELECT column_name [, column_name ] FROM table1 [, table2 ] WHERE column_name OPERATOR (SELECT column_name [, column_name ] FROM table1 [, table2 ] [WHERE])

DISTINCT语句处理重复数据

SELECT DISTINCT column1, column2,.....columnN FROM table_name WHERE [condition];

SQL HAVING子句,和GROUP BY一起用的

WHERE 子句对被选择的列施加条件,而 HAVING 子句则对 GROUP BY 子句所产生的组施加条件。
SELECT COLUMN1 FROM TABLE1 WHERE [CONDITION] GROUP BY [CONDITIONS] ORDER BY COLUMN1;

SQL通配符

通配符 描述
百分号(%) 匹配一个或者多个字符。
注意:MS Access 使用星号(*)作为匹配一个或者多个字符的通配符,而不是百分号(%)。
下划线(_) 匹配一个字符。
注意:MS Access 使用问号(?),而不是下划线,来匹配任一字符。

函数大全

SQL TRIM()函数去除字符串头尾空格
SQL AVG() 函数返回数字列的平均值
COUNT() 函数返回符合指定条件的行数
CONCAT 函数用于将两个字符串连接为一个字符串
SQRT 函数用于计算得出任何数值的平方根。你可以像下面这样使用 SELECT 语句计算任何数值的平方根:

上一篇 下一篇

猜你喜欢

热点阅读