欢迎光临散文网 会员登陆 & 注册

数据库 二

2023-03-04 22:50 作者:泡椒芝士plus  | 我要投稿

一 基础语法

1.select xx:数值类xx可以直接做四则运算

2.别名as:列名 select xx from food as aaaa(新列名中间有空格加引号,不分单双)

3.Distinct去重:select distinct

4.运算符:<,<=,>,>=,!=,<>

5.默认日期格式:'1900-01-01'

6.where 可以接 not,四则远算

7.or:等价于使用多个or条件

8.between:逻辑等同于范围闭区间,时间要打引号

9.like: 匹配符,

'%':代表任意形式、任意长度的字符,如'%b','%b%'

'_':代表一个未知字符

多个值:一个 列表名 +like后面加一个,不能直接like+'xx' or 'xx'

  1. regexp(正则表达式):like '%xx%' = regexp 'xx'

    1.'^':如'^zhao'代表这个字符串以'zhao'作为开头

    2.'$':如'yun$'代表这个字符串以'yun'作为结尾

    3.'|':类似or,同时进行多个搜寻,'^zhao|qian|sun|li',符号互相独立

    4.[gim]e:意味着[]内任何一个单字符匹配e寻找,如ge、ie、me,也可以是e[gim]

    5.[a-z]e:支持26个字母

  2. Null:代表对象的内容为空,可以赋给任何对象,但空格代表一个对象实例,代表这是一个长度为0的空字符串

  3. order by :desc:降序 ASC:升序(不加默认)

  4. limit:limit a,b (a:偏移量,跳过) (b:提取的数量,跳过前a条,提取第a条后的b条数据)

二 连接

1.内连接(inner join):查找两表相同项,但不同项不显示

2.跨数据库连接:当前使用的表不需要加前缀,另一个未使用的数据库表前面加数据库名

3.自连接:自己连接自己

4.多表连接:将多个表使用多个join on 连接,join后跟表名,on后跟条件,两两相连相同列。

5.复合连接查询:复合主键符合条件,要将复合主键的列都加入条件

6.隐式内连接:没有join on,采用from + 表一+表二+where的形式

7.外连接:

1.左外连接:左表的一切与右表的交集,没有对应的部分用空来补齐

2.右外连接:右表的一切与左表的交集,没有对应的部分用空来补齐


img

8.自外连接:采用左连接,因为左连接不管有没有那一项的数值,都会显示出来,内连接只显示共有的项

9.using简化查询:using(id,name)=  on (a.id = b.id) and a.name = b.name

10.自然连接:数据库自动判断并搜索共有列:nature join

11.交叉连接(笛卡尔积):两个集合的元素依次组合,a={1,2} b={3,4,5} 笛卡尔积:{(1,3),(1,4),(1,5),(2,3),(2,4),(2,5)}

表现形式:显式:cross join 没有on    隐式:去掉join和where

12.联合Union:行与行之间结合成新的表,查询列名数量必须一致,列名以首个列名命名

三 插入数据

1.Insert into xx values (default,'x','xx','1990-01-01') default(默认)

2.复制表:create table xx as  (select .....),但没有表性质,如主键

3.更新单行:update + set

4.更新多行:update+set+where+in

5.删除行:delete xx from xxx where

四 聚合函数

1.MAX():跟在select后面,里面可以跟四则运算

2.MIN()

3.SUM()

4.COUNT():只返回有记录的值  count(*):所有记录不管是否为空

5.AVG:

6.group by:数据分组,必须要把该分组的都分组,比如只分日期,那么不同类型但同日期的只会显示一个

7.having:配合聚合函数使用,对聚合函数项进行筛选,即分组后筛选,where只能在分组前筛选,group 后面一般跟select的字段

8.rollup:只能用于聚合值的列,with rollup:出现新的一列汇总值

9.子查询:select、from、where后面都可以跟子查询


数据库 二的评论 (共 条)

分享到微博请遵守国家法律