美文网首页
2018-11-12 SQL简单查询

2018-11-12 SQL简单查询

作者: ILYBYLM | 来源:发表于2018-11-12 22:28 被阅读0次

    结构化查询语言:

    结构化查询语言(Structured Query Language)简称SQL, 是操作和检索关系型数据库的标准语言,20世纪70年代由IBM公司开发,目前应用于各种关系型数据库
    1.结构化查询语言分类:
    数据查询语言(DQL:Data Query Language):语句主要包括SELECT,用于从表中检索数据
    数据操作语言(DML:Data Manipulation Language):语句主要包括INSERT,UPDATE和DELETE,用于添加,修改和删除表中的行数据
    事务处理语言(TPL:Transaction Process Language): 语句主要包括COMMIT和ROLLBACK,用于提交和回滚
    数据控制语言(DCL:Data Control Language):语句主要包括GRANT和REVOKE,用于进行授权和收回权限
    数据定义语言(DDL:Data Definition Language):语句主要包括CREATE、DROP、ALTER,用于定义、销毁、修改数据库对象

    基本语法

    SELECT语法:SELECT [DISTINCT]{*|column|expression [alias],...}
    FROM table;
    相关概念:关键字(Keyword):SQL语言保留的字符串,例如,SELECT和FROM都是关键字
    语句(statement):一条完整的SQL命令。例如:SELECT * FROM dept 是一条语句
    子句(clause):部分的SQL语句,通常是由关键字加上其它语法元素构成,例如,SELECT * 是一个子句,FROM table也是一个子句

    SQL概念和规则

    SQL语句的书写:不区分大小写,也就是说SELECT,select,Select,执行时效果是一样的
    可以单行书写,也可多行书写,建议多行书写,增强代码可读性,通常以子句为单位进行分行
    关键字不可以缩写、分开以及跨行书写,如SELECT不可写成SEL或SELE CT等形
    关键字最好使用大写,其它元素(如列名、表名等)小写
    Tab缩进的使用可以提高程序的可读性

    选择列

    1.select from 表名 2.select 字段、... from 表名 (指明字段查询更快一点)
    算术运算符:SELECT语句中使用算术运算符(+、-、
    、/),改变输出结果
    -优先级:乘除优先于加减,相同优先权的表达式按照从左至右顺序依次计算,括弧可以提高优先权,并使表达式的描述更为清晰
    空值(NULL):
    1.是指一种无效的、未赋值、未知的或不可用的值,不同于零或者空格
    2.任何包含空值的算术表达式运算后的结果都为空值(NULL)
    列别名:
    1.用来重新命名列的显示标题,如果SELECT语句中包含计算列,通常使用列别名来重新定义列标题。
    2.使用列别名的方法:方式1:列名 列别名 方式2:列名 AS 列别名
    3.以下情况两侧需要添加双引号:列别名中包含有空格、列别名中要求区分大小写、列别名中包含有特殊字符

    消除重复行

    使用关键字DISTINCT可消除重复行:
    SELECT DISTINCT 字段 FROM 表名;

    显示表的结构:

    使用DESCRIBE 命令来查看表结构:DESC[RIBE] 表名

    选择限定数据行

    使用WHERE子句可以返回限定的数据:
    SELECT [DISTINCT] {*| column | expression [alias], ...} FROM table
    [WHERE condition(s)];
    其中:WHERE子句紧跟在FROM子句之后;condition(s)表示条件表达式:通常格式为:列名 比较操作符 要比较的值
    比较操作符:=、>、>=、<、<=、<>(不等于)
    比较数值型数据:SELECT ename, job, deptno FROM emp WHERE deptno=20;
    比较字符型数据:SELECT ename, job, deptno FROM emp WHERE JOB='CLERK'; 注意单引号
    比较日期型数据:SELECT ename, deptno, hiredate FROM emp WHERE hiredate>'1992-10-31'; 注意单引号

    特殊比较运算符

    1.BETWEEN...AND...:判断要比较的值是否在某个范围内
    2.IN( 集合列表):判断要比较的值是否和集合列表中的任何一个值相等
    3.LIKE:判断要比较的值是否满足部分匹配,也叫模糊查询。其中有两个通配符:% 代表零或任意更多的字符、_ 代表一个字符
    另外使用ESCAPE标识符实现对“%”和 “”的查找:
    例:查询 JOB 以“MAN
    ”开头的雇员信息
    SELECT ename,job FROM emp WHERE job LIKE 'MAN@_%' ESCAPE '@';其中双引号里的@可以是其他的字符
    4.IS NULL:判断要比较的值是否为空值NULL
    5.逻辑运算符:当需要和多个条件表达式进行比较时,包括and、or 、not
    结果为true,false,null
    not和特殊运算符的搭配: 可以和not between...and、not like、is not null一起使用
    运算符优先级:算术运算符(+、-、、/), 比较运算符(看上面)、特殊比较运算符、逻辑非(not)、逻辑与(and)、逻辑或(or)(注意and大于or*)

    order by子句

    SELECT [DISTINCT] { * | 列名 |表达式 [别名][,...]} FROM 表名 [WHERE 条件] [ORDER BY {列名|表达式|列别名|列序号} [ASC|DESC],…];其中排序默认是升序(asc),order by 语句必须写在select语句的后面
    规则:数字升序(由小到大),日期升序(由小到大),字符升序(按字母由小到大),空值在升序中排序在最前面

    限制记录的行数:

    语法格式如下:select 字段列表 from 表名 limit [start,]length;
    语法解释 :limit可以接受1或2个整数,start(表示第一行值为0)表示第几行记录开始输出,length表示输出的记录行数

    相关文章

      网友评论

          本文标题:2018-11-12 SQL简单查询

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