数据库查询语句研究

重点研究查询数据,其他语句只做了解!!!
"""
一些最重要的 SQL 命令:
    select - 从数据库中提取数据
    update - 更新数据
    delete - 删除数据
    insert - 插入数据
    create database - 创建新数据库
    alter database - 修改数据库
    create table - 创建表
    alter table - 变更数据库表
    drop table - 删除表
    create index - 创建索引(搜索键)
    drop index - 删除索引
"""

第一:select语句
#select - 从数据库中提取数据,结果被存储在一个结果表中,称为结果集
#column_name(s):数据库表中所有列的名称
#column_name:列名称
#group by:分组
#table_name:表名
select key from 表名
select key,where from 表名
select * from 表名
select key from 表名 where 条件1 and|or 条件2

#列名位于两者之间的数据
select 列名(s) from 表名 where 列名 between value1 and value2
#合计函数 (比如 SUM) 常常需要添加 GROUP BY 语句
select 列名1, SUM(列名2) from 表名 group by 列名1

select 列名(s) from 表名 where 列名 IN(value1, value2,..)

第二:select distinct语句
#distinct关键词用于返回唯一不同的值,起到去重的作用
SELECT DISTINCT column_name,column_name FROM table_name

第三:where
1)含义:子句用于过滤记录
#column_name operator value 表达式还包含:like,以及各种运算符号,<,>=等等
where 子句用于提取那些满足指定标准的记录。
table_name:表名
column_name:列名
column_name operator value:列名的表达式
select column_name,column_name from table_name where column_name operator value
示例:
SELECT * FROM Customers WHERE Country=‘Mexico‘
SELECT * FROM Customers WHERE CustomerID=1

第四:and & or 运算符用于基于一个以上的条件对记录进行过滤。
1)and,需要2个条件同时满足方可输出结果
2)or,只需要2个条件满足1个即可
3)示例:
    SELECT * FROM 表名 WHERE 列名1=‘Germany‘ and 列名2=‘Berlin‘
    SELECT * FROM 表名 WHERE 列名1=‘Berlin‘ OR 列名2=‘München‘
    SELECT * FROM 表名 WHERE 列名1=‘Germany‘ and (列名2=‘Berlin‘ or 列名2=‘München‘),含义为:从表中查找列名1=‘Germany‘的数据且(列名2=‘Berlin‘ or 列名2=‘München‘满足其一的数据)

第五:order by
1)含义:关键字用于对结果集按照一个列或者多个列进行排序
1)默认按照升序对记录进行排序。如果需要按照降序对记录进行排序,您可以使用 desc 关键字
2)语法:SELECT 列名1,列名2 FROM 表名 ORDER BY 列名1,列名2 ASC|DESC
3)示例
    SELECT * FROM 表名 ORDER BY Country               #默认升序
    SELECT * FROM 表名 ORDER BY Country ESC            #降序
    SELECT * FROM 表名 ORDER BY Country , CustomerName        #按照2个列名的判断条件来排序

第六:规定要返回的记录的数目(不同服务器类型语句会有一定区别)
1)SELECT TOP number|percent column_name(s) FROM table_name
2)SELECT column_name(s) FROM table_name limit number
    number:要返回的数据条数
3)示例:
    SELECT * FROM Persons limit  5
    SELECT TOP 2 * FROM Customers    选取头2条记录
    SELECT TOP 50 percent * FROM Customers   从表Customers中选取前50%的记录

第七:like
1)含义:操作符用于在 where 子句中搜索列中的指定模式
1)语法:SELECT column_name(s) FROM table_name WHERE column_name LIKE pattern
2)示例:
    SELECT * FROM 表名 WHERE City like ‘s%‘           选取 City 以字母 "s" 开始的所有客户,
    SELECT * FROM 表名 WHERE City like ‘%s‘              选取 City 以字母 "s" 结尾的所有客户
    SELECT * FROM 表名 WHERE City like ‘%Enshi%‘        选取 City 包含模式 "Enshi" 的所有客户
    SELECT * FROM 表名 WHERE City not like ‘%Enshi%‘    选取 City 不包含模式 "Enshi" 的所有客户
