设为首页 加入收藏

TOP

数据库Sql知识总结(一)
2018-03-24 09:50:32 】 浏览:535
Tags:数据库 Sql 知识 总结

Sql分为两个部分:数据操作语言dml 数据定义语言 ddl

数据操作语言就是对数据库的增删改查

Insert into 增加
Insert into 表名 values(?,)
Insert into 表名 (列名1,列名2) values (值1,值2)
Select 查询
Select 列名 from 表名
Select distinct 列名  from 表明  删除查询出来的相同的值(相同值只查询一次)
Delect 删除
Delect from 表名 where 列名称 =某值
删除所有值 delect from 表名
Update 修改
Update 表名称 set 列名称=新值,列名称=新值 where 列名称=某值

一.Where 操作

下面的运算符可在 WHERE 子句中使用:
操作符 描述

= 等于

不等于

大于

< 小于

= 大于等于

<= 小于等于

BETWEEN 在某个范围内
LIKE    搜索某种模式

比如Select * from user where uid = 1
AND 和 OR 可在 WHERE 子语句中把两个或多个条件结合起来。
如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。
如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录
Select * from user where uid=1 and username=’ss’
也可以多次使用and和or
Select * from user where (uid=1or username=’ss’) and age=18

order by 用于对结果集进行排序

1 用于对指定列排序
默认排序是升序  如果想降序用desc
可以多次用
Select * from user order by username desc ,uid
按名字排序 如果名字相同 按id 排序

Top子句

相当于限定个数
比如mysql是select * from user where username=’wang’  limit 1
只能取出一个名字是王的人

Like 模糊查询

Select * from user where username=’王%’
删选名字叫王什么的人
通配符 描述
%   替代一个或多个字符
_   仅替代一个字符
[charlist]  字符列中的任何单一字符
[^charlist]
或者
[!charlist] 不在字符列中的任何单一字符
SELECT * FROM Persons
WHERE City LIKE '[!ALN]%'
"Persons" 表中选取居住的城市不以 "A" 或 "L" 或 "N" 开头的人

五in操作符

In 操作符可以在where中定义多个值
SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1,value2,...)

六 between

操作符 BETWEEN ... AND 会选取介于两个值之间的数据范围。这些值可以是数值、文本或者日期。
SELECT column_name(s)
FROM table_name
WHERE column_name
BETWEEN value1 AND value2

七 别名

使用表名作为别名
SELECT po.OrderID, p.LastName, p.FirstName
FROM Persons AS p, Product_Orders AS po
WHERE p.LastName='Adams' AND p.FirstName='John'
别名使查询程序更易阅读和书写
使用一个列名别名
Id  LastName    FirstName   Address City
1   Adams   John    Oxford Street   London
2   Bush    George  Fifth Avenue    New York
3   Carter  Thomas  Changan Street  Beijing

SELECT LastName AS Family, FirstName AS Name
FROM Persons
查询后
Family  Name
Adams   John
Bush    George
Carter  Thomas

连接查询

有时为了得到完整的结果,我们需要从两个或更多的表中获取结果。我们就需要执行 join。
数据库中的表可通过键将彼此联系起来。主键(Primary Key)是一个列,在这个列中的每一行的值都是唯一的。在表中,每个主键的值都是唯一的。这样做的目的是在不重复每个表中的所有数据的情况下,把表间的数据交叉捆绑在一起。
JOIN: 如果表中有至少一个匹配,则返回行
LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行
RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行
FULL JOIN: 只要其中一个表中存在匹配,就返回行
"Persons" 表:
Id_P    LastName    FirstName   Address City
1   Adams   John    Oxford Street   London
2   Bush    George  Fifth Avenue    New York
3   Carter  Thomas  Changan Street  Beijing
"Orders" 表:
Id_O    OrderNo Id_P
1   77895   3
2   44678   3
3   22456   1
4   24562   1
5   34764   65

内连接

语法
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
结果集:
LastName    FirstName   OrderNo
Adams   John    22456
Adams   John    24562
Carter  Thomas  77895
Carter  Thomas  44678

左连接

LEFT JOIN 关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行
LEFT JOIN 关键字语法
SELECT column_name(s)
FROM table_name1
LEFT JOIN table_name2 
ON table_name1.column_name=table_name2.column_name
使用下面的 SELECT 语句:
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
LEFT JOIN Orders
ON Persons.Id_P=Orders.Id_P
ORDER BY Persons.LastName
结果集:
首页 上一页 1 2 3 4 下一页 尾页 1/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇linux下安装mysql提示pleaseinsta.. 下一篇SQLServer之常用的分页查询语句介..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目