美文网首页
sql语法学习

sql语法学习

作者: 歌奥MeiZi | 来源:发表于2017-10-31 16:53 被阅读0次

在工作之初,知道数据库是保存数据的地方,但是要去查询数据,只能通过表提供的筛选功能进行查询,想要一次查询、筛选多组数据内容,不知道怎么办,看到开发大佬们,运行几句语句,就能轻松的查到需要的数据,当场羡慕.jpg,所以也决定要学习好sql查询语句,能在测试造数,核实数据的时候,自己编写查询语句,给开发描述bug的时候,也不需要一大堆的中文堆砌,因为我发现,扔一串查询语句,远远比一堆中文清晰明了。

数据库表

一个数据库有一张或者多个表,每个表都有一个名字标识,每张表的数据都有一个唯一的标识。
学习的链接传送门:http://www.w3school.com.cn/sql/

快速了解数据表的关系

1.找开发问,自己拿小本本记着
2.自己查资料:开发表设计资料,数据库的资料以及产品需求
当然了,方法一应该是一个最笨的方法,但是估计最简单直接,所以我一开始是适用的方法一,但是随着自己的成长(这个说法有点假),了解了产品需求的同时,了解了数据库表的设计资料,再查看一下DDL(数据定义语言),不明白的地方再找开发大佬指导,提升了自身的本领不是?

查看DDL的方法:

找到对应的表,右键--查看对象信息即可,能查到对应表的每个字段表示什么意思

查询语句

1.select 从表中选取数据

select 列名称 from 表名称
select *from 表名称

*:选取所有列

2.select distinct 选择的数据去掉重复值

SELECT DISTINCT   列名称  from  表名称;

3.where语句:有条件的筛选数据

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

运算符:=,<>(不等于),>,<,>=,<=,between,like
like:一般跟着正则表达式做一些模糊查询,比如注册邮箱有@163,@126等,只需要查询@163的用户,就用到模糊查询

SELECT * FROM 表名称 WHERE mail LIKE '%@163.com'; 

4.and & or 语句:基于一个条件的记录进行过滤

SELECT * FROM 表名称 WHERE 列名称=1 AND 列名称=2;
SELECT * FROM 表名称 WHERE 列名称=1 OR 列名称=2;
SELECT * FROM 表名称 WHERE (列名称=1 OR 列名称=2) AND 列名称2=1 【结合使用】

5.order by 排序

order by 列名称:顺序排序
order by 列名称 desc : 倒序排列

insert into 语句

向表中插入新的行

INSERT INTO 表名称 VALUES (值1, 值2,....)
INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)

update 语句

更新表中的数据

UPDATE 表名称 SET 列名称 = new WHERE 列名称 = old:更新某一列数据
UPDATE 表名称 SET Address = 'Zhongshan 23', City = 'Nanjing' WHERE LastName = 'Wilson':更新一行中若干列

delete 语句

删除表的行

DELETE  FROM 表名称 WHERE 列名称= 1 :删除“列名称=1”的行
DELETE  FROM 表名称/DELETE * FROM 表名称:删除所有行

top 指令

规定返回的记录的数目,比如查询出来的数据有几千条数据,此时top可以规定只返回10条

SELECT TOP 10 * FROM 表名称  WHERE mail LIKE '%@163.com';
SELECT TOP 50 percent  * FROM 表名称  WHERE mail LIKE '%@163.com'; 返回50%的数据

like 操作符

SELECT * FROM 表名称 WHERE City LIKE 'N%':筛选city以 【N开头】的行
SELECT * FROM 表名称 WHERE City LIKE '%g':筛选city以 【g结尾】的行
SELECT * FROM 表名称 WHERE City LIKE '%lon%':筛选city【包含lon】的行
SELECT * FROM 表名称 WHERE City not  LIKE '%lon%':筛选city【不包含lon】的行

通配符:

WHERE City LIKE 'Ne%:筛选city【以Ne开头】的行
WHERE City LIKE '%lond%':筛选city【包含lond】的行
WHERE FirstName LIKE '_eorge':筛选名字【名字的第一个字符之后是 "eorge" 】的行
WHERE LastName LIKE 'C_r_er':筛选名字【以 "C" 开头,然后是一个任意字符,然后是 "r",然后是任意字符,然后是 "er": 】的行
WHERE City LIKE '[ALN]%':选取居住的城市以 "A" 或 "L" 或 "N" 开头的人
WHERE City LIKE '[!ALN]%':选取居住的城市不以 "A" 或 "L" 或 "N" 开头的人