3)%:定义通配符

第八:通配符研究
1)%                     替代 0 个或多个字符
2)_                     下划线替代一个字符
3)[charlist]                 字符列中的任何单一字符
4)[^charlist] or [!charlist]         不在字符列中的任何单一字符
5)示例:
    SELECT * from Customers WHERE City LIKE ‘ber%‘
    SELECT * from Customers WHERE City LIKE ‘%es%‘
    SELECT * from Customers WHERE City LIKE ‘_erlin‘      选取City以一个任意字符开始,然后是 "erlin" 的所有客户
    SELECT * FROM Customers WHERE City LIKE ‘L_n_on‘
    SELECT * FROM Customers WHERE City LIKE ‘[bsp]%‘    选取 City 以 "b"、"s" 或 "p" 开始的所有客户
    SELECT * FROM Customers WHERE City LIKE ‘[a-c]%‘    选取 City 以 "a"、"b" 或 "c" 开始的所有客户
    SELECT * FROM Customers WHERE City LIKE ‘[!bsp]%‘    选取 City 不以 "b"、"s" 或 "p" 开始的所有客户

第九:IN 操作符
1)允许您在 where 子句中规定多个值
2)语法:select column_name(s) from table_name where column_name IN (value1,value2,...)
3)示例:
    SELECT * FROM Customers WHERE City IN (‘Paris‘,‘London‘)    选取 City 为 "Paris" 或 "London" 的所有客户
    从表中查找city的数据,这个city有限定在paris火london之类

第十:between
1)含义:between 操作符用于选取介于两个值之间的数据范围内的值,这些值可以是数值、文本或者日期
2)语法:select column_name(s) from table_name where column_name between value1 and value2
3)示例:
    SELECT * FROM 表名 WHERE Price between 10 AND 20    选取价格介于 10 和 20 之间的所有产品
    SELECT * FROM 表名 WHERE Price NOT between 10 AND 20    不在范围内的产品,用 NOT between
    SELECT * FROM 表名 WHERE (Price BETWEEN 10 AND 20) AND NOT CategoryID IN (1,2,3)  选取价格介于 10 和 20 之间但 CategoryID 不为 1、2 或 3 的所有产品
    SELECT * FROM 表名 WHERE ProductName NOT BETWEEN ‘C‘ AND ‘M‘   选取 ProductName 不以介于 ‘C‘ 和 ‘M‘ 之间字母开始的所有产品
    SELECT * FROM 表名 WHERE OrderDate BETWEEN #07/04/1996# AND #07/09/1996#   选取 OrderDate 介于 ‘04-July-1996‘ 和 ‘09-July-1996‘ 之间的所有订单
4)注意事项:是否包含临界值本身,需要根据情况测试

第十一:别名
1)含义:使用 SQL,可以为表名称或列名称指定别名(Alias),基本上,创建别名是为了让列名称的可读性更强
2)用途:
    在查询中涉及超过一个表
    在查询中使用了函数
    列名称很长或者可读性差
    需要把两个列或者多个列结合在一起
3)语法:
    SELECT column_name AS alias_name FROM table_name    列名创建别名
    SELECT column_name(s) FROM table_name AS alias_name    表名创建别名
4)示例:
    SELECT CustomerName AS Customer, ContactName AS [Contact Person] FROM Customers;
    #CustomerName 列的别名,ContactName 列的别名。提示:如果列名称包含空格,要求使用双引号或方括号
    SELECT CustomerName, Address+‘, ‘+City+‘, ‘+PostalCode+‘, ‘+Country AS Address FROM Customers
    #把四个列(Address、City、PostalCode 和 Country)结合在一起,并创建一个名为 "Address" 的别名:

时间: 2024-09-28 12:09:58

