SQL基础用法:(可在https://www.nowcoder.com/ta/sql?query=&asc=true&order=&page=1练习SQL的简单编写)
1. SQL的DML(数据操作语言):select,insert into,delete,update
2. SQL的DDL(数据定义语言):create database,alter database,create table,alter table,drop table,create index,drop index
3. select 列名,列名 from 表名;select * from 表名
4. select distinct 列名 from 表名
distinct用于返回唯一不同的值,去掉结果集中的重复值,也可在count(distinct 列名)
5. where自居用于规定选择的标准。
select 列名 from 表名 where 列名 运算符 值;
1) 运算符包括(=,<>,>,>,<=,>=,like,between,%)
2) 值为文本时,用‘’;数值时不需要
6. AND 和 OR用于两个或两个以上的条件对记录进行过滤。同时使用时,用括号将条件括起来
select 列名 from (表达式1 or 表达式2) and 表达式3
7. ORDER BY对结果集进行排序。默认为升序,降序为DESC,升序ASC
select 列名 from 表名 order by 列名
8. INSERT INTO向表中插入新的行:insert into 表名 values(值1,值2…)
指定索要插入数据的列:insert into 表名(列1,列2…) values(值1,值2…)
9. UPDATE用于修改表中的数据
update 表名 set 列名= 新值,列名1=新值 where 列名=值;
10. DELETE语句用于删除表中的某一行
delete from 表名 where 列名 = 值;
删除所有行(但表还存在):
delete * from 表名 或delete from 表名
11. SELECT TOP用于规定要返回的记录的数目。
SQL Server/MS Access:SELECT TOP number|PERCENT column_name(s) FROM table_name
MYSQL:SELECT column_name(s) FROM table_name LIMIT number;
Oracle: SELECT column_name(s) FROM tabel_name WHERE ROWNUMBER <= number;
12. LIKE用于在WHERE子句中搜索列中的指定模式。
SELECT column_name(s) FROM table_name WHERE column_name (NOT) LIKE pattern
通配符,必须与LIKE一起使用。
%:替代一个或多个字符。匹配pattern中缺少的字符:a%(以a开始),%g(以g结束),%lon%(包含lon)
-:只能代替一个字符
[Charlist]:字符列中的任何单一字符。如:SELECT * FROM PERSON WHERE City LIKE '[ANL]%';查询城市名称以A,N,L开头的所有记录
[^Charlist ]或[!Charlist]:不在字符列中的任何单一字符。如:SELECT * FROM PERSON WHERE City LIKE '%[^A]';查询城市名称不以A结尾的所有记录
13. IN操作符我们可以在WHERE语句中可以规定多个值。
SELECT column_name(s) FROM table_name WHERE column_name IN (Value1,Value2,…)
14. BETWEEN..AND.. 选取介于两个值之间的数据范围。值可以为文本,数值,日期。数据库对该操作符包含的值不同。
SELECT * FROM table_name WHERE column_name (NOT)BETWEEN value1 AND value2
15. AS为列名称和表名称指定别名。
SELECT column_name(s) FROM table_name AS alias_name;
SELECT column_name(s) AS alias_columnname FROM table_name;
16. JION==INNER JION用于根据两个或多个表中的列之间的关系,从这些表中查询数据。
在表中存在至少一个匹配时,INNER JOIN 关键字返回行。
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
INNER JOIN Orders
ON Persons.Id_P = Orders.Id_P
ORDER BY Persons.LastName
17. LEFT JOIN关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行。
SELECT column_name(s)
FROM table_name1
LEFT JOIN table_name2
ON table_name1.column_name=table_name2.column_name
18. RIGHT JOIN 关键字会右表 (table_name2) 那里返回所有的行,即使在左表 (table_name1) 中没有匹配的行。
SELECT column_name(s)
FROM table_name1
RIGHT JOIN table_name2
ON table_name1.column_name=table_name2.column_name
19. FULL JOIN关键字只要其中某个表存在匹配,FULL JOIN 关键字就会返回行。
在某些数据库中, FULL JOIN 称为 FULL OUTER JOIN。
20. on和where的区别:http://www.cnblogs.com/guanshan/articles/guan062.html
21. LIMIT m,n表示从m+1条数据开始取n条数据;LIMIT n表示从第0条开始取n条数据
22. UNION操作符用于合并两个或多个SELECT语句的结果集。SQL 的 DML (数据操作语言): select , insert into , delete , update
1 ) 运算符包括( = , <>,>,>,<=,>=,like,between,% )
2 ) 值为文本时,用‘’;数值时不需要
删除所有行(但表还存在):
delete * from 表名 或 delete from 表名
MYSQL:SELECT column_name(s) FROM table_name LIMIT number;
Oracle: SELECT column_name(s) FROM tabel_name WHERE ROWNUMBER <= number;
通配符,必须与 LIKE 一起使用。
%: 替代一个或多个字符。匹配 pattern 中缺少的字符: a%( 以 a 开始 ),%g (以 g 结束) ,%lon% (包含 lon )
- :只能代替一个字符
[Charlist]: 字符列中的任何单一字符。如: SELECT * FROM PERSON WHERE City LIKE '[ANL]%'; 查询城市名称以 A , N , L 开头的所有记录
[^Charlist ] 或 [!Charlist] :不在字符列中的任何单一字符。如: SELECT * FROM PERSON WHERE City LIKE '%[^A]'; 查询城市名称不以 A 结尾的所有记录
SELECT column_name(s) AS alias_columnname FROM table_name;
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
INNER JOIN Orders
ON Persons.Id_P = Orders.Id_P
ORDER BY Persons.LastName
FROM table_name1
LEFT JOIN table_name2
ON table_name1.column_name=table_name2.column_name
FROM table_name1
RIGHT JOIN table_name2
ON table_name1.column_name=table_name2.column_name
2. SQL的DDL(数据定义语言):create database,alter database,create table,alter table,drop table,create index,drop index
3. select 列名,列名 from 表名;select * from 表名
4. select distinct 列名 from 表名
distinct用于返回唯一不同的值,去掉结果集中的重复值,也可在count(distinct 列名)
5. where自居用于规定选择的标准。
select 列名 from 表名 where 列名 运算符 值;
1) 运算符包括(=,<>,>,>,<=,>=,like,between,%)
2) 值为文本时,用‘’;数值时不需要
6. AND 和 OR用于两个或两个以上的条件对记录进行过滤。同时使用时,用括号将条件括起来
select 列名 from (表达式1 or 表达式2) and 表达式3
7. ORDER BY对结果集进行排序。默认为升序,降序为DESC,升序ASC
select 列名 from 表名 order by 列名
8. INSERT INTO向表中插入新的行:insert into 表名 values(值1,值2…)
指定索要插入数据的列:insert into 表名(列1,列2…) values(值1,值2…)
9. UPDATE用于修改表中的数据
update 表名 set 列名= 新值,列名1=新值 where 列名=值;
10. DELETE语句用于删除表中的某一行
delete from 表名 where 列名 = 值;
删除所有行(但表还存在):
delete * from 表名 或delete from 表名
11. SELECT TOP用于规定要返回的记录的数目。
SQL Server/MS Access:SELECT TOP number|PERCENT column_name(s) FROM table_name
MYSQL:SELECT column_name(s) FROM table_name LIMIT number;
Oracle: SELECT column_name(s) FROM tabel_name WHERE ROWNUMBER <= number;
12. LIKE用于在WHERE子句中搜索列中的指定模式。
SELECT column_name(s) FROM table_name WHERE column_name (NOT) LIKE pattern
通配符,必须与LIKE一起使用。
%:替代一个或多个字符。匹配pattern中缺少的字符:a%(以a开始),%g(以g结束),%lon%(包含lon)
-:只能代替一个字符
[Charlist]:字符列中的任何单一字符。如:SELECT * FROM PERSON WHERE City LIKE '[ANL]%';查询城市名称以A,N,L开头的所有记录
[^Charlist ]或[!Charlist]:不在字符列中的任何单一字符。如:SELECT * FROM PERSON WHERE City LIKE '%[^A]';查询城市名称不以A结尾的所有记录
13. IN操作符我们可以在WHERE语句中可以规定多个值。
SELECT column_name(s) FROM table_name WHERE column_name IN (Value1,Value2,…)
14. BETWEEN..AND.. 选取介于两个值之间的数据范围。值可以为文本,数值,日期。数据库对该操作符包含的值不同。
SELECT * FROM table_name WHERE column_name (NOT)BETWEEN value1 AND value2
15. AS为列名称和表名称指定别名。
SELECT column_name(s) FROM table_name AS alias_name;
SELECT column_name(s) AS alias_columnname FROM table_name;
16. JION==INNER JION用于根据两个或多个表中的列之间的关系,从这些表中查询数据。
在表中存在至少一个匹配时,INNER JOIN 关键字返回行。
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
INNER JOIN Orders
ON Persons.Id_P = Orders.Id_P
ORDER BY Persons.LastName
17. LEFT JOIN关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行。
SELECT column_name(s)
FROM table_name1
LEFT JOIN table_name2
ON table_name1.column_name=table_name2.column_name
18. RIGHT JOIN 关键字会右表 (table_name2) 那里返回所有的行,即使在左表 (table_name1) 中没有匹配的行。
SELECT column_name(s)
FROM table_name1
RIGHT JOIN table_name2
ON table_name1.column_name=table_name2.column_name
19. FULL JOIN关键字只要其中某个表存在匹配,FULL JOIN 关键字就会返回行。
在某些数据库中, FULL JOIN 称为 FULL OUTER JOIN。
20. on和where的区别:http://www.cnblogs.com/guanshan/articles/guan062.html
21. LIMIT m,n表示从m+1条数据开始取n条数据;LIMIT n表示从第0条开始取n条数据
22. UNION操作符用于合并两个或多个SELECT语句的结果集。SQL 的 DML (数据操作语言): select , insert into , delete , update
- SQL的DDL(数据定义语言):create database,alter database,create table,alter table,drop table,create index,drop index
- select 列名,列名 from 表名;select * from 表名
- select distinct 列名 from 表名
- where子句用于规定选择的标准。
1 ) 运算符包括( = , <>,>,>,<=,>=,like,between,% )
2 ) 值为文本时,用‘’;数值时不需要
- AND 和 OR用于两个或两个以上的条件对记录进行过滤。同时使用时,用括号将条件括起来
- ORDER BY对结果集进行排序。默认为升序,降序为DESC,升序ASC
- INSERT INTO向表中插入新的行:insert into 表名 values(值1,值2…)
- UPDATE用于修改表中的数据
- DELETE语句用于删除表中的某一行
删除所有行(但表还存在):
delete * from 表名 或 delete from 表名
- SELECT TOP用于规定要返回的记录的数目。
MYSQL:SELECT column_name(s) FROM table_name LIMIT number;
Oracle: SELECT column_name(s) FROM tabel_name WHERE ROWNUMBER <= number;
- LIKE用于在WHERE子句中搜索列中的指定模式。
通配符,必须与 LIKE 一起使用。
%: 替代一个或多个字符。匹配 pattern 中缺少的字符: a%( 以 a 开始 ),%g (以 g 结束) ,%lon% (包含 lon )
- :只能代替一个字符
[Charlist]: 字符列中的任何单一字符。如: SELECT * FROM PERSON WHERE City LIKE '[ANL]%'; 查询城市名称以 A , N , L 开头的所有记录
[^Charlist ] 或 [!Charlist] :不在字符列中的任何单一字符。如: SELECT * FROM PERSON WHERE City LIKE '%[^A]'; 查询城市名称不以 A 结尾的所有记录
- IN操作符我们可以在WHERE语句中可以规定多个值。
- BETWEEN..AND.. 选取介于两个值之间的数据范围。值可以为文本,数值,日期。数据库对该操作符包含的值不同。
- AS为列名称和表名称指定别名。
SELECT column_name(s) AS alias_columnname FROM table_name;
- JION==INNER JION用于根据两个或多个表中的列之间的关系,从这些表中查询数据。
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
INNER JOIN Orders
ON Persons.Id_P = Orders.Id_P
ORDER BY Persons.LastName
- LEFT JOIN关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行。
FROM table_name1
LEFT JOIN table_name2
ON table_name1.column_name=table_name2.column_name
- RIGHT JOIN 关键字会右表 (table_name2) 那里返回所有的行,即使在左表 (table_name1) 中没有匹配的行。
FROM table_name1
RIGHT JOIN table_name2
ON table_name1.column_name=table_name2.column_name
- FULL JOIN关键字只要其中某个表存在匹配,FULL JOIN 关键字就会返回行。
- on和where的区别:http://www.cnblogs.com/guanshan/articles/guan062.html
- LIMIT m,n表示从m+1条数据开始取n条数据;LIMIT n表示从第0条开始取n条数据
- UNION操作符用于合并两个或多个SELECT语句的结果集。