_:只能匹配一个字符; [charlist]:匹配字符

in 操作符

在where中规定多个值

SELECT * FROM  表名称 WHERE allmeter in(1000,2000);

between 操作符

在where中筛选,介于两个值之间的数据

SELECT *from 表 WHERE id BETWEEN 11 AND 15; 筛选id在[11,15]之间的数据。
可以为文本,日期等,是否包含11,15 取决于各个数据库的差异
SELECT *from 表 WHERE id  not BETWEEN 11 AND 15; 筛选id不在[11,15]之间的数据

AS 操作符

1.指定别名,连表查询的时候使得我们的语句更容易阅读

SELECT p.title,q.uid,q.prize FROM activity AS p,user AS q WHERE p.id=11;

筛选id=11的用户的uid,prize以及activity的title
2.给一个列指定别名

SELECT id as abc,create as qwe FROM activity;

从表activity中筛选id,create,并分别命名为abc,qwe

join操作符

根据两个或者多个表之间的关系,从这些表中查询数据,这个在多张表查询的时候,特别实用

数据库中表通过键将彼此联系起来,主键是一个列,在这个列中,每一行的值都是唯一的,在表中,每个主键都是唯一的。目的是,在不重复表的所有数据的情况,把表的数据,交叉捆绑在一起

筛选id=11的用户的uid,prize以及activity的title
方法一:连表查询

SELECT p.title,q.uid,q.prize FROM activity AS p,user AS q WHERE p.id=11;

方法二:join查询

SELECT *FROM activity as o JOIN user as b
ON o.id = b.id
WHERE o.challenge_id=28

left join ,right join ,full join

union 、union all 操作符

用于合并两个或者多个select语句的结果,注意是select语句必须拥有相同数量的列,列的数据类型也要相似,且顺序也要必须相同

SELECT E_Name FROM Employees_China
UNION
SELECT E_Name FROM Employees_USA

列出中国+美国的人员,此时会去重处理,如果要全部显示,用union all

select into语句

创建表的备份复件,从表中选取数据,然后把数据插入到另一个表中,用于创建表的备份或者对记录进行存档。(这个暂时不敢尝试)

select *into person_backup from person

备份person表,备份表为person_backup

SELECT   *INTO Persons IN 'Backup.mdb'   FROM Persons

in:向另一张表Backup.mdb拷贝表

SELECT LastName,FirstName INTO Persons_backup FROM Persons

拷贝某些域

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

从 "Persons" 表中提取居住在 "Beijing" 的人的信息,创建了一个带有两个列的名为 "Persons_backup" 的表

group by

用于结合合计函数,根据一个或多个列对结果集进行分组。

SELECT uid,SUM(pay_amount) FROM user_info GROUP BY uid ORDER BY pay_amount DESC;

筛选每个用户支付总金额,并按照总金额进行倒序排列

相关文章

  • 数据库学习线路图

    SQL 语法教程 SQL 教程SQL 简介SQL 语法SQL Select选择SQL SELECT DISTINC...

  • SQL 语法大全

    SQL 语法大全 标签(空格分隔): SQL DB2 SQL语法大全 SQL SELECT SQL SELECT ...

  • sql4

    Trips and Users 此题有困难,需要学习相关sql语法

  • SQL表(增、删、改、查)基础:)

    学习SQL的第一天(7月17日) 跟着W3school学习SQL语法.... 整理笔记 SQL(结构化查询语言)由...

  • sql语句执行顺序

    Oracle sql语句执行顺序 sql语法的分析是从右到左一、sql语句的执行步骤:1)语法分析,分析语句的语法...

  • Presto查询执行过程

    Presto中SQL运行过程 Coordinator接到SQL后,通过SQL语法解析器把SQL语法解析变成一个抽象...

  • sql

    sql经典语句经典SQL语句大全(绝对的经典) - 浪迹天涯芳草 - 博客园 sql语法SQL语句查询语句完整语法...

  • SQL基本查询

    1.SQL SELECT: 语法: 2.SQL SELECT DISTINCT: 语法: 3.WHERE 子句: ...

  • SQL基础语句

    SQL SELECT 语法SELECT 列名称 FROM 表名称 语法SELECT * FROM 表名称 SQL ...

  • 二、SQL笔记--MySQL基本操作

    一、SQL语法规则 SQL语法规则:SQL是一种结构化编程语言 基础SQL指令通常是以行为单位 SQL指令需要语句...

网友评论

      本文标题:sql语法学习

      本文链接:https://www.haomeiwen.com/subject/btuiextx.html