数据库查询语句研究的相关文章

数据库查询语句关键字总结

看过牛腩视频后,前17集讲后台代码的编写,尤其讲到查询语句的时候,顿时感觉原来学习过的查询语句中用到的关键字烟消云散了,啥都不记得了,通过看视频,帮着回忆了一部分,在这里总结一下,查询语句中用到的关键字的含义及使用. 一.select语句(单个表) 1.最简单的查询: select * from [where ] select column1,column2....from [where] 这里需要注意的是where子句中条件过滤使用到的关键字,比如用到逻辑运算符like 中的'%'(匹配一个或

NumberFormatException: Invalid int类型不匹配异常——使用SQL数据库查询语句select * from blacknumber order by _id desc limit ?,20;出现

异常:类型不匹配 05-06 08:12:38.151: E/AndroidRuntime(14904): java.lang.NumberFormatException: Invalid int: "18600000099" 05-06 08:12:38.151: E/AndroidRuntime(14904): at com.itheima.mobilesafe74.activity.BlackNumberActivity$Myadapter.getView(BlackNumber

数据库---查询语句(三):高级查询

高级查询 一.多表连接(连接的是两个表中的列) 1.select * from Info,Nation where Info.Nation=Nation.Code select  Info.Code,Info.Name,Nation.Name  from Info ,Nation where Info.Nation=Nation.Code    //where 后面是一个外键关系 select * from Info      出现的现象,形成的表叫做笛卡尔积 2. join 连接 select

shop++ CriteriaQuery 数据库查询语句

hibernate 的criteria 查询语句是一种更加面向对象的方式查询. CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder(); //创建一个entityManager创建一个CriteriaBuilder 实列CriteriaQuery<T> criteriaQuery = criteriaBuilder.createQuery(entityClass);//criteriaBuilder创建一个cre

10-31C#基础--数据库查询语句之聚合函数、分组

在查询语句时,也存在一些方法和属性,而这些方法在查询时统称为函数,便利查询时使用 聚合函数(都是针对字段操作) 聚合是缩减一系列输入值的表达式,例如缩减为单个值. Select*from biao 1.--求平均分AVG:只能对数字类型的操作,返回一个值(返回非null值的平均值) Select AVG(age)from biao--执行后没有列名 Select AVG(age) as nianing from biao---执行后有列名,加as. --放在select...from之间的一定是

连接Access数据库查询语句

--在使用之前注意将“生成”里的“配置管理器”的“配置平台”改成X86 private void button1_Click(object sender, EventArgs e)//查询 { OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\Score.mdb;Jet OLEDB:Database Password=");//连接Access2003

数据库查询语句

插入数据 INSERT 语法结构 INSERT [INTO] <表名>  [列名] VALUES <值列表> 参数解释 [INTO]和[列名]是可选的 <表名>是必需的 如果省略[列名],<值列表>与表中字段的顺序保持一致 多个列名和多个值列表用逗号分隔 向student表中插入一行数据 insert into student (姓名,身份证号,所在班级,成绩) values('王兰', '126125199008222446', 2,90) 更新数据 UP

Oracle数据库查询语句

编写以下查询的SQL语句,以scott用户的emp表和dept表作为查询数据: 1.列出至少有一个员工的所有部门. SQL语句: select * from SCOTT.DEPT where deptno in (select distinct deptno from SCOTT.DEPT); 查询结果: 2.列出所有员工的姓名及其直接上级的姓名. SQL语句: select e.ename 员工姓名,m.ename 上级姓名 from scott.emp e,scott.emp m where

MySQL数据库 : 查询语句,连接查询及外键约束

查询指定字段        select 字段1,字段2 from 表名; 消除重复行(重复指的是结果集中的所有完全重复行)             select distinct 字段1,字段2... from 表名 比较运算符(< > != = )            select * from 表名 where id>4 逻辑运算符(and or not in)            select * from 表名 where id>4(条件1) and gender=1