精华内容
下载资源
问答
  • sql结构化查询语句

    2018-05-25 08:08:38
    结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。 结构化查询...
  • 精通SQL-结构化查询语言详解

    热门讨论 2014-12-20 12:05:19
    全面讲解SQL语言,提供317个典型应用,读者可以随查随用,针对SQL Server和Oracle进行讲解,很有代表性.
  • SQL结构化查询语言中的like语句的研究.pdf
  • 结构化查询语言(Structured Query Language)简称SQL结构化查询语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统; sql 语句就是对数据库进行操作的一种语言。 常见语句 ...
  • 快速学习SQL语句语句结构化查询。。。。。。。。
  • SQL结构化查询语言简介,查询语句简单示例。
  • MySQL-SQL结构化查询语言

    万次阅读 多人点赞 2018-09-07 19:44:26
    结构化查询语言 1、数据定义语言(DDL) 约束条件Constraint 2、数据操纵语言(DML) 3、事物控制语言(TCL) 4、数据查询语言(DQL) (1)select/for 基本查询语句 (2)给列起别名 (3)where子句 (4)order by子句...

    目录

    结构化查询语言

    1、数据定义语言(DDL)

    约束条件Constraint

    2、数据操纵语言(DML)

    3、事物控制语言(TCL)

    4、数据查询语言(DQL)

    (1)select/for 基本查询语句

    (2)给列起别名

    (3)where子句

    (4)order by子句(排序)

    (5)distinct 去重

    (6)group by子句(分组查询)

    (7)having子句(分组查询添加条件)

    (8)基本查询总结

    (9)关联查询       

    (10)高级关联查询

    5、数据控制语言(DCL)


    结构化查询语言

    结构化查询语言(Structured Query Language),简称SQL,是数据库的标准查询语言。可以通过DBMS对数据库进行定义数据,操纵数据,查询数据,数据控制等

    SQL可以分为:

    1、数据定义语言(DDL)

           Data dafinitaon Language
           如创建表create
           删除表drop
           修改表alter
           清空表truncate,彻底清空,无法找回。

    查看所有数据库:show databases;
    查看所有表:show tables;
    modify
    删除数据库   drop database db1802;
    创建数据库   create database abc default character set utf8;
    选择数据库   use abc;                 
    创建表       create table p1(id int(3),name varchar(20));
    查看表       desc p1
    插入数据     nsert into p1 values(1,'张三');
    添加表字段语句   alter table p1 add(age int(3));
    删除表字段语句   alter table p1 drop id;
    修改表字段类型格式   alter table p1 modify age varchar(2);
    修改表字段名称   alter table p1 change age p1age int(3);
    修改表名      alter table p1 rename per;
    清空表结构   truncate table per;
    删除表结构   drop table per;

    修改命令提示符界面显示编码集:set names GBK

    约束条件Constraint

         对插入表中字段的数据起到一定的条件限制。

    1. 主键约束:primary key 要求作为主键的字段的字段值非空且唯一,一张表中只能有一个主键,但一个主键中可以有多个字段  AUTO_INCREMENT自增。
    2. 非空约束: not null  要求有非空约束的字段不可为null值
    3. 唯一性约束:unique  要求有唯一性约束的字段不可以重复,但是可以为null.
    4. 检查性约束:check(条件)--- check(gender in('f','m'))   要求在插入数据时必须符合字段的检查条件,可以为null
    5. 外键约束: foreign key   要求有外键约束的字段A必须依赖于另外一个字段B,字段B要有主键约束。字段A的值,要么是null,要么                                        必须是字段B里的值。

    序列: 作用用来给作为主键约束的字段进行有序的自增。auto_increment  默认序列是从1开始,每次自增+1;

    create table t_01
    (tid int primary key auto_increment,   --主键约束,不能重复,不能为空,自增
    tname varchar(20) not null, --非空约束
    IdCard varchar(20) unique,  --唯一性约束
    gender enum('男','女'),  --检查性约束
    mgr int,                             
    foreign key(mgr) references t_01(tid) --外键约束,被约束的字段存放的数据要么是null,要么是主键中有的
    );

    2、数据操纵语言(DML)

         insert:向表中插入数据
         delete:删除表中的数据,格式:delete from tableName [where 条件]
         update:修改表中的数据  格式:update tableName set colName1=value1[,colName2=value2] [where 条件]

         where 条件:  对表中的数据增加条件进行限制,起到过滤的作用。

                   格式:  where  colName 关系运算符 value [or|and 条件2]

                   关系运算符: >,>=,<,<=,  等于:=,不等于:!= 或 <>

         null值操作:比较null时,不能使用=或者!= 或者<>,而是使用 is或者is not,在select子句中,使用关系运算符

    练习

    --创建一个表
    create table temp_day02(
    tid int,
    tname varchar(20),
    birth date,
    address varchar(50)
    );
    --================================================================================
    
    --插入数据  1001,'jack' ,'上海' ,下面是两种插入方式,第二种可以批量插入。只需添加多个用逗号隔开即可
    insert into temp_t02 values (1001,'jack',null,'上海');
    insert into temp_t02(tid,tname,address) values(1002,'rose','beijing');
    --================================================================================
    
    --删除表temp_t02中的所有数据。
    delete from temp_t02;
    --删除表中temp_t02中的tid为1001的记录。
    delete from temp_t02 where tid=1001;
    --删除表temp_t02中 tid为1002和地址为上海的的数据
    select * from temp_t02;
    delete from temp_t02 where tid=1002 and address='上海';
    --================================================================================
    
    --修改表temp_t02中的字段address为中国。
    update temp_t02 set address='中国';
    --修改表temp_t02中的tid为1002的address为英国,人名为micheal。
    update temp_t02 set address='英国',tname='micheal' where tid=1002;
    --将生日为null的记录的tname改为'general'
    update temp_t02 set tname='general' where tbirth is null;
    --将tid为1001的tbirth改为'2000-8-8';
    update temp_t02 set tbirth = '2000-8-8' where tid = 1001;
    --将tid为1002的address改为null.
    update temp_t02 set address=null where tid=1002;

    3、事物控制语言(TCL)

    :Transation Control Language

         有时我们可能需要使用DML进行批量数据的删除,修改,增加。比如,在一个员工系统中,我们想删除一个人的信息。除了删除这个人的基本信息外,还应该删除与此人有关的其他信息,如邮箱,地址等等。那么从开始执行到结束,就会构成一个事务。对于事务,我们要保证事务的完整性。要么成功,要么撤回。

         一般情况下事务要符合四个条件(ACID):

                原子性(Atomicity):事务要么成功,要么撤回。不可切割性。

                一致性(Consistency):事务开始前和结束后,要保证数据的一致性。转账前账号A和账号B的钱的总数为10000,转账后账号A和账号B的前的总数应该还是10000;

                隔离性(Isolation):当涉及到多用户操作同一张表时,数据库会为每一个用户开启一个事务。那么当其中一个事务正在进行时,其他事务应该处于等待状态。保证事务之间不会受影响。

                持久性(Durability):当一个事务被提交后,我们要保证数据库里的数据是永久改变的。即使数据库崩溃了,我们也要保证事务的完整性。

       commit    提交
       rollback    撤回,回滚。
       savepoint    保存点

         事务:只有DML操作会触发一个事务。存储引擎(ENGINE):就是指表类型.当存储引擎为innodb时,才支持事务。有一个默认的存储引擎为Myisam。不支持事务。

         事务的验证:
                第一步:start transaction
                第二步:savepoint 保存点名称。
                第三步:DML
                第四步:commit/rollback;

     

    4、数据查询语言(DQL)

    :Data Query Language

    (1)select/for 基本查询语句

                格式: select子句  from子句     select colName[,colName.......]  from  tableName;

    (2)给列起别名

                格式:select 列名1 as "要起的名"  [, 列名2 as "要起的名" ,... ]  from tableName;

    (3)where子句

                作用:在增删改查时,起到条件限制的作用。

               多条件写法:in not in (集合元素,使用逗号分开);    注意:同一个字段有多个值的情况下使用。 in 相当于 or, not in  相当于  and

               all | any与集合连用,此时集合中的元素不能是固定的必须是从表中查询到的数据。

               范围查询colName between val1 and val2;   查询指定列名下的val1到val2范围中的数据

               模糊查询:like
                     通配符:%  表示0或0个以上字符。_  表示匹配一个字符
                     格式:    colName like  value;

    练习

    --创建表
    create table emp (
    empno int(5),
    ename VARCHAR(10),
    job VARCHAR(9),
    mgr int(4),
    hiredate DATE,
    sal int(7),
    comm int(7),
    deptno int(2)
    );
    --添加数据
    insert into emp (empno,ename,job,mgr,hiredate,sal,comm,deptno) values
    (7369,'SMITH','CLERK',7902,'1980-12-17',800,NULL,20),
    (7499  ,'ALLEN'   ,  'SALESMAN' , 7698 , '1981-2-10' ,  1600 , 300  , 30),
    (7521  ,'WARD', 'SALESMAN' , 7698,  '1981-2-22' ,  1250 , 500  , 30),
    (7566  ,'JONES','MANAGER' ,  7839,  '1981-4-2'  ,  2975 , NULL , 20),
    (7654  ,'MARTIN','SALESMAN' , 7698,  '1981-9-28',   1250 , 1400 , 30),
    (7698  ,'BLAKE','MANAGER' ,  7839 , '1981-5-1' ,   2850 , NULL , 30),
    (7782  ,'CLARK','MANAGER' ,  7839 , '1981-6-9' ,   2450 , NULL , 10),
    (7788  ,'SCOTT','ANALYST' ,  7566,  '1987-4-19',   3000 , NULL , 20),
    (7839  ,'KING','PRESIDENT' ,NULL,  '1981-11-17',  5000 , NULL , 10),
    (7844  ,'TURNER','SALESMAN' , 7698,  '1981-9-8',    1500 , 0   ,  30),
    (7876  ,'ADAMS','CLERK'  ,   7788 , '1987-5-23',   1100,  NULL , 20),
    (7900  ,'JAMES','CLERK' ,    7698 , '1981-12-3',   950 ,  NULL , 30),
    (7902  ,'FORD','ANALYST' ,  7566 , '1981-12-3' ,  3000 , NULL , 20),
    (7934  ,'MILLER','CLERK',     7782 , '1982-1-23',   1300 , NULL , 10),
    (8002  ,'IRONMAN','MANAGER',   7839 , '1981-6-9',    1600, NULL , 10),
    (8003  ,'SUPERMAN','MANAGER',   7839 , '1981-6-9',    1600 , NULL , NULL);
    1、查询
    --查询员工表emp中的 员工姓名,员工职位,员工入职日期和员工所在部门。
    select ename,job,hiredate,deptno from emp;
    --==============================================================
    
    2、给列起别名
    --查询员工姓名和员工职位。分别起别名,姓名和职位。
    select ename as "姓名" ,job as "职位" from emp;
    --==============================================================
    
    3、where子句
    --查询员工表中部门号为10和20的员工的编号,姓名,职位,工资
    select empno,ename,job,sal from emp where deptno=10 or deptno =20;
    --查询员工表中部门号不是10和20的员工的所有信息。
    select * from emp where deptno<>10 and deptno<>20;
    
    使用in ,not in修改上面的练习
    select empno,ename,job,sal from emp where deptno in(10,20);
    select * from emp where deptno not in (10,20);
    
    all|any与集合连用:
    --查询员工allen,blake,clark三个人的工资
    select * from emp where sal>all(select sal from emp where ename in ('allen','blake','clark'));
    
    范围查询:
    --查询工资大于等于1500并且小于等于2500的员工的所有信息。
    select * from emp where sal between 1500 and 2500; 
    --练习2:查询工资小于2000和工资大于2500的所有员工信息。
    select * from emp where sal not between 2000 and 2500; 
    
    模糊查询:like
    --查询员工姓名中有a和s的员工信息。
    select ename,job,sal,comm,deptno from emp where ename like '%a%' and ename like '%s%';
    select ename,job,sal,comm,deptno from emp where ename like '%a%s%' or ename like '%s%a%';
    
    

    (4)order by子句(排序)

                当在查询表中数据时,记录比较多,有可能需要进行排序,此时我们可以使用order by子句。

                语法:select...from tableName [where 子句][order by 子句]

                注意: 可以通过一个或多个字段排序。

                格式:  order by colName [ ASC DESC ][ , colName1....[ ASC DESC ] ];

                排序规则:  ASC:升序 ,DESC:降序,默认是升序排序。

    (5)distinct 去重

                有的时候我们需要对重复的记录进行去重操作,比如,查询表中有哪些职位,此时,一种职位只需要显示一条记录就够。

                位置:必须写在select关键字后。

    (6)group by子句(分组查询)

              分组查询与分组函数(聚合函数):有的时候,我们可能需要查询表中的记录总数,或者查询表中每个部门的总工资,平均工资,总人数。这种情况需要对表中的数据进行分组统计。需要group by子句。

                位置:select...from tName [where 条件] [group by子句] [order by子句]

                用法:group by Field1[,Field2]。

                注意:在分组查询时,select子句中的字段,除了聚合函数外,只能写分组字段。

                聚合函数:
                       count(Filed)  统计指定字段的记录数。
                       sum(Filed)    统计指定字段的和。
                       avg(Filed)     统计指定字段的平均值
                       max(Filed)    返回指定字段中的最大值。
                       min(Filed)     返回指定字段中的最小值。

                       PS:聚合函数会忽略null值。因此有时候需要使用函数:ifnull(field,value)  (如果field字段对应的值不是null,就使用field的值,如果是null,就使用value.)

                       注意:多字段分组时(多表联合查询时不加任何条件),最多分组的数目为Filed1*Field2[*Filed3....]

    (7)having子句(分组查询添加条件)

                在分组查询时,有的时候可能需要再次使用条件进行过滤,这个时候不能where子句,应该使用having子句。having子句后可以使用聚合函数。

                位置:位于group by子句后

    (8)基本查询总结

                一个基本的查询语句包含的子句有:select子句,from子句,where子句,group by子句,having子句,order by子句
                一个完整的查询语句:select..from..[where..][group by..][having..][order by..]

                执行顺序:先执行from子句,再执行where子句,然后group by子句,再次having子句,之后select子句,最后order by子句 

    (9)关联查询       

           概念:当在查询时,我们所需要的数据不在一张表中,可能在两张表或多张表中。此时我们需要同时操作这些表。即关联查询

           等值连接:在做多张表查询时,这些表中应该存在着有关联的两个字段。我们使用某一张表中的一条记录与另外一张表通过相关联的两个字段进行匹配,组合成一条记录。

            笛卡尔积在做多张表查询时,我们使用某一张表中的每一条记录都与另外一张表的所有记录进行组合。比如表A有x条,表B有y条,最终组合数为x*y,这个值就是笛卡尔积,通常没有意义。

           内连接:只要使用了join on。就是内连接。查询效果与等值连接一样。
               用法:表A [inner] join  表B  on 关联条件

    外连接:在做多张表查询时,我们所需要的数据,除了满足关联条件的数据外,还有不满足关联条件的数据。此时需要使用外连接。

           驱动表(主表):除了显示满足条件的数据,还需要显示不满足条件的数据的表
           从表(副表):只显示满足关联条件的数据的表

    外连接分为三种

    1. 左外连接:表A left [outer] join 表B  on 关联条件,表A是驱动表,表B是从表
    2. 右外连接:表A right [outer] join 表B  on 关联条件,表B是驱动表,表A是从表
    3. 全外连接:表A  full [outer] join 表B on 关联条件,两张表的数据不管满不满足条件,都做显示。

         

           自连接:在多张表进行关联查询时,这些表的表名是同一个。即自连接。

    (10)高级关联查询

           有的时候,我们要查询的数据, 一个简单的查询语句满足不了,并且我们使用的数据,在表中不能直观体现出来。而是需要预先经过一次查询才会有所体现。那么先执行的查询,我们称之子查询。子查询嵌入到的查询语句称之为父查询。

           子查询返回的数据特点:
                  (1) 可能是单行单列的数据。
                  (2) 可能是多行单列的数据
                  (3) 可能是单行多列的数据
                  (4) 可能是多行多列的数据

    1)子查询可以在where、from、having、select字句中,在select子句中时相当于外连接的另外一种写法。

    --查询表中各部门人员中大于部门平均工资的人
    select ename,sal,a.deptno ,b.av
    from emp a,
    (select deptno,avg(ifnull(sal,0)) as av from emp group by deptno) b
    where a.deptno=b.deptno and a.sal>b.av
    order by deptno ASC;

    5、数据控制语言(DCL)

    Data Control Language

         作用是用来创建用户,给用户授权,撤销权限,删除用户。+

         格式:
             1、创建用户:create user username@ip identified by newPwd;

             2、显示用户的权限:show grants for username@ip;
             3、授权:grant 权限1,权限2... on 数据库名.* to username@ip;
                      DML权限:insert,delete,update
                      DQL权限:select
                      DDL权限:create,alter,drop...

             4、撤销权限:revoke 权限1,权限2..on 数据库名.* from username@ip;

             5、删除用户:drop user username;

             使权限立即生效:flush privileges;

     

     

     

    展开全文
  • 【Oracle】SQL查询 基本查询语句

    万次阅读 2019-05-22 16:04:24
    SQL指的是结构化查询语言,SQL语句并不复杂: SELECT, FROM, WHERE,GROUP BY, HAVING, ORDER BY, INSERT,UPDATA,DELETE, CREATE,DROP, ALTER, GRANT, REVOKE; 严格说SQL分为3种类型: 1.DML(数据操作语言):主要...

    Oracle和SQLPlus

    每次启动只需启动两个服务即可:
    1.OracleDbllg_home1TNSListener:监听服务,如果要通过程序或是不同的客户端链接数据库此服务必须启动否则无法链接;
    2.OracleService***:数据库的实例服务,他的命名标准:OracleServiceSID,每当为系统增加一个数据库的时候都会自动的出现一个类似的服务名称。
    在默认情况下,SID的名称和数据库的名称是完全一致的,在网络上使用的是SID的名字;

    Oracle的卸载:
    **Oracle卸载后可能无法立刻安装成功;
    若正常安装成功了:
    使用卸载程序,重启电脑。按F8进入安全模式,找到对应磁盘路径并且删除,运行注册表命令“regedit.exe”,搜索Oracle有关的内容全部删除。
    所有的数据都保存在实例服务中。

    主要操作一下用户:
    超级管理员:sys/change_on_install
    普通管理员:system/manager
    普通用户:scott/tiger
    大数据用户(样本数据库才有):sh/sh
    SQLPlus命令
    Oracle提供的是一个软件平台,如果要想次平台可以使用,那么必须要输入命令,SQLplus是执行oracle命令的主要功能,Oracle安装完成后会提供sqlplus的命令,直接运行即可。
    也可cmd输入命令 eg:sqlplus scott/tiger
    命令不区分大小写,但一般固定语法大写,可变的语法小写。
    数据库中的基本组成是数据表,每一张表会包含多条数据记录

    格式化指令:
    设置每页显示的数据行数:SET PAGESIZE 30;
    设置每行的显示数据长度:SET LINESIZE 300;

    很多的Oracle运行的时候是没有图形界面的,所以一般这样的情况下想要编写程序,可启动本地的记事本程序。
    命令“ed 文件名”(如果不加后缀,默认的是*.sql),随后想要执行文件中的命令,那么使用“@文件名”(默认找到*.sql的后缀)

    在整个Oracle里提供4个用户,那么可以直接在sqlplus中使用如下的语法切换用户:
    CONN 用户名/密码,如果使用的是sys用户,那么必须写上“AS SYSDBA”,否则无法登陆。
    在scott下执行了查询emp的操作,现在sys用户下同样执行查询emp,结果报错:表或视图不存在,因为emp表属于scott用户。严格来说emp表的名称是“模式名称.表名称”(后来随着发展,模式名称几乎等同用户名)即:scott.emp。

    在sqlplus里除了可以使用Oracle直接定义的命令外,也可以用host调本机操作系统命令。
    eg:host echo;
    host copy 源文件路径 拷贝文件路径

    SQL简介

    SQL指的是结构化查询语言,SQL语句并不复杂:SELECT, FROM, WHERE,GROUP BY, HAVING, ORDER BY, INSERT,UPDATA,DELETE, CREATE,DROP, ALTER, GRANT, REVOKE;
    严格说SQL分为3种类型:
    1.DML(数据操作语言):主要指的是数据库的查询与更新操作,查询操作是整个SQL语法里最麻烦的部分,也是笔试中最常用的部分。
    2.DDL(数据定义语言):主要指的是数据对象的创建(表,用户), 例如:CREATE, DROP,A;TER,这部分的操作需要使用相关的设计范式。
    3.DCL(数据控制语言):权限管理操作,需要结合用户来观察,此部分DBA负责,不是卡发者的重心。
    SQL简单查询
    查询一张表中的所有数据行
    基本操作格式:
    SELECT [DISTINCT] *| 列名称[别名],列名称[别名],列名称[别名]…
    FROM 表名称[别名]; (加上 DISTINCT可消去重复内容,若查询了多个列,则当这几个列的内容都相同才会消去)
    先执行from确定数据来源,再执行·。 select进行数据的筛选
    简单查询不能控制行,只能通过select选列。

    eg:
    以emp’表为例,查询选定列:
    select empno,ename,job from emp;

    除了简单的查询外,还可以针对查询的列的返回结构进行四则运算。
    eg:
    SELECT empno, ename, sal12 FROM emp;定义别名:SELECT empno, ename, sal12 INCOME FROM emp;
    在这里插入图片描述
    定义别名:SELECT empno, ename, sal*12 INCOME FROM emp;
    在这里插入图片描述
    对于别名不建议使用中文;
    在使用select查询时,也可设置一些常量,这些常量可直接进行输出,
    有三点说明:

    • 若是字符串则需要单引号说明;
    • 若是数字则直接写;
    • 若是日期则按照日期风格编辑,使用“xx日-xx月-xx年”
      eg:
      直接查询常量:
      select ‘雇员’,ename, job from emp;
      在这里插入图片描述
      也可在select语句里使用“||”;连接查询结果。
      观察连接效果

    在这里插入图片描述
    按照固定显示格式转换:
    在这里插入图片描述

    SQL限定查询:

    很多时候不需要查询数据行的所有内容,此时就可以使用WHERE来针对要显示的数据进行筛选。
    语法形式:
    SELECT [DISTINCT] *| 列名称[别名],列名称[别名],列名称[别名]…
    FROM 表名称[别名];(加上 DISTINCT可消去重复内容,若查询了多个列,则当这几个列的内容都相同才会消去)
    [WHERE 过滤条件(可多个)]
    执行顺序:from表控制,where行控制,select列控制;

    需要掌握一系列的限定查询符号,有如下几种:

    1.关系运算符:>,<,>=,<=,!=,<>;(不等于)
    2.逻辑运算符:and,or,not;
    3.范围运算符:between…and;
    4.谓词范围:in,not in;
    5.空判断:is null,is not null;
    6.模糊查询:like;
    所有运算符不区分类型,所有的数据区分大小写;

    关系运算符
    eg;找到基本工资大于1500的
    select * from emp where sal>1500;
    在这里插入图片描述
    逻辑运算符
    如果现在有多个条件需要进行连接,那么就需要根据要求来选择是与连接还是或连接。
    eg:
    查询出工资范围在1500-3000的雇员
    select * from emp where sal>1500 and sal <3000;在这里插入图片描述
    查询出工资范围大于2000或者职位是Clerk的雇员
    select * from emp where sal>2000 or job=’CLERK’ ;
    在这里插入图片描述
    不要写过于复杂的逻辑操作。
    范围查询
    80= 在执行但好像条件过滤的时候可以针对某一个范围内的数据进行筛选,使用语法:
    BETWEEN 最小值(数字或日期)AND 最大值
    在此最大值到最小值之间的内容都满足条件(包含边界)
    eg:查询工资在1500到2000间的雇员(包含边界)
    SELECT * FROM emp WHERE sal BETWEEN 1500 AND 2000;
    在这里插入图片描述
    相比上面的查询性能有提升。
    范围查询中,日期和数字是最常用的数据类型
    空判断
    空 在数据库上解释为不确定类容,如果在数字列上觉对不表示0,对于空的判断不能使用关系运算符完成,任何的数据库,空的操作只能使用is null 或者 is not null
    SELECT * FORM emp WHERE COMM IS NOT NULL;
    在这里插入图片描述
    IN操作符
    类似于between and,但是between and给了一个大的范围,而in给了一个指定的可选范围。
    eg:
    查询出雇员编号是7369,7566,7788,9999的雇员
    SELECT * FROM emp WHERE empno IN(7369,7566,7788,9999);
    在这里插入图片描述
    关于not in与null:
    在使用not in进行范围判断的时候如果范围包含null,那么不会返回任何结果
    在这里插入图片描述
    实际上使用where的用处在控制显示数据行,简单的说,不要显示全部的数据(因为如果显示全部的数据行几乎是宣判了程序的死刑!)使用not in的目的是为了查询部分数据行,如果有了空,某些数据永远不可能为空,相当于查询全部了。
    模糊查询:Like
    在使用LIKE的时候可以使用两个通配符:
    “—”匹配任意一位字符;
    “%”匹配任意0位,一位或多位字符;
    eg:查询姓名是以A开头的信息
    SELECT * FROM emp WHERE ename like ‘A%’;
    在这里插入图片描述
    查询第二个字母是A的人的信息
    SELECT * FROM emp WHERE ename like ‘_A%’;
    查询任意字母是A的人的信息
    SELECT * FROM emp WHERE ename like ‘%A%’;
    注意关于LIKE的两点说明:
    1.LIKE可以用在各种数据类型上使用不一定是字符串;
    2.在使用LIKE查询的时候如果不设置查询关键字(LIKE‘%%’)则是查询全部。
    与不使用where相比,这个性能更低。

    因为select比where后执行,所以select定义的别名无法在where中使用

    如果需要针对查询后的结果按照指定的数据列进行排序操作,就要使用order by 子句。
    当使用查询操作的时候默认情况下会按照插入数据的顺序进行排序显示。
    语法形式:
    SELECT [DISTINCT] *| 列名称[别名],列名称[别名],列名称[别名]…
    FROM 表名称[别名];(加上 DISTINCT可消去重复内容,若查询了多个列,则当这几个列的内容都相同才会消去)
    [WHERE 过滤条件(可多个)]
    执行顺序:from表控制,where行控制,select列控制;
    [ORDER BY 字段[ASC|DESC],字段[ASC|DESC],字段[ASC|DESC]…];(针对查询结果进行排序)
    在SELECT后执行,使用ORDER BY可以使用SELECT 定义的别名;
    对于排序的方式有两种:
    ASC(默认)按照升序排列;
    DESC:按照降序排列;
    eg:
    按照工资降序排序:
    SELECT ename ,sal FROM emp ORDER BY sal DESC;
    在这里插入图片描述
    按照销售人员的招聘时间由早到晚排序:
    SELECT ename,hiredate FROM emp WHERE job=’SALESMAN’ ORDER BY hiredate;
    在这里插入图片描述
    也可以同时设置多个字段
    eg:按照工资由高到低排序,如果工资相同则按照雇佣的日期由早到晚排序;
    SELECT *FROM emp ORDER BY SAL DESC,HIREDATE ASC;

    在这里插入图片描述
    查询年薪按年薪由低到高排序:
    SELECT ename ,sal*12 INCOMM FROM emp ORDER BY INCOMM;
    在这里插入图片描述
    可以看到,调用了SELECT定义的别名,在查询语句中,基本上只有order by能调用

    展开全文
  • MySQL结构化查询语言

    千次阅读 2015-09-23 20:47:17
    结构化查询语言sql包含以下四部分: 1.DDL //数据定义语言,create,drop,alter 2.DML //数据操作语言,insert,update,delete 3.DQL //数据查询语言,select 4.DCL //数据控制语言,grant,commit,rollback 以下...

    结构化查询语言sql包含以下四部分:
    1.DDL //数据定义语言,create,drop,alter
    2.DML //数据操作语言,insert,update,delete
    3.DQL //数据查询语言,select
    4.DCL //数据控制语言,grant,commit,rollback
    以下就增删查改的使用,进行演示。
    增:insert
    mysql> insert into t1(usename) values(“f”);
    删:delete
    mysql> delete from t1 where id=6;
    删除id=6的行,必须紧跟where条件,否则t1表中的所有数据都会被删除。SQL中所有的赋值语句和比较语句都使用“=”,而不能使用“==”
    以下各条语句等效:
    delete from t1 where id>=3 and id<=5;
    delete from t1 where id between 3 and 5;
    delete from t1 where id=3 or id=4 or id=5;
    delete from t1 where id in(3,4,5);
    改:update
    mysql> update t1 set usename=’g’ where id =6;
    改变id=6的usename值
    如果不加where id=6,则所有的usename的值都将会被改变。
    一次性更改多个值,
    mysql> update t1 set id=77,usename=’g’ where id =6;
    查:select
    新建表并插入数据如下:
    这里写图片描述
    特定字段的查询:
    只查询字段id和pass
    查询的顺序决定最终结果的排序
    如果表中的数据如下所示:
    这里写图片描述
    此时有很多重复的数据,可以用指令distinct过滤掉重复值:
    过滤掉重复值
    设置查询条件where语句:
    这里写图片描述
    匹配查询:like
    这里写图片描述
    也可以使用正则表达式,正则表达式的写法相对麻烦。
    这里写图片描述
    多条件的匹配查询
    like方法:

    或者正则表达式:
    这里写图片描述
    排序:order by
    升序排序asc,默认排序为升序,故可以不写:
    这里写图片描述
    降序排序desc:
    这里写图片描述
    限制输出数据的行数:limit
    输出前三行

    展开全文
  • 它由多条sql语句组成的整体,它的语句能确保被DML语句修改的表中的所有记录及时得到更新。 4、 数据控制语言(DCL): 设置数据库的访问权限。 5、 数据定义语言(DDL): 在数据库中创建表或删除表(CREAT TABLE 或...

    1、 数据查询语言(DQL)
     其语句,也称为“数据检索语句”,就是从表中查询数据。 
    2、 数据操作语言(DML):
     在表中添加,修改和删除数据记录。也称为动作查询语言。
    3、 事务处理语言(TPL):
     它由多条sql语句组成的整体,它的语句能确保被DML语句修改的表中的所有记录及时得到更新。
    4、 数据控制语言(DCL):
     设置数据库的访问权限。
    5、 数据定义语言(DDL):
     在数据库中创建表或删除表(CREAT TABLE 或 DROP TABLE);为表加入索引等。
    6、 指针控制语言(CCL):
     它的语句,像DECLARE CURSOR,FETCH INTO和UPDATE WHERE CURRENT用于对一个或多个表单独行的操作。

    展开全文
  • 咨询方法-异常结构化查询语言SQL语句确定方法及服务器.zip
  • SQLserver基础语句大全

    万次阅读 多人点赞 2019-06-09 13:17:50
    结构化查询语言(Structured Query Language)简称 SQL,是一种特殊目的的编程语言, 是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统; 同时也是数据库脚本文件的扩展名。 SQL DML ...
  • SQL 结构化查询语言 6部分

    千次阅读 2018-03-31 21:56:49
    1、数据查询语言(DQL:Data Query Language):其语句称为“数据检索语句”,用以从表中获得数据,确定数据怎样在应用程序给出。保留字SELECT是DQL(也是所有SQL)用得最多的动词,其他DQL常用的保留字有WHERE,...
  • 精通SQL 结构化查询语言详解

    热门讨论 2012-12-01 09:36:24
    《精通SQ:结构化查询语言详解》全面讲解SQL语言,提供317个典型应用,读者可以随查随用,针对SQL Server和Oracle进行讲解,很有代表性。 全书共包括大小实例317个,突出了速学速查的特色。《精通SQ:结构化查询语言...
  • 资源名称:数据库查询语句Access_SQL... SQL语言是一种介于关系代数与关系演算之间的结构化查询语言。我们以Access支持的SQL语言来讨论其功能和使用方法。资 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
  • SQL结构化查询语言 之 DDL

    千次阅读 2019-09-25 20:42:43
    SQL中的语句类别 SQL的全称叫做:structured ...标准SQL:结构化查询语言可以分为以下这五大类: DDL:data definition language 数据定义语句 TCL: transaction control language 事务控制语句 DML: data maniplu...
  • 经典SQL查询语句大全

    千次阅读 多人点赞 2018-03-09 14:38:10
    一、基础1、说明:创建数据库CREATE DATABASE database-name2、说明:删除数据库drop database dbname3、说明:备份sql server--- 创建 备份数据的 deviceUSE masterEXEC sp_addumpdevice 'disk', 'testBack', 'c:\...
  • SQL 结构化查询语言

    千次阅读 2017-02-19 21:23:43
    导读MySql是我们常用的数据库,javaEE常用几款(Oracle,PostgreSQL,DB2或IBM),SQLite是用于嵌入式设备里的小型数据库,例如Android或IOS,而掌握SQL语句,就相当于掌握了所有的常见关系数据库,需要同学们重点掌握以及...
  • SQL结构化查询语言(Structured Query Language)。 是关系型数据库标准语言。 特点:简单,灵活,功能强大。 ---------------------------------------------------- SQL包含6个部分: 一:数据查询语言(DQL...
  • SQL数据库查询语句

    万次阅读 多人点赞 2016-08-26 23:40:12
    查询功能强大,是SQL语言的灵魂语句,也是SQL中使用频率最高的语句。 基本select语句: 一个基本的select语句可以分解成三个部分:查找什么数据(select)、从哪里查找(from)、查找的条件是什么(where)...
  • SQL基本结构化查询语句

    千次阅读 2016-06-07 21:44:50
    本博文主要介绍MySQL中基本的结构化查询语句
  • SQL语句API

    2018-01-27 16:18:17
    sql 语句是对数据库进行操作的一种语言。结构化查询语言(Structured Query Language)简称SQL结构化查询语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
  • 易语言SQL数据库查询语句

    千次阅读 2020-07-07 09:07:57
    查询功能强大,是SQL语言的灵魂语句,也是SQL中使用频率最高的语句。 基本select语句: 一个基本的select语句可以分解成三个部分:查找什么数据(select)、从哪里查找(from)、查找的条件是什么(where)。 ...
  • 结构化查询语句分类

    千次阅读 2018-08-09 11:10:49
    结构化查询语句是对关系型数据库进行操作的标准语言,非过程。 根据SQL的功能不同可以分为3类: 数据库定义语言DDL(Data Definition Language) create drop alter 数据库操作语言DML(Data Manipulation ...
  • SQL结构化查询语言)介绍

    千次阅读 2017-05-03 11:07:07
    (一).SQL是一种非过程性语言。例如:它描述了如何对数据进行检索、插入、删除,但他并不说明如何进行这样操作。 (二).RDBMS–关系型数据库管理系统 (三).数据库–按照我们的意愿来存储和处理这些数据。 ...
  • SQL(结构化查询语言)简介

    千次阅读 2018-07-27 11:19:53
    结构化查询语言(Structured Query Language)简称SQL, 是操作和检索关系型数据库的标准语言,20世纪70年代由IBM公司开发,目前应用于各种关系型数据库。 二、SQL的发展 1974年首次提出,当时叫SEQUEL 1980年改名为...
  • SQL结构化查询语言)有用于执行查询、更新、删除、插入记录的语法。 SQL的DML部分: select-从数据库表中获取数据。 insert into-向数据库表中插入数据 update-更新数据库表中的数据 delete-删除数据库表中的数据...
  • SQL复杂查询语句总结

    千次阅读 多人点赞 2018-10-16 14:19:02
    结构 /***学生表***/ create table student( sno varchar2(10) primary key, --学号 sname varchar2(20), --姓名 sage number(2), --年龄 ssex varchar2(5) --性别 ); /***教师表***/ ...
  • 精通SQL 结构化语言查询与详解

    热门讨论 2008-09-25 11:01:58
    SQL的全称是Structured Query Language(结构化查询语言),是关系数据库中最常用的语言。SQL不仅可以管理数据库中的数据而且可以管理关系数据库本身,还可以通过交互式客户端应用程序直接访问SQL数据库。本书从SQL...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 271,324
精华内容 108,529
热门标签
关键字:

sql结构化查询语句