Sql学习(1)

一.数据库操作语言(DML)
SELECT——从数据库中查询数据
UPDATE——更新数据库表中的数据
DELETE——从数据库表中删除数据
INSERT INTO——向表中插入数据

1.SELECT语句
SELECT将数据从表中选取出来,然后存放在结果集中。
用法:

SELECT 列名称  FROM  表名   (查询具体列的数据)
SELRCT * FROM 表名          (查询表中全部数据)

2.SELECT DISTINCT语句
当表中有重复的值,且你想要取出不同的值,则可以使用DISTINCT来返回唯一不同的值
用法

SELECT DISTINCT 列名称 FROM 表名

如下表Orders
在这里插入图片描述
使用正常语句查询

select Company from Orders

在这里插入图片描述
使用distinct查询

select distinct Company from Orders

在这里插入图片描述
3.WHERE 子句
当需要有条件的从表中获取数据时,将WHERE 子句添加到SQL语句中
用法

SELECT 列名称 FROM 表名称 WHERE 列 运算符 值

4.AND 与 OR运算符
运于基于一个以上的条件对记录进行过滤
如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。
如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。
5.ORDER BY 子句
ORDER BY 语句用于对结果集进行排序。
ORDER BY 语句用于根据指定的列对结果集进行排序。
ORDER BY 语句默认按照升序对记录进行排序。
如果希望按照降序对记录进行排序,可以使用 DESC 关键字。
6.INSERT INTO
向表中插入数据(新的行)
用法

INSERT INTO 表名 VALUES (1,值2,值3.....)
INSERT INTO 表名(列1,列2.....) VLAUES (1,值2,值3.....) (指	定要插入数据的列)

7.UPDATE
修改表中的数据
用法

UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值

8.DELETE
删除表中的数据(行)
用法

DELETE FROM 表名称 WHERE 列名称 = 值
DELETE FROM 表名  或 DELETE * FROM 表名(删除所有行,表的结构、属性和索引是完整的)

9.TOP 子句
用于规定要返回的记录的数目(并非所有的数据库系统都支持TOP子句)
用法

SELECT TOP NUMBER|PERCENT COLUMN_NAME(S) FROM 表名(SQL Server)
SELECT COLUMN_NAME(S) FROM 表名 LIMIT NUMBER  (MYSQL)
SELECT COLUMN_NAME(S) FROM 表名 WHERE ROWNUM <= NUMBER  (Oracle)

10.LIKE
用于WHERE子句中搜索列中的指定模式
用法

SELECT 列名 FROM 表名 WHERE 列名 LIKE PATTERN
SELECT 列名 FROM 表名 WHERE 列名 NOT LIKE PATTERN(不包含PATTERN的数据)

11.通配符
搜索数据库中的数据时,通配符可以代替一个或多个字符

%替代一个或者多个字符
_仅代替一个字符
[charlist]字符列中的任何单一字符
[^charlist] 或者 [!charlist]不在字符列中的任何单一字符

12.IN操作符
允许在WHERE子句中规定多个值
用法

SELECT * FROM 表名 WHERE 列名 IN (VALUE1,VALUE2....)

13.BETWEEN
在WHERE子句中使用,作用是选择介于两个值之间的数据范围
用法

SELECT * FROM 表名 WHERE 列名 BETWEEN 值1 AND 值2
SELECT * FROM 表名 WHERE 列名 NOT BETWEEN 值1 AND 值2 (范围之外)

14.Alias(别名)
可以为列名称和表名称指定别名(Alias)
用法

SELECT * FROM 表名 AS 别名(表的别名)
SELECT 列名 AS 别名 FROM 表名 (列的别名)

15.JOIN
用于根据两个或者过个表中的列之间的关系,从这些表中查询数据。
Join和key:特殊情况下,为了得到完整的结果,需要从两个或者更多的表中获取数据,这是就需要执 行join
(1)内连接:内连接是只显示满足条件的!

SELECT a.*, b.* FROM Table_A a JOIN Table_B b ON a.ID = b.ID
SELECT a.*, b.* FROM Table_A a INNER JOIN Table_B b ON a.ID = b.ID

(2)左连接:返回左表中的所有行,如果左表中行在右表中没有匹配行,则结果中右 表中的列返回空值。

SELECT a.*, b.* FROM Table_A a LEFT JOIN Table_B b ON a.ID = b.ID
SELECT a.*, b.* FROM Table_A a LEFT OUTER JOIN Table_B b ON a.ID = b.ID

(3)右连接:返回右表中的所有行,如果右表中行在左表中没有匹配行,则结果中左 表中的列返回空值。

SELECT a.*, b.* FROM Table_A a RIGHT JOIN Table_B b ON a.ID = b.ID
SELECT a.*, b.* FROM Table_A a RIGHT OUTER JOIN Table_B b ON a.ID = b.ID

(4)全连接:返回左表和右表中的所有行。当某行在另一表中没有匹配行,则另一表 中的列返回空值

SELECT a.*, b.* FROM Table_A a FULL JOIN Table_B b ON a.ID = b.ID
SELECT a.*, b.* FROM Table_A a FULL OUTER JOIN Table_B b ON a.ID = b.ID

(5)交叉连接:不带WHERE条件子句,它将会返回被连接的两个表的笛卡尔积,返回结果的行数等 于两个表行数的乘积
没有 WHERE 子句的交叉联接将产生所涉及的表的笛卡尔积。

SELECT a.*, b.* FROM Table_A a CROSS JOIN Table_B b 

如果添加了 WHERE 子句,则交叉联接的行为将与内部联接行为相似

SELECT a.*, b.* FROM Table_A a CROSS JOIN Table_B b WHERE  a.ID = b.ID

16.UNION和UNION ALL 操作符
UNION 用于合并两个或者多个SELECT语句的结果集
注意:UNION 内部的SELECT语句必须拥有相同的数据量,列也必须拥有相似 的数据类型。同时每 条SELECT语句中的列的顺序必须相同。
用法:

SELECT 列名(s) FROM 表名1 UNION SELECT 列名(s) FROM 表名2 

17.SELECT INTO
用于创建表的备份文件或者对记录进行存档。
从一个表中读取数据然后把数据插入到另一个表中。
用法

SELECT * INTO 新表名 [IN externaldatabase] FROM 原始表名(IN 子句可用于向另一个数据库中拷贝表)

带有WHERE 的子句

SELECT * INTO 新表名 FROM 原始表名 WHERE 列 =

被连接的表

SELECT 列名(s)INTO 新表名 FROM 表1 INNER JOIN 表2 ON 表1.=2.
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值