精华内容
下载资源
问答
  • 数据库中where过滤筛选排序语句

    千次阅读 2019-05-21 21:12:42
    where语句是将不满足条件的进行过滤掉 1.select 条件, 条件,… from 列表 [where 条件] select ename , sal, from tab where sal>200 在ename和sal连个选项中输出sal大于200的 注意字符和日期: 字符和...

    1过滤
    where语句是将不满足条件的进行过滤掉
    1.select 条件, 条件,…
    from 列表
    [where 条件]
    select ename , sal,
    from tab
    where sal>200
    在ename和sal连个选项中输出sal值大于200的值

    注意字符和日期:
    字符和日期要用单引号
    字符大小敏感,日期格式敏感
    日期的默认格式为 dd-mon-rr
    例如
    select name , date
    from tab
    where name=‘tom’;
    就是经名字是Tom的输出出来

    2.比较运算符有:< ,> ,= ,<=,>=, <>,between…and…
    in , like , is null
    以上的运算符重点介绍between…and… in like is null
    例如:
    select number
    from tab
    where between 10 and 20;
    在tab的列表中选择数字在10 和20 之间的数字


    select number
    from tab
    where in (10 ,20 ,30);
    在tab列表中选择10 20 或30 这几个数字


    select name
    from tab
    where name=like‘t%’
    在tab列表中筛选出名字中带t的
    这里注意%表示一个或多个字符,
    _表示一个字符000


    select number
    from tab
    where number is null;
    将数字是空值得输出来


    3.逻辑运算符
    and 逻辑并,表示两个条件都为真
    or 逻辑或,有一个为真即可
    not 逻辑否 如果条件为假则输出为真
    select A,B,C,D
    from tab
    where a>20
    and a =boy ;
    表示大于20岁的男生挑选出来
    or 和not 同理


    4.数据库中表达式拥有优先级在这里插入图片描述


    降序排列
    select a , b ,c
    friom tab
    order by desc在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    alter session set nls_date_format = ‘YYYY-MM-DD hh24;mi:ss’;
    修改日期的格式

    select sysdate from dual;
    查看当前数据库的操作时间

    set pages 200 lines 200
    修改显示行列

    展开全文
  • 数据库语句大全

    千次阅读 2021-03-09 11:20:13
     2、更改密码:  >SET PASSWORD FOR name=PASSWORD(‘fdddfd’);  3、权限管理  >SHOW GRANTS FOR name; //查看name用户权限  >GRANT SELECT ON db_name.* TO name; //给name用户db_na

    新手用作自查自检

    用户管理:

      1、新建用户:

        >CREATE USER name IDENTIFIED BY ‘ssapdrow’;

      2、更改密码:

        >SET PASSWORD FOR name=PASSWORD(‘fdddfd’);

      3、权限管理

        >SHOW GRANTS FOR name; //查看name用户权限

        >GRANT SELECT ON db_name.* TO name;    //给name用户db_name数据库的所有权限

        >REVOKE SELECT ON db_name.* TO name;    //GRANT的反操作,去除权限;

    一、数据库操作: 

      1、查看数据库:

        >SHOW DATABASES;

      2、创建数据库:

        >CREATE DATABASE db_name;  //db_name为数据库名

      3、使用数据库:

        >USE db_name;

      4、删除数据库:

        >DROP DATABASE db_name;

    二、创建表:

      1、创建表:

        >CREATE TABLE table_name(

        >id TINYINT UNSIGNED NOT NULL AUTO_INCREMENT,    //id值,无符号、非空、递增——唯一性,可做主键。

        >name VARCHAR(60) NOT NULL

        >score TINYINT UNSIGNED NOT NULL DEFAULT 0,    //设置默认列值

        >PRIMARY KEY(id)

        >)ENGINE=InnoDB    //设置表的存储引擎,一般常用InnoDB和MyISAM;InnoDB可靠,支持事务;MyISAM高效不支持全文检索

        >DEFAULT charset=utf8;  //设置默认的编码,防止数据库中文乱码

        如果有条件的创建数据表还可以使用 >CREATE TABLE IF NOT EXISTS tb_name(……..

      2、复制表:

        >CREATE TABLE tb_name2 SELECT * FROM tb_name;

        或者部分复制:

        >CREATE TABLE tb_name2 SELECT id,name FROM tb_name;

      3、创建临时表:

        >CREATE TEMPORARY TABLE tb_name(这里和创建普通表一样);

      4、查看数据库中可用的表:

        >SHOW TABLES;

      5、查看表的结构:

        >DESCRIBE tb_name;

        也可以使用:

        >SHOW COLUMNS in tb_name;     //from也可以

      6、删除表:

        >DROP [ TEMPORARY ] TABLE [ IF EXISTS ] tb_name[ ,tb_name2…….];

        实例:

        >DROP TABLE IF EXISTS tb_name;

      7、表重命名:

        >RENAME TABLE name_old TO name_new;

        还可以使用:

        >ALTER TABLE name_old RENAME name_new;

    三、修改表:

      1、更改表结构:

        >ALTER TABLE tb_name ADD[CHANGE,RENAME,DROP] …要更改的内容…

        实例:

        >ALTER TABLE tb_name ADD COLUMN address varchar(80) NOT NULL;

        >ALTER TABLE tb_name DROP address;

        >ALTER TABLE tb_name CHANGE score score SMALLINT(4) NOT NULL;

    四、插入数据:

      1、插入数据:

        >INSERT INTO tb_name(id,name,score)VALUES(NULL,’张三’,140),(NULL,’张四’,178),(NULL,’张五’,134);

        这里的插入多条数据直接在后边加上逗号,直接写入插入的数据即可;主键id是自增的列,可以不用写。

      2、插入检索出来的数据:

        >INSERT INTO tb_name(name,score) SELECT name,score FROM tb_name2;

    五、更新数据:

      1、指定更新数据:

        >UPDATE tb_name SET score=189 WHERE id=2;

        >UPDATE tablename SET columnName=NewValue [ WHERE condition ]

    六、删除数据:

      1、删除数据:

        >DELETE FROM tb_name WHERE id=3;

    七、条件控制:

      1、WHERE 语句:

        >SELECT * FROM tb_name WHERE id=3;

      2、HAVING 语句:

        >SELECT * FROM tb_name GROUP BY score HAVING count(*)>2

      3、相关条件控制符:

        =、>、<、<>、IN(1,2,3……)、BETWEEN a AND b、NOT

        AND 、OR

        Linke()用法中 % 为匹配任意、 _ 匹配一个字符(可以是汉字)

        IS NULL 空值检测

    八、MySQL的正则表达式:

      1、Mysql支持REGEXP的正则表达式:

        >SELECT * FROM tb_name WHERE name REGEXP ‘^[A-D]’ //找出以A-D 为开头的name

      2、特殊字符需要转义。

    九、MySQL的一些函数:

      1、字符串链接——CONCAT()

        >SELECT CONCAT(name,’=>’,score) FROM tb_name

      2、数学函数:

        AVG、SUM、MAX、MIN、COUNT;

      3、文本处理函数:

        TRIM、LOCATE、UPPER、LOWER、SUBSTRING

      4、运算符:

        +、-、*、\

      5、时间函数:

        DATE()、CURTIME()、DAY()、YEAR()、NOW()…..

    十、分组查询:

      1、分组查询可以按照指定的列进行分组:

        >SELECT COUNT() FROM tb_name GROUP BY score HAVING COUNT()>1;

      2、条件使用Having;

      3、ORDER BY 排序:

        ORDER BY DESC|ASC    =>按数据的降序和升序排列

    十一、UNION规则——可以执行两个语句(可以去除重复行)

    十二、全文检索——MATCH和AGAINST

      1、SELECT MATCH(note_text)AGAINST(‘PICASO’) FROM tb_name;

      2、InnoDB引擎不支持全文检索,MyISAM可以;

    十三、视图

      1、创建视图

        >CREATE VIEW name AS SELECT * FROM tb_name WHERE ~~ ORDER BY ~~;

      2、视图的特殊作用:

          a、简化表之间的联结(把联结写在select中);

          b、重新格式化输出检索的数据(TRIM,CONCAT等函数);

          c、过滤不想要的数据(select部分)

          d、使用视图计算字段值,如汇总这样的值。

    十四、使用存储过程:

      个人理解,存储过程就是一个自定义函数,有局部变量参数,可传入参数,可以返回值,不过这语法够呆滞的~~~

      1、创建存储过程:

        >CREATE PROCEDURE pro(

        >IN num INT,OUT total INT)

        >BEGIN

        >SELECT SUM(score) INTO total FROM tb_name WHERE id=num;

        >END;

       *这里的 IN (传递一个值给存储过程),OUT(从存储过程传出一个值),INOUT(对存储过程传入、传出),INTO(保存变量)

      2、调用存储过程:

        >CALL pro(13,@total)      //这里的存储过程两个变量,一个是IN一个是OUT,这里的OUT也是需要写上的,不写会出错

        >SELECT @total         //这里就可以看到结果了;

      3、存储过程的其他操作:

        >SHOW PROCEDURE STATUS;      //显示当期的存储过程

        >DROP PROCEDURE pro;         //删除指定存储过程

    十五、使用游标:

      对这个理解不是很懂,朋友多多指点哦~~~

       1、游标的操作

        >CREATE PROCEDURE pro()

        >BEGIN

        >DECLARE ordername CURSOR FOR

        >SELECT order_num FROM orders;

        >END;

        >OPEN ordername;    //打开游标

        >CLOSE ordername;    //关闭游标

    十六、触发器:

      触发器是指在进行某项指定操作时,触发触发器内指定的操作;

      1、支持触发器的语句有DELETE、INSERT、UPDATE,其他均不支持

      2、创建触发器:

        >CREATE TRIGGER trig AFTER INSERT ON ORDERS FOR EACH ROW SELECT NEW.orser_name;

        >INSERT语句,触发语句,返回一个值

      3、删除触发器

        >DROP TRIGGER trig;

    十七、语法整理:

      1、ALTER TABLE(修改表)

        ALTER TABLE table_name

        (  ADD    column  datatype   [ NULL | NOT NULL ]  [ CONSTRAINTS ]

           CHANGE  column   datatype   COLUMNS  [ NULL | NOT NULL ]   [ CONSTRAINTS ]

           DROP    column,

           。。。。

        )

      2、COMMIT(处理事务)

        >COMMIT;

      3、CREATE INDEX(在一个或多个列上创建索引)

        CREATE INDEX index_name ON tb_name (column [ ASC | DESC ] , …….);

      4、CREATE PROCEDURE (创建存储过程)

        CREATE PROCEDURE pro([ parameters ])

        BEGIN

        ……..

        END

      5、CREATE TABLE(创建表)

        CREATE TABLE tb_name(

        column_name  datetype  [ NULL | NOT NULL ]   [ condtraints] ,

        column_name  datetype  [ NULL | NOT NULL ]   [ condtraints] ,

        …….

        PRIMARY KEY( column_name )

        )ENGINE=[ InnoDB | MyiSAM ]DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

      6、CREATE USER(创建用户)

        CREATE USER user_name [ @hostname ] [ IDENTIFIED BY [ PASSWORD ] ‘pass_word’ ];

      7、CREATE VIEW (在一个或多个表上创建视图)

        CREATE [ OR REPLACE ] VIEW view_name AS SELECT。。。。。。

      8、DELETE (从表中删除一行或多行)

        DELETE FROM table_name [WHERE ……]

      9、DROP(永久删除数据库及对象,如视图、索引等)

        DROP DATEBASE | INDEX | PROCEDURE | TABLE | TRIGGER | USER | VIEW name

      10、INSERT (给表添加行)

        INSERT INTO tb_name [ ( columns,…… ) ] VALUES(value1,…………);

        使用SELECT值插入:

        INSERT INTO tb_name [ ( columns,…… ) ]

        SELECT columns , ……. FROM tb_name [ WHERE …… ] ;

       11、ROLLBACK(撤销一个事务处理块)

        ROLLBACK [ TO savapointname ];

       12、SAVEPOINT(为ROLLBACK设置保留点)

        SAVEPOINT sp1;

       13、SELECT (检索数据,显示信息)

        SELECT column_name,…..FROM tb_name [ WHERE ] [ UNION ] [ RROUP BY ] [ HAVING ] [ ORDER BY ]

      14、START TRANSACTION (一个新的事务处理块的开始)

        START TRANSACTION

       15、UPDATE(更新一个表中的一行或多行)

        UPDATE tb_name SET column=value,……[ where ]

    展开全文
  • 写一条SELECT查询语句 在查询中使用表达式、运算符 对空值的处理 对查询字段起别名 查询字段的连接 第二章 条件查询 WHERE条件查询 在查询中使用表达式、运算符 使用LIKE、BETWEEN、IN进行模糊查询 第三章 单行...
  • 数据库基础语句

    万次阅读 多人点赞 2018-10-02 14:29:02
    文章目录DDL数据库表索引DML查找语句以及注意事项DCL别名group by的注意事项常见问题sql语句的执行顺序where和having的区别Not null unique和primary key的区别内连接 左连接 右连接 外连接MySQL中between and的取值...

    DDL

    DDL(数据库定义语言),用于数据库、表、列、索引等数据库对象的定义(创建)结构的修改

    数据库

    • 创建:create database 数据库名
    • 删除:drop database 数据库名
    • 改变使用的数据库:use 数据库名

    • 创建create table 表名(
      〈列名〉〈数据类型〉〈列级完整性约束条件〉……
      CONTRAINT〈约束名〉〈表级完整性约束条件〉……)
      • 列级约束条件
        • NOT NULL 或 NULL
          NOT NULL约束不允许字段值为空,而NULL约束允许字段值为空。
        • UNIQUE
          惟一性约束,即不允许列中出现重复的属性值。
        • PRIMARAY KEY [CLUSTERED|NON CLUSTERED]
          定义该字段为主码并建立聚集(非)索引。
          1、多个属性构成的主码只能通过表级约束条件定义:PRIMARY KEY (Sno,Cno)
          2、单个属性构成的主码可通过列级或表级约束条件定义:Sno CHAR(9) PRIMARY KEY 或 PRIMARY KEY (Sno)
        • DEFAULT
          默认值约束。 DEFAULT 默认值
          DEFAULT〈约束名〉〈默认值〉FOR〈列名〉
        • CHECK
          检查约束。CONSTRAINT〈约束名〉CHECK (〈约束条件表达式〉)
          1、单一属性设限
          CONSTRAINT C2 CHECK(性别 IN (‘男’,‘女’))
          CONSTRAINT C3 CHECK(成绩 BETWEEN 0 AND 100)
          2、多属性之间设限
          CHECK (Ssex=‘女’ OR Sname NOT LIKE ‘Ms.%’)
        • identity(初值,步长)
          定义字段为数值型数据,并指出它的初始值和逐步增加的步长值
        • reference 参照表(对应字段)
          定义该字段为外码,并指出被参照表及对应字段
        • AUTO_INCREMENT
          设置该字段为自增字段
        • 表级约束条件
        • UNIQUE(列1, 列2, …)
        • PRIMARY KEY[CLUSTERED|NON CLUSTERED](列1, 列2, …)
        • check(条件表达式)
        • FOREIGN KEY
          CONTRAINT〈约束名〉FOREIGN KEY(〈外码〉) REFERENCES〈被参照表名〉(〈与外码 对应的主码名〉)
      • 删除表drop table 表名
      • 修改表的约束or属性alter table 表名
        [rename 新表名] 更改表名
        [add column 列名 类型 约束 or CONSTRAINT 约束名 约束定义] 增加字段或者字段和表的约束
        [drop column 列名 or CONSTRAINT 约束名] 删除字段或约束
        [alter] 增加字段宽度或约束,一般不允许修改和减少,也不能改动字段标识
        [modify] 修改字段类型和约束,不能改动字段标识
        [change] 修改字段类型和约束,允许修改字段标识。后面要写两次列名,比较麻烦。
        {check|nocheck}constraint{all|约束名组}使约束有效或无效(check使之有效,nocheck使之无效,all指全部约束)
        first after:配合add、alter、modify、change使用,用于改变列的位置

    索引

    • 创建

      • create [UNIQUE] [CLUSTERED|NONCLUSTERED]
        index〈索引名〉 ON〈表名〉(〈列名〉[〈次序〉][,〈列名〉[〈次序〉]]…);

        UNIQUE
        建立唯一索引,不允许有两行具有相同索引值
        CLUSTERED|NONCLUSTERED
        建立聚集或者非聚集索引,每张表只能有一个聚集索引,默认值为非聚集索引

      • alter table 表名 add [UNIQUE|FULLTEXT] index 索引名 [using [BTREE|HASH]] (列名);
      • create table 表名{
        学号 char(6),
        课程号 char(3),
        成绩 tinyint(1),
        学分 tinyint(1),
        primary key(学号,课程号);
        index cj(成绩)//index 索引名 [索引类型] (索引列名)
        }
    • 删除drop index 索引名

    • 查看show index in 表名

    DML

    DML(数据库操纵语言),用于实现对数据库表的内容(而非结构)的增删改查功能。

    • 增加行
      INSERT INTO〈表名〉[(〈属性列1〉[,〈属性列2〉…)](不指定属性列时,需要把所有列都一一对应地写上)
      VALUES (〈常量1〉[,〈常量2〉]…),
         (〈常量1〉[,〈常量2〉]…)……

      INSERT INTO〈表名〉[(〈属性列1〉[,〈属性列2〉]…)]
      〈子查询〉

      • 如果想实现表中有重复的记录,则忽略本次插入的功能,可以通过INSERT IGNORE来实现这个功能:
        INSERT IGNORE INTO 〈表名〉
      • 如果想实现表中有重复的记录,则更新成本次插入的功能,可以通过INSERT ... ON DUPLICATE KEY UPDATE来实现这个功能:
        INSERT INTO first_table (first_column, second_column) VALUES(1, ‘哇哈哈’) ON DUPLICATE KEY UPDATE second_column = ‘雪碧’;
        这个语句的意思就是,对于要插入的数据(1, ‘哇哈哈’)来说,如果first_table表中有某些重复的记录,那就把记录的second_column列更新为’雪碧’
        INSERT INTO first_table (first_column, second_column) VALUES(1, ‘哇哈哈’) ON DUPLICATE KEY UPDATE second_column = VALUES(second_column);
        遇到重复记录时把该重复记录的second_column列更新成准备插入的记录中的值
    • 删除行
      DELETE FROM〈表名〉[WHERE〈条件〉];

    • 修改某几行的属性值
      UPDATE〈表名〉
      SET〈列名〉=〈表达式〉[,〈列名〉=〈表达式〉][,…n]
      [where]

    • 查找行

    查询-注意事项

    1. SELECT 〈属性1,属性2,……〉(可以使用distinct、top等关键字)
      from 表1,表2,……(可以有多个表,结果是笛卡尔乘积;可以是左右连接)
      where 元组需要满足的条件(可以用in)
    2. 可以对同一个列重复查询显示
      select num,num from strudentInfo;
      
    3. select后面的列是什么,临时表的列名就是什么
      select1,列2的表达式,……
      查询结果中,列名就是: 列1,列2的表达式,……
      

    查询-执行顺序

    SQL语言不同于其他编程语言的最明显特征是处理代码的顺序(书写查询语句也需要符合顺序)。在大多数据库语言中,代码按编码顺序被处理。但在SQL语句中,第一个被处理的子句式FROM,而不是第一出现的SELECT。SQL查询处理的步骤序号:

    (7)SELECT 投影,不删除结果中相同元组(注意,和关系运算中的投影π不同,π会删除结果中相同元素,相当于select distinct) (9) DISTINCT|TOP (11) <TOP_specification> <select_list>
    (12) INTO tablename 将结果保存到新表中
    (1) FROM <left_table> 笛卡尔乘积
    (3) <join_type> JOIN <right_table> 隐含的筛选条件
    (2) ON <join_condition> 筛选条件
    (4) WHERE <where_condition> 筛选条件
    (5) GROUP BY <group_by_list> 分组
    (6) WITH {CUBE | ROLLUP}
    (8) HAVING <having_condition> 筛选条件
    (10) ORDER BY <order_by_list> ASC|DESC 排序条件

    查询-分类

    • 简单查询
      查询过程中只涉及到一个表的查询
    • 连接查寻
      • where子句中,使用=的连接查询
        • 自身连接:MySQL服务器会把名称一样的表当作是一个表处理,名称不同的当做不同的表处理。
          下面的语句中,t1和t2会都被当做不同的表(相当于赋值了一个和test一样的表,和test进行连接查询),查询结果是两个test笛卡尔乘积后,留下满足条件的结果。
          select * from test as t1, test as t2 where t1.num=t2.num;
          下面的语句中,是一个表,查询结果为test原表
          select * from test as t1, test as t2 where t1.num=t2.num;
          
        • 复合连接:多个表的=连接
      • from子句中,使用join的连接查询
        • 内连接:使用innner join 或 cross join 或 join,等效于 from t1,t2。
          后可跟连接条件:where 连接条件, on 连接条件, using 相同列名
        • 外连接:使用了full join、left join、right join的全、左、右外连接查询
          后只能跟连接条件: on 连接条件(on后面可再加where,但是不能直接用where)
        • 交叉连接:使用了cross join的交叉连接查询。返回被连接的两个表的笛卡尔积,返回结果的行数等于两个表行数的乘积。
    • 嵌套查询
      引出了子查询概念。一个select from where成为一个查询块。
      • 按照使用的运算符分类:
        • 使用比较运算符(如> < =)连接子查询select
        • 使用范围运算符(如in,any,all,exists)连接子查询select
      • 按照子查询和父查询的依赖关系分类:
        • 相关子查询:子查询的查询条件依赖于父查询。依次取父查询中每一个元组,处理内查询,为真则保留结果。

          执行过程:
          (1)从外层查询中取出一个元组,将元组相关列的值传给内层查询。
          (2)执行内层查询,得到子查询操作的值。
          (3)外查询根据子查询返回的结果或结果集得到满足条件的行。
          (4)然后外层查询取出下一个元组重复做步骤1-3,直到外层的元组全部处理完毕。

        • 非相关子查询:子查询条件不依赖与父查询。即子查询可以完全脱离父查询单独执行
    • 集合查询
      使用了union(并)、intersect(交)、minus(差)关键字的查询。
      注意:
      • 查询的结果集中显示的列名将以第一个查询中的列名为准
      • 被合并的各个查询的查询对象个数必须相同类型不必完全相同
      • 单独使用,系统会自动去掉重复的元组。union all则会保留重复的元素。
      • 有的数据库没有intersect和minus,需要通过exists实现差和交操作。
    • 分组查询
      使用了group by的查询

    SELECT TOP 子句

    SELECT TOP 子句用于规定要返回的记录的数目。并非所有的数据库系统都支持 SELECT TOP 语句。

    数据库选取前几列的实现方式
    SQL Server / MS AccessSELECT TOP 语句
    MySQLLIMIT 开始行(从0开始),限制条数
    OracleROWNUM 语句

    例子:从"Customers"表中选择前三个记录:

    # SQL Server / MS Access
    SELECT TOP 3 * FROM Customers;
    # MySQL
    SELECT * FROM Customers
    LIMIT 3;
    #  Oracle
    SELECT * FROM Customers
    WHERE ROWNUM <= 3;
    

    例子:从"Customers"表中选择记录的前50%:

    SELECT TOP 50 PERCENT * FROM Customers;
    

    查询-运算符

    假设变量 a 的值为 10, 变量 b 的值为 20

    • 算数运算符
    操作符描述示例
    +相加:将符号两边的数值加起来。a + b 得 30
    -相减:从最边的操作数中减去右边的操作数。a - b 得 -10
    *相乘:将两边的操作数相乘。a * b 得 200
    /相除:用右边的操作数除以左边的操作数。b / a 得 2
    DIV相除:取商的整数部分。b / a 得 2
    %取余:用右边的操作数除以左边的操作数,并返回余数。b % a 得 0
    • 比较运算符
    操作符描述示例
    =检查两个操作数的值是否相等,是的话返回 true。(a = b) 不为 true。
    !=检查两个操作数的值是否相等,如果不等则返回 true。(a != b) 为 true。
    <>检查两个操作数的值是否相等,如果不等则返回 true。(a<>b) 为真。
    >检查左边的操作数是否大于右边的操作数,是的话返回真。(a > b) 不为 true。
    <检查左边的操作数是否小于右边的操作数,是的话返回真。(a < b) 为 true.
    >=检查左边的操作数是否大于或等于右边的操作数,是的话返回真。(a >= b) 不为 true。
    <=检查左边的操作数是否小于或等于右边的操作数,是的话返回真。(a <= b) 为 true.
    !<检查左边的操作数是否不小于右边的操作数,是的话返回真。(a !< b) 为 false.
    !>检查左边的操作数是否不大于右边的操作数,是的话返回真。(a !> b) 为 true。
    • 逻辑运算符
    操作符描述
    ANDAND运算允许多个条件在SQL语句中,存在WHERE子句
    OROR运算符是用来多个条件WHERE子句结合起来的SQL语句
    NOTNOT是一个否定运算符。例如:NOT EXISTS,NOT BETWEEN,NOT IN,NOT LIKE等
    • 范围运算符
    操作符描述
    BETWEENBETWEEN运算符用于搜索是在一组值的那个值,给定的最小值和最大值
    EXISTS代表存在,exists操作符后子查询结果集如果不为空(即只要存在一条满足),则返回true,否则返回false
    ININ运算符用于一个值进行比较,以已被指定的文字值的列表
    ALLALL运算符是用来在另一个值设定比较值的所有值,可以和比较运算符一起使用
    ANYANY运算符用于根据条件在列表中的值进行比较的任何应用值,可以和比较运算符一起使用
    SOME一些,可以和比较运算符一起使用
    • 字符串运算符
    操作符描述
    +连接
    LIKELIKE运算符用来比较使用通配符运算符相似的值
    • 其他运算符
    操作符描述
    IS NULLNULL运算符用来比较一个NULL值
    UNIQUEUNIQUE操作搜索指定表的每一行的唯一性(不重复)

    查询-通配符

    如果需要匹配 % 和 _ ,则需要使用 \ 进行转义。

    通配符描述
    %替代 0 个或多个字符
    _替代一个字符
    [charlist]字符列中的任何单一字符
    [^charlist] 或 [!charlist]不在字符列中的任何单一字符

    查询-聚集函数

    SQL函数

    函数描述
    SUM(column)返回某列的总和
    AVG(column)返回某列的平均值
    FIRST(column)返回在指定的域中第一个记录的值
    LAST(column)返回在指定的域中最后一个记录的值
    MAX(column)返回某列的最高值
    MIN(column)返回某列的最低值
    COUNT(*)返回被选行数
    COUNT(column)返回某列的行数(不包括 NULL 值)
    COUNT(DISTINCT column)返回相异结果的数目

    查询-表达式

    表达式主要有以下两种使用:

    1. 作为查询对象
      select num+50 from t1; --列名就是 num+50 ,列值是t1的 num+50
      
    2. 作为查询条件
      select num from t1 where num>50; 
      

    group by的注意事项

    • 在select 列表中指定的列要么是group by 子句中指定的列,要么包含聚集函数(可以不是group by子句中指定列的聚集函数),原因在于最终的结果集中只为每个组包含一行。并且此时,检索列表中的表达式和GROUP BY子句中的表达式必须完全一样,而且不能使用别名
    • 由于最终的结果集中只为每个组包含一行,对于不包含聚集函数的group by语句,筛选结果只保留第一个结果值,相当于使用了distinct
      --结果是显示每个部门的名称(无重复)
      select 部门 from table 
      group by 部门 
      
    • 如果分组列中含有NULL值,那么NULL也会作为一个独立的分组存在。
    • GROUP BY子句后也可以跟随表达式,但不能是聚集函数(很显然,根据聚集函数无法分组)
    • group by和group by all的区别
      • group by all 不管where的筛选条件,而对表中所有的行根据属性进行分组并显示在结果集中
      • 如果select里面有聚集函数,则group by all 中不符合where筛选的结果显示为null
      select 类别,AVG(定价) 平均价 from 图书馆
      where 出版社='机械出版社'
      group by 类别
      
      --会对出版社非机械出版社的书也根据类别进行分组,只不过对应的平均价为null
      select 类别,AVG(定价) 平均价 from 图书馆
      where 出版社='机械出版社'
      group by all 类别
      

    DISTINCT-去重

    • 使用格式
      SELECT DISTINCT 列名1, 列名2, ... 列名n  FROM 表名;
      
    • 注意事项
      distinct会将结果中重复的行去除,即没有任何两行“列名1, 列名2, … 列名n”完全相同

    null值检查

    null代表没有值,判断某一属性是否为null时,不能用 = ,不能用通配符(任意字符不等于没有字符),必须用is (not)

    DCL

    DCL(数据库控制语言),用于控制访问权限和设定安全级别。

    • grant
      • 功能:授权
      • 格式
        grant 权限列表 on.to 用户名@'ip' identified by "密码" [WITH GRANT OPTION];
        
      • 应用
        • 普通数据用户,查询、插入、更新、删除 数据库中所有表数据的权利。
          grant select on testdb.* to common_user@ '%'
          grant insert on testdb.* to common_user@ '%'
          grant update on testdb.* to common_user@ '%'
          grant delete on testdb.* to common_user@ '%'
          --上面四条可以合成下面1条
          grant select, insert, update, delete on testdb.* to common_user@ '%'
          --all等同于all privileges,其中的privileges可以省略
          grant all on *.* to wang@ '192.168.1.150' identified by "password"; 
          --把查询权限授予所有用户
          GRANT SELECT ON TABLE SC TO PUBLIC;
          --把INSERT权限授予用户U5,并允许将此权限再授予其他用户
          GRANT INSERT ON TABLE SC TO U5 WITH GRANT OPTION;
          --192.168.1.%表示一个网段
          grant all privileges on *.* to wang@'192.168.1.%' identified by "123456";    
          --grant 作用在表中的列上:
          grant select(id, se, rank) on testdb.apache_log to dba@localhost;
          --授权之后,不要忘记更新权限表
          flush privileges      
          
        • 数据库开发人员,创建表、索引、视图、存储过程、函数等权限。
          --grant 创建、修改、删除 MySQL 数据表结构权限。
          grant create on testdb.* to developer@ '192.168.0.%'; 
          grant alter on testdb.* to developer@ '192.168.0.%'; 
          grant drop on testdb.* to developer@ '192.168.0.%';
          --grant 操作 MySQL 外键权限:
          grant references on testdb.* to developer@ '192.168.0.%';
          --grant 操作 MySQL 临时表权限:
          grant create temporary tables on testdb.* to developer@ '192.168.0.%';
          --grant 操作 MySQL 索引权限:
          grant index on testdb.* to developer@ '192.168.0.%';
          --grant 操作 MySQL 视图权限
          grant create view on testdb.* to developer@ '192.168.0.%'; 
          --grant 操作 MySQL 存储过程、函数权限:
          grant create routine on testdb.* to developer@ '192.168.0.%'; -- now, can show procedure status 
          grant alter routine on testdb.* to developer@ '192.168.0.%'; -- now, you can drop a procedure 
          grant execute on testdb.* to developer@ '192.168.0.%';
          grant execute on procedure testdb.pr_add to 'dba'@ 'localhost';
          grant execute on function testdb.fn_add to 'dba'@ 'localhost';
          
        • 查看权限
          --查看当前用户下所有的权限
          show grants;
          --查看其他 MySQL 用户权限:
          show grants for dba@localhost;
          
          
    • revoke
      • 功能: 收回权限
      • 格式: revoke跟grant语法差不多,只需要把关键字 “to” 换成 “from” 即可,并且revoke语句中不需要跟密码设置。
        revoke 权限列表 on.from 用户名@'ip';
        
      • 应用
        --撤销已经赋予给 MySQL 用户权限的权限。
        revoke all on *.* from dba@localhost;
        revoke insert,select,update,delete,dropcreatealter on huanqiu.* from wang@'%';
        flush privileges;
        

    grant和revoke的注意事项

    • grant, revoke用户权限后,该用户只有重新连接MySQL数据库,权限才能生效。
    • 如果想让授权的用户,也可以将其拥有的权限grant给其他用户,那么授权时需添加选项 “grant option”!
    • mysql授权表一共涉及到5个表,分别是user、db、host、tables_priv和columns_priv。
      这5张表的内容和用途如下:

      1)user表
      user表列出可以连接服务器的用户及其口令,并且它指定他们有哪种全局(超级用户)权限。在user表启用的任何权限均是全局权限,并适用于所有数据库。例如,如果你启用了DELETE权限,在这里列出的用户可以从任何表中删除记录,所以在你这样做之前要认真考虑。
      2)db表
      db表列出数据库,而用户有权限访问它们。在这里指定的权限适用于一个数据库中的所有表。
      3)host表
      host表与db表结合使用在一个较好层次上控制特定主机对数据库的访问权限,这可能比单独使用db好些。这个表不受GRANT和REVOKE语句的影响,所以,你可能发觉你根本不是用它。
      4)tables_priv表
      tables_priv表指定表级权限,在这里指定的一个权限适用于一个表的所有列。
      5)columns_priv表
      columns_priv表指定列级权限。这里指定的权限适用于一个表的特定列。

    • 如果给一个用户设置的权限过大,除了上面使用revoke回收部分权限外,还可以使用grant进行权限修改。也就是说,grant不仅可以添加权限,也可以修改权限(实际上就是对同一’用户名’@'ip’设置权限,以覆盖之前的权限);grant修改后的权限将覆盖之前的权限!

    别名

    用别名(Alias)来对数据表或者列进行临时命名。重命名是临时的,数据库中表的实际名字并不会改变。
    为表或者列设置别名的方法有两种:

    • 表名or临时表or属性名 as 别名
    • 表名or临时表or属性名+空格+别名

    注意:

    1. 别名只会在本次查询结果中显示,而不会改变表中真实的列名;
      mysql> SELECT number AS 学号 FROM student_info;
      +----------+
      | 学号     |
      +----------+
      | 20180104 |
      | 20180102 |
      | 20180101 |
      +----------+
      6 rows in set (0.00 sec)
      
    2. 在查询语句中,使用别名后,后面的查询就必须用别名,而不能用原来的名字了。

    数据类型

    SQL数据类型

    类型转换

    当某个值的类型与上下文要求的类型不符时,MySQL就会根据上下文环境中需要的类型自动对该值进行类型转换。

    • 类型转换的场景:
    1. 把操作数类型转换为适合操作符计算的相应类型
      1 + 23
      '1' + 23
      '1' + '2'3
      
    2. 将函数参数转换为适合函数的类型
      以拼接字符串的CONCAT函数举例:
      CONCAT('1', '2')'12'
      CONCAT('1', 2)'12'
      CONCAT(1, 2)'12'
      
    3. 存储(insert)数据时,把某个值转换为某个列需要的类型
      CREATE TABLE t (
          i1 TINYINT,
          i2 TINYINT,
          s VARCHAR(100)
      );
      INSERT INTO t(i1, i2, s) VALUES('100', '100', 200);
      
      我们为列i1和i2填入的值是一个字符串值:‘100’,列s填入的值是一个整数值:200,虽然说类型都不对,但是由于自动转型的存在,在插入数据的时候字符串’100’会被转型为整数100,整数200会被转型成字符串’200’,所以最后插入成功。
    • 类型转换的方式:MySQL会尽量把值转换需要的类型。
    1. 类型转换:字符和数字的转换,‘23’ → 23
    2. 类型提升:200存入TINYINT型中,TINYINT变为BIGINT型
    3. 截取部分:如在进行加法计算时,‘23sfd’ → 23

    常见问题

    select 1 和 select null

    • select 1
      select 1 from 中的1是一常量(可以为任意数值),查到的所有行的值都是它,一般是作条件查询用。
      从效率上来说,1>xxx>*,因为不用查字典表。
      1Select n(数字) from table
      得出一个行数和table表行数一样的临时列,每行的列值是我写在select后的数(n)2Select count(n) from table
      得出一个数,该数是table表的行数;
      3Select sum(n) from table
      得出一个数,该数是table表的行数×写在select后的数(n)
    • select null
      与 select 1 相似。只不过返回的列值为 null,且不可以使用count 和 sum 函数

    = 、in 、exists 的区别

    • =
      用于限定某一属性的唯一取值。= 右面的取值不能是一个范围。可以使用 = any 等实现范围限定。
    • in
      当右面接子查询的时候,先运行子查询,在运行上级查询。
    • exists
      当右面接子查询的时候,从上一级查询中依次取出每条元组,判断是否满足子查询。
    代码示例:查询所有未修1号课程的学生姓名
    1、错误示例:(错误原因:一个学生可能选多种课程)
    	SELECT Sname
    	FROM Student,SC
    	WHERE Student.Sno=SC.Sno AND Cno <>'1'
    2、正确写法:
    a.exists
    	SELECT Sname
    	FROM Student
    	WHERE NOT EXISTS
    	(SELECT *
    	FROM SC
    	WHERE Sno = Student.Sno AND Cno=1);
    b.in
    	SELECT Sname
    	FROM Student
    	WHERE sno NOT IN
    	(SELECT Sno
    	FROM SC
    	WHERE Cno==1)
    

    where和having的区别

    wherehaving
    from后表中的所有字段进行筛选,而不能对group by分组后的数据筛选(也就是说只能对返回的查询结果集进行过滤操作select from的结果或者group by分组后的结果进行筛选
    不能使用聚集函数可以使用聚集函数
    • where和having都可以使用的场景:
      select goods_price,goods_name from sw_goods where goods_price > 100
      
      select goods_price,goods_name from sw_goods having goods_price > 100
      
      解释:上面的having可以用的前提是我已经筛选出了goods_price字段,在这种情况下和where的效果是等效的,但是如果我没有select goods_price 就会报错!!因为having是从前筛选的字段再筛选,而where是从数据表中的字段直接进行的筛选的。
    • 只可以用where,不可以用having的情况:
      select goods_name,goods_number from sw_goods where goods_price > 100
      
      -- 报错!!!因为前面并没有筛选出goods_price 字段
      select goods_name,goods_number from sw_goods having goods_price > 100 
      
    • 只可以用having,不可以用where情况:
      select goods_category_id , avg(goods_price) as ag from sw_goods group by goods_category having ag > 1000
      
      -- 报错!!因为from sw_goods 这张数据表里面没有ag这个字段
      select goods_category_id , avg(goods_price) as ag from sw_goods where ag>1000 group by goods_category
      
      注意: where 后面要跟的是数据表里的字段,如果我把ag换成avg(goods_price)也是错误的!因为表里没有该字段。而having只是根据前面查询出来的是什么就可以后面接什么。

    Not null unique和primary key的区别

    DBMS会给primary key建立索引

    drop turncate delete的区别

    • drop
      将表占用的空间全部释放,包括数据和表的定义结构
    • truncate
      一次性地从表中删除所有数据,通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。TRUNCATE TABLE 删除表中的所有行,但表结构及其列、约束、索引等保持不变。
      最直观的是 truncate 之后自增字段是从头开始计数,而delete仍保留着原来的最大数值。
      TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行。但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少。 对于外键(foreignkey )约束引用的表,不能使用 truncate table,而应使用不带 where 子句的 delete 语句
    • delete
      每次从表中删除一行,并且把同时把该行的删除操作作为事务记录在日志中保存,以便进行回滚

    内连接 左连接 右连接 外连接

    假设左表有M行,右表有N行,x=max(M,N),y=min(M.N)

    • 内连接:笛卡尔乘积结果中,满足删选条件的部分,最少0行,最多M×N行(全匹配,即笛卡尔乘积
    • 左连接:内连接(匹配结果)+左表中没有匹配的元组,最少M行,最多M×N行(全匹配)
    • 右连接:内连接(匹配结果)+右表中没有匹配的元组,最少N行,最多M×N行(全匹配)
    • 外连接:内连接(匹配结果)+两表中没有匹配的元组,最少x行,最多M×N行

    MySQL中between and的取值范围

    1、取 1<=x<=100的值,即包含两边的边界值
       between 1 and 100 
    2not  between的范围是不包含边界值
    3、当使用带有日期值的BETWEEN运算符时,为了获得最佳结果,应使用类型强制转换将列或表达式的类型显式转换为DATE类型。
       例如,要获取所需日期为01/01/200301/31/2003的订单,请使用以下查询:
        SELECT orderNumber,
              requiredDate,
              status
    	FROM orders
    	WHERE requireddate
    	    BETWEEN CAST('2003-01-01' AS DATE)
    	        AND CAST('2003-01-31' AS DATE);
      如果是datetime类型,‘2003-01-31’ 会被转成’2003-01-31 00:00:00’类型,就查不出来2003-01-31的数据
    

    char varchar nchar nvarchar

    容量长度编码
    char8000个英文,4000个汉字定长非Unicode
    varchar8000个英文,4000个汉字变长非Unicode
    nchar4000个字符,无论英文还是汉字定长Unicode编码
    nvarchar4000个字符,无论英文还是汉字变长Unicode编码
    • Unicode或非Unicode
      • 占用字节不同
        非Unicode:英文占用1个字节,汉子等需要占用两个字节
        Unicode:所有的字符都用两个字节表示,即英文字符也是用两个字节表示。
      • 适用场景不同
        如果英文与汉字同时存在,占用空间数不同,容易造成混乱,导致读取出来的字符串是乱码
        非Unicode:适合存储纯英文和数字,以节省空间
        Unicode:适合含有中文字符的情况,以防止乱码
    • 定长和变长
      • 占用长度不同:
        定长中,char(10)表示字符长度为10,不满10个补充空格
        变长中,vchar(10)表示最多存储10个字符,实际长度为存储的字符串长度+1(多出的字节用于保存实际使用了多大长度)
      • 存储效率不同:
        定长数据存储效率更高

    通配符和占位符的区别

    • 通配符:在字符串匹配中替代一个或多个字符( 详情
    • 占位符:在SQL语句中代替具体值,执行SQL语句时再接收参数
      • ?:原生JDBC中就有,用来在PreparedStatement中代替传入参数的位置( 详情
      • #{}${}:MyBatis占位符 ( 详情

    参考文献

    https://www.jianshu.com/p/bb19b6b0fdc3 sql语句执行顺序
    http://keep.iteye.com/blog/240665 group by和having/where的区别
    https://segmentfault.com/a/1190000008284099 having/where的区别
    https://www.jb51.net/article/91915.htm grant revoke语句
    https://www.cnblogs.com/kevingrace/p/5719536.html grant revoke语句
    https://blog.csdn.net/liuwengai/article/details/51321198 grant revoke语句
    https://troywu0.gitbooks.io/spark/content/shu_ju_ku_suo_yin.html 索引操作语句
    https://www.yiibai.com/sql/sql-operators.html sql运算符
    https://www.w3cschool.cn/sql/dlwiyfom.html SELECT TOP, LIMIT, ROWNUM
    https://www.cnblogs.com/jiechn/p/3979261.html select 1
    https://blog.csdn.net/lwl20140904/article/details/73882306 select null与select 1区别
    https://blog.csdn.net/jueblog/article/details/9673505 in和exist的区别
    https://blog.csdn.net/lick4050312/article/details/4476333 in和exist的区别
    https://blog.csdn.net/jiuqiyuliang/article/details/10474221 交叉连接
    https://github.com/whlmpower/JavaNote/blob/master/MySQL/SQL%E5%8F%82%E7%85%A7%E6%95%B0%E6%8D%AE%E8%AF%BE%E7%A8%8B%E8%AE%B2%E4%B9%89%E6%A2%B3%E7%90%86.md drop truncate delete 区别
    http://www.manongjc.com/mysql_basic/mysql-between-and-basic.html between and 的边界问题
    https://blog.csdn.net/qq_17011423/article/details/69220231 between and 时间边界问题
    http://www.cnblogs.com/smjack/archive/2008/04/14/1152342.html char、varchar、nchar、nvarchar的区别
    https://www.cnblogs.com/lichang1987/archive/2009/03/04/1403166.html char、varchar、nchar、nvarchar的区别
    https://mp.weixin.qq.com/s?__biz=MzIxNTQ3NDMzMw==&mid=2247483845&idx=1&sn=e52cf475a4b0c24989fd0bce37af2efa&scene=19#wechat_redirect 类型转换

    展开全文
  • 我就废话不说了,大家还是直接看代码吧~create or replace function aa1(a1 integer[],a2 bigint) returns void AS $$declare ii integer;declare num integer; begin II:=2021-01-16 17:49:22条件查询-模糊匹配...

    我就废话不多说了,大家还是直接看代码吧~create or replace function aa1(a1 integer[],a2 bigint) returns void AS $$declare ii integer;declare num integer; begin II:=

    2021-01-16 17:49:22

    条件查询-模糊匹配PostgreSQL和SQL Server的模糊匹配like是不一样的,PostgreSQL的like是区分大小写的,SQL Server不区分。测试如下://构造数据SQLcreate table t_user ( id int

    2021-01-16 17:49:12

    使用背景最近在使用PostgreSQL的时候,在执行一些数据库事务的时候,先后出现了statement timetout 和idle-in-transaction timeout的问题,导致数据库操作失败。经研究查找,Postgr

    2021-01-16 17:48:58

    今天整理了下 postgresql 几个 timeout 参数select version(); version ---------------------------------------------

    2021-01-16 17:48:43

    1.查看参数文件的位置使用show 命令查看,比较常用的show config_file.此还可以查看pg_settings数据字典.test=# show config_file; config_file ------------------

    2021-01-16 17:48:32

    查询Linux服务器配置在进行性能调优之前,需要清楚知道服务器的配置信息,比如说 CPU,内存,服务器版本等信息。查询系统版本信息root@ubuntu160:~# lsb_release -aNo LSB modules

    2021-01-16 17:48:17

    一般变量使用我们都是放在函数里面,这里开发需求,要在SQL直接使用变量,方便查找一些问题,比如时间变量,要根据时间进行筛选这里有三种方法可以实现1.psql命令使用变量表数据如下:h

    2021-01-16 17:48:03

    0 前言1、2部分是对XLOG生成和清理逻辑的分析,XLOG暴涨的处理直接看第3部分。1 WAL归档# 在自动的WAL检查点之间的日志文件段的最大数量checkpoint_segments = # 在自动WAL检

    2021-01-16 12:21:49

    一、验证postgresql增量合并的方案结果:没有有效可行的增量合并方案,暂时放弃二、梳理postgresql基于wal的增量备份物理备份与还原适用于跨小版本的恢复但是不能跨平台逻辑备

    2021-01-16 12:21:39

    os: centos 7.4db: postgresql 9.6切换log:select pg_rotate_logfile();切换xlog:select pg_switch_xlog();补充:postgresql流复制主从切换+resetxlog主 192.168.3.46从 192.16

    2021-01-16 12:21:25

    create user的语法CREATE USER name [ [ WITH ] option [ ... ] ] where option can be: SUPERUSER | NOSUPERUSER | CREATEDB | NOCREATEDB | CREATEROLE | NOCREATEROLE

    2021-01-16 12:21:00

    创建RoleCREATE USER PASSWORD '';赋予权限赋予database所有权限GRANT ALL ON DATABASE TO ;赋予只读权限 (不能再db lev

    2021-01-16 12:20:00

    PostgreSQL中定时job执行业务分析近期项目需要定期清理数据库中的多余数据,即每月1号删除指定表中一年以上的数据。初步分析这种定时job可以使用一下两种技术实现:Linux的cron

    2021-01-16 12:19:48

    查询出的数据自定义url字段并赋值select id,name,'/index/' url from table_name补充:postgresql 判断是空的_postgresql 数字类型存空值或null值、字段查询处理1、存储数字

    2021-01-16 12:19:23

    我就废话不多说了~select name,price from odoo_sale;select name,COALESCE(price, 0) from odoo_sale;补充:postgresql查询某列的最大值时,对查询结果为空做默认为0的处理实

    2021-01-16 12:19:11

    kubernetes部署redis数据库(单节点)redis简介Redis 是我们常用的非关系型数据库,在项目开发、测试、部署到生成环境时,经常需要部署一套 Redis 来对数据进行缓存。这里介绍下

    2021-01-16 12:15:07

    在项目中我们常会对数据进行去重处理,有时候会用in或者EXISTS函数。或者通过group by也是可以实现查重不过Postgresql还有自带去重函数:distinct下面是distinct 的实例:1、创建

    2021-01-16 12:14:24

    大家在初学数据库时,对DQL中的连接查询是否有些疑惑,不知道什么时候什么场景下该用那种连接查询?

    不要着急,接下来由我来给大家介绍一下,本人对内连接、左外连接、右外连接的特

    2021-01-15 20:37:23

    oracle锁表查询和解锁方法:1、使用常用的PL/SQL Developer 连接并操作oracle数据库。2、比如常用的select for update语句就会锁表。select * from table_name for update;3

    2021-01-15 20:35:34

    前言

    近日在做一个报表功能里面有一个这样的需求是统计各部门在某一月入职和离职的人数我的步骤先查出入职的人数SELECT dept ,COUNT(1) rcNumber FROM 员工表 WHERE ( 入职

    2021-01-15 20:13:08

    前言关于inner join 与 left join 之间的区别,以前以为自己搞懂了,今天从前端取参数的时候发现不是预想中的结果,才知道问题出在inner join 上了。需求是从数据库查数据,在前端

    2021-01-15 20:09:26

    Mysql安装测试数据库employees1.下载employees测试数据库文件2.Ubuntu环境安装3.windows下安装1.下载employees测试数据库文件官网下载:employees官网下载2.Ubuntu环境安

    2021-01-14 18:48:22

    今天我们来看看Redis.conf的配置项都有什么作用,想用好一个工具,配置内容是基础。daemonize no

    Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程

    2021-01-14 18:46:02

    文章目录Oracle下载Oracle安装SQL Developer下载(图形化程序)Oracle下载注意:关闭杀毒软件,360、金山毒霸等等,避免因为禁止修改权限造成无法安装的问题。

    官网下载地址:链接

    2021-01-14 18:45:08

    点击 SQL(查询)选项卡。在窗口底部考左有一个控制台 选项卡 如图:默认情况下它不会被展开,点击它就会展开历史记录鼠标移上去后 还有 各种选项

    2021-01-14 18:36:52

    开门见山1、备份的语句能执行

    2、创建一个检单bat脚本能执行

    3、把备份的语句放到bat 脚本里面示例@echo off echo 正在备份 Oracle 数据库,请稍等…… set expname=%date:~0

    2021-01-14 18:06:10

    我们在操作表的时候难免会遇到误删除,或者删掉的数据还想恢复的情况。也许细心的朋友会用begin tran rollback/commit 这种事务来避免出现失误,但这并不是最保险的。如果提交

    2021-01-14 18:05:52

    一、MySQL安装包下载官网地址:https://dev.mysql.com/downloads/mysql/下载步骤:过滤操作系统版本选择归档安装包下载后,上传并md5校验安装包是否与上图官方提供的值一致,确保传

    2021-01-14 18:04:11

    本文导读:删除表中的数据的方法有delete,truncate, 其中TRUNCATE TABLE用于删除表中的所有行,而不记录单个行删除操作。TRUNCATE TABLE 与没有 WHERE 子句的 DELETE 语句类似;

    2021-01-14 17:25:52

    发现问题在oracle中,in的最大条数是1000条,当超过1000条就会报错:oracle in长度限制的解决方法,将列转为行 但是字符串又会有长度限制,所以参考方法二方法一:SELECT REGEXP_SUBSTR

    2021-01-14 17:17:17

    展开全文
  • SQL数据库常用语句大全

    千次阅读 2020-02-13 14:49:55
    数据库常用语句 以管理员身份运行命令提示符环境,启动数据库服务(其中MySQL57为数据库服务名,查找方法:右键我的电脑->管理->服务,):net start MySQL57 关闭数据库服务:net stop MySQL57 启动MySQL...
  • 达梦数据库查询语句

    千次阅读 2020-05-07 18:09:24
    DMSQL简介 DM_SQL语言是一种介于关系代数与关系演算之间的语言,其功能主要包括数据定义、 查询、操纵和控制四个方面,通过各种不同的SQL语句来实现。按照所实现的功能,DM_SQL 语句分为以下几种:...数据库安全语句...
  • 常用的Mysql数据库操作语句大全

    万次阅读 多人点赞 2018-01-05 09:42:16
    用户管理:  1、新建用户:  >CREATE USER name ... 2、更改密码:  >SET PASSWORD FOR name=PASSWORD(‘fdddfd’);  3、权限管理  >SHOW GRANTS FOR name; //查看name用户权限  >GRANT SELECT ON
  • MySql数据库基本语句

    千次阅读 2019-04-09 23:07:21
    一,DML语句之Delete(删除) 格式:delete from 表单名; 其后可以增加where条件限制,order by排序,limit限制 例如:delete from employee where name=‘ls’; 删除表中名字为李四的记录。 还有一个删除是...
  • 数据库SQL语句期末总复习

    千次阅读 2021-12-13 10:10:26
    SQL语句的分类 DDL(数据定义语言):create、drop、alter对表结构进行增删改 DQL(数据查询语言):select查询语句 DML(数据操作语言):insert、delete、update对表中数据进行增删改 DCL(数据控制语言):grant、revoke...
  • 数据库语句的学习数据库的安装数据库的操作语句1.创建数据库2.查看数据库3.修改数据库属性(数据库的名字不能修改)4.删除数据库对表格的操作语句1.创建表2.查看表3.修改表(数据库的名字不能修改)4.删除表对数据的...
  • 用于操作数据库的SQL一般分为两种,一种是查询语句,也就是我们所说的SELECT语句,另外一种就是更新语句,也叫做数据操作语句。言外之意,就是对数据进行修改。在标准的SQL中有3个语句,它们是INSERT、UPDATE以及...
  • MYSQL 数据库的常用语句

    万次阅读 多人点赞 2018-01-05 08:28:34
    一 、常用操作数据库的命令 1.show databases; 查看所有的数据库 2.create database test; 创建一个叫test的数据库 3.drop database test;删除一个叫test的数据库 5.show tables; 在选中的数据库之中查看所有的表 ...
  • 数据库sql语句常见面试题

    千次阅读 2018-11-15 12:13:15
    (3)防止sql注入,对特殊字符进行转义、过滤或者使用预编译的sql语句绑定变量。 (三)、简单描述MySQL中,索引,主键,唯一索引,联合索引的区别,对数据库的性能有什么影响。 --索引是一种特殊的文件(InnoDB...
  • 数据库MySQL——SQL语句(命令)

    千次阅读 2021-01-20 00:01:49
    SQL语句分类DCL (Data Control Language):数据控制语言;用来管理用户及权限DDL(Data Definition Language):数据定义语言;用来定义数据库对象:库,表,列等DML(Data Manipulation Language):数据操作语言;用来...
  • 数据库常用建表语句

    千次阅读 2018-08-15 16:17:00
    Mysql数据库 常用操作语句 2017年09月16日 12:17:11 阅读数:629 用户管理:  1、新建用户:  >CREATE USER name IDENTIFIED BY 'ssapdrow';  2、更改密码:  >SET PASSWORD FOR name=PASSWORD('fdddfd');...
  • 科学前沿 159 1 SQL语句优化的必要性及目的 近年来,科技发展速度加快,数据库规模也在不断扩大,其运行速度已成为影响管理信息系统运行效率的重要因素。而SQL语句优化,则是提高其运行效率的重要措施。针对大规模...
  • SQL语句数据库增加、删除、修改、查询

    万次阅读 多人点赞 2019-01-09 21:38:29
    1、查询全部: *select * from table1;...3、查询某一列不同: *SELECT DISTINCT COLUME1 FROM TABLE1;* 4、过滤筛选: 1)select * from table1 where colume1=‘XXX’; 2)...
  • 在SQL中,insert、update、delete和select后面都能带where子句,用于插入、修改、删除或查询指定条件的记录 SELECT column_name FROM table_name WHERE column_name 运算符 value 语句:select * from table_name ...
  • MySQL数据库:sql语句的执行

    千次阅读 2018-10-24 16:50:12
    0. 基础 MySQL mysql-8.0.12-win64bit Navicat Premium navicat120_premium_cs_x64 系统 Windows7-64bit-旗舰版 ...MySQL数据库安装配置 ...1. 利用Navicat Premium操作MySQL数据库 查看MySQL...
  • MySQL数据库增删改查SQL语句查看数据库1show databases;使用数据库1use 数据库名;创建数据库1CREATE DATABASE 数据库名;创建表1create table 表名( 列名1 类型(长度) [约束], 列名2 类型(长度) [约束], ……);长度...
  • Oracle数据库基本语句笔记

    千次阅读 2020-07-15 10:33:51
    分类 DML(data manipulation language) 它们是select、update、insert、delete,这四条是用来对数据库里的数据进行操作的语言 DDL(data definition language) ...是用来设置或更改数据库用户或角色权限
  • 数据库 sql语句优化

    千次阅读 2017-09-22 14:17:37
    数据库 sql语句优化   ---------------------------------------------...1) 如果你同时从同一客户插入很行,使用表的INSERT语句。这比使用分开INSERT语句快(在一些情况中几倍)。 Insert into test values
  • 数据库SQL语句的使用

    千次阅读 2018-09-21 09:54:55
    1、创建SQL语句 DDL语句 MySQL命令行参数: Usage: mysql [OPTIONS] [database] //命令方式 -?, --help //显示帮助信息并退出 -I, --help //显示帮助信息并退出 --auto-rehash //自动补全功能,就像linux里面...
  • 经典的数据库查询语句大全

    千次阅读 2015-04-14 14:24:05
    (转)经典SQL查询语句大全 (2011-05-25 21:49:10)转载▼ 标签: 杂谈 一、基础 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server ...
  • 数据库基本_SQL语句大全

    万次阅读 多人点赞 2017-05-23 14:27:45
    mysql教程 ■ 在DOS命令行启动MYSQL服务: net start mysql ■在DOS命令行停止MYSQL服务: net stop mysql ■查看被监听的端口: ...■创建数据库用户:只有根用户(root)才有创建新用户的权限 CREATE USER u
  • MYSQL数据库常用语句

    2017-02-03 18:30:40
    数据库复习 趁着放假时间,复习一下数据库的使用。目标: 1. 提高自己的工作效率。 2. 拓宽自己的数据库设计和优化思路。 3. 探索并补充新的知识。 数据库命令列表 连接、查看数据库相关 命令 用途...
  • MySQL(4) 数据库增删改查SQL语句(整理集合大全)

    万次阅读 多人点赞 2018-09-19 19:07:43
    查看数据库 show databases; 使用数据库 use 数据库名; 创建数据库 CREATE DATABASE 数据库名; 删除数据库 DROP DATABASE 数据库名; 创建表 create table 表名( 列名1 类型(长度) [约束], 列名2 ...
  • MySQL数据库基础语句---增删改查

    千次阅读 2020-06-11 14:19:21
    修改数据 update 表名 set 列名1 = 1,列名2 = 2,.....[where 条件]; 删除数据 delete from 表名 [where条件]; 查询数据 1.语法 select * from 表名; select 字段列表 from 表名列表 where 条件列表 group ...
  • 公司帐套太,有时候升级一个小更新语句,也需要一个一个手动执行,特别耗时。 可利用sqlserver 数据库名.dbo.表名进行批量升级。 NGSoft.dbo.ngusers表中存储着所有帐套的名字,直接从ngusers里面拉取帐套结果集...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 132,881
精华内容 53,152
关键字:

数据库修改语句多过滤值

友情链接: qeihye006.rar