SQL学习相关02

sql top子句

并非所有的数据库都支持top子句,它用于规定要返回的记录的数目
1.sql server的语法

SELECT TOP number|percent column_name(s)
FROM table_name

2.mysql语法

SELECT column_name(s)
FROM table_name
LIMIT number

column 纵队,列
3.oracle用法

SELECT column_name(s)
FROM table_name
WHERE ROWNUM <= number

eg:

SELECT TOP 2 * FROM Persons
SELECT TOP 50 PERCENT * FROM Persons

sql like 操作符

like操作符用于在where子句中搜索列中的指定模式

SELECT column_name(s)
FROM table_name
WHERE column_name LIKE pattern

示例用法

SELECT * FROM Persons
WHERE City LIKE 'N%'

“%” 可用于定义通配符(模式中缺少的字母)
比如,以n开头就是‘N%’,以g结尾就是‘%g’,包含lin就是‘%lin%’

如果此时选取的值是不包含某某关键字的就使用not关键字

SELECT * FROM Persons
WHERE City NOT LIKE '%lon%'

sql通配符

在搜索过程中,通配符是用来替代一个或多个字符的,通配符必须与like操作符搭配使用
常见的通配符是‘%’,可以代替一个或者多个字符
‘_’ 仅替代一个字符
[charlist] 字符列中的任何单一字符,可以理解为某种特征的集合
[ ^charlist ] 或[!charlist]不在字符列中的任何一单一字符

比如要从表中的某一列选出开头字母为snl的项,此时sql语句可以这样写

SELECT * FROM Persons
WHERE City LIKE '[snl]%'

相反的,如果希望选出的项不以snl开头,此时sql语句的写法是

SELECT * FROM Persons
WHERE City LIKE '[!ALN]%'

sql in操作符

操作符 in 用在where子句中,可以规定多个值

SELECT * FROM Persons
WHERE LastName IN ('Adams','Carter')

sql between操作符

操作符between也同样用在where子句中,用于表明介于两个值之间的数据范围,这些值可以是数值,文本或者日期

SELECT column_name(s)
FROM table_name
WHERE column_name
BETWEEN value1 AND value2

between字符在不同数据库中的实际定义有些不一样,有的会选出包括两个值之间的值,有的不包括这两个值,在使用时要先搞清楚定义

相反的,如果要选出除去这个范围之外的所有词,则在between前面加上 not 即可

SELECT * FROM Persons
WHERE LastName
NOT BETWEEN 'Adams' AND 'Carter'

sql Alias(别名) /AS

通过Alias,可以为列名称和表名称指定别名,别名使查询程序更容易阅读和理解

表的使用

SELECT column_name(s)
FROM table_name
AS alias_name

表中列的使用
SELECT column_name AS alias_name
FROM table_name

例子

SELECT po.OrderID, p.LastName, p.FirstName
FROM Persons AS p, Product_Orders AS po
WHERE p.LastName='Adams' AND p.FirstName='John'

如果不使用别名,此时表名就会较长,阅读难度增大

SELECT Product_Orders.OrderID, Persons.LastName, Persons.FirstName
FROM Persons, Product_Orders
WHERE Persons.LastName='Adams' AND Persons.FirstName='John'

sql join

有时需要得到更加完整的结果,需要来自多个表的信息,sql join用于根据两个表和多个表之间的关系从这些表中查询数据
数据库中的每个表都有主键(primary key),它是一个列。这个列中的所有行的值都是唯一的不能重复,可以通过一个表中包含另一个表的主键,从而将多个表捆绑在一起并且内容不重复

此处为详细讲解,有表格示例
v

  • JOIN: 如果表中有至少一个匹配,则返回行

  • LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行

  • RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行

  • FULL JOIN: 只要其中一个表中存在匹配,就返回行

sql inner join=join

当表中存在至少一个匹配项时,就返回该行

SELECT column_name(s)
FROM table_name1
INNER JOIN table_name2
ON table_name1.column_name=table_name2.column_name

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
INNER JOIN Orders
ON Persons.Id_P=Orders.Id_P
ORDER BY Persons.LastName

sql left join

left join 关键字会在即使没有匹配的行的情况下,也会返回值,会从左表返回所有的行

sql right join

right join 关键字会右表 那里返回所有的行,即使在左表 中没有匹配的行。

SELECT column_name(s)
FROM table_name1
RIGHT JOIN table_name2 
ON table_name1.column_name=table_name2.column_name

full join(存疑)

只要其中某个表存在匹配,full join关键字就会返回行
full join关键字会从左表 和右表 那里返回所有的行。如果 “Persons” 中的行在表 “Orders” 中没有匹配,或者如果 “Orders” 中的行在表 “Persons” 中没有匹配,这些行同样会列出。

sql union

union操作符用来合并两个或多个select语句的结果集合
但是值得注意的是,union内部的select语句必须具有相同数量的列,而且,列也必须具有相似的数据类型
每条select中的列顺序必须相同

     

SQL 高级教程

    SQL Top
    SQL Like
    SQL 通配符
    SQL In
    SQL Between
    SQL Aliases
    SQL Join
    SQL Inner Join
    SQL Left Join
    SQL Right Join
    SQL Full Join
    SQL Union
    SQL Select Into
    SQL Create DB
    SQL Create Table
    SQL Constraints
    SQL Not Null
    SQL Unique
    SQL Primary Key
    SQL Foreign Key
    SQL Check
    SQL Default
    SQL Create Index
    SQL Drop
    SQL Alter
    SQL Increment
    SQL View
    SQL Date
    SQL Nulls
    SQL isnull()
    SQL 数据类型
    SQL 服务器

SQL 函数

    SQL functions
    SQL avg()
    SQL count()
    SQL first()
    SQL last()
    SQL max()
    SQL min()
    SQL sum()
    SQL Group By
    SQL Having
    SQL ucase()
    SQL lcase()
    SQL mid()
    SQL len()
    SQL round()
    SQL now()
    SQL format()

SQL 总结

    SQL 快速参考
    SQL 教程总结

SQL 测验

    SQL 测验

建站手册

    网站构建
    万维网联盟 (W3C)
    浏览器信息
    网站品质
    语义网
    职业规划
    网站主机

编程

    Python 教程

关于 W3School
帮助 W3School
广告刊例
SQL UNIONUNION ALL 操作符

    SQL Full Join
    SQL Select Into

SQL UNION 操作符

UNION 操作符用于合并两个或多个 SELECT 语句的结果集。

请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。
SQL UNION 语法

SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2

默认情况下,union操作符选取不同的值,如果允许重复的值的出现,可以使用union all
UNION 结果集中的列名总是等于 UNION 中第一个 SELECT 语句中的列名

sql select into

select into 语句用于创建表的备份复件
它从一个表中选取数据,然后把数据再插入另一个表中,常用于对结果进行存档或者备份

SELECT *
INTO new_table_name [IN externaldatabase] 
FROM old_tablename

与其他语句的结合用法

SELECT LastName,Firstname
INTO Persons_backup
FROM Persons
WHERE City='Beijing'

带有where子句

SELECT Persons.LastName,Orders.OrderNo
INTO Persons_Order_Backup
FROM Persons
INNER JOIN Orders
ON Persons.Id_P=Orders.Id_P

备份了两个表的信息

sql create database/db

用于创建新的数据库

CREATE DATABASE database_name

可以通过== create table==来添加数据库表

sql create table

用于添加数据库表

CREATE TABLE 表名称
(
列名称1 数据类型,
列名称2 数据类型,
列名称3 数据类型,

)
sql中常见的数据类型(data_type)
integer(size) / int(size)
smallint(size) tinyint(size)

仅容纳整数,括号内是指规定数字的最大位数

**decimal(size,d) / numeric(size,d) **
可容纳带有小数的数字,size指数字的最大为位数,d指小数点后的位数

char(size)
容纳固定长度的字符串,可以是数字,字母,和特殊字符

varchar(size)
容纳可变长度的字符串

date(yymmdd)
容纳日期

CREATE TABLE Persons
(
Id_P int,
LastName varchar(255),
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

创建空表之后,使用insert into写入数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值