数据库进阶

limit(TOP子句)

用于规定要返回的记录的数目
  并非所有的数据库系统都支持 TOP 子句,mysql里面是用limit

  • 语法
    SELECT 列名称 FROM 表名称 LIMIT 返回的数目

like

用于在where子句中搜索列中的指定模式

  • 指定开始字母
    WHERE City LIKE ‘a%’
  • 指定结束字母
    WHERE City LIKE ‘%g’
  • 指定包含部分内容
    WHERE City LIKE ‘%g%’
  • 语法
    SELECT 列名称 FROM 表名称 WHERE 列名称 LIKE 模式
      模式是指通配符表达式

通配符

在搜索数据库中的数据时,SQL 通配符可以替代一个或多个字符。
SQL 通配符必须与LIKE运算符一起使用。

  • 常见通配符
    % 代替一个或多个字符
    _ 只代替一个字符
    [字符列表] 字符列中的任何单一字符
    [^字符列表] 或[!字符列表] 不在字符列中的任何单一字符
  • 例如
    LIKE ‘%2018%’
    LIKE ‘1_3
    LIKE ‘[ALN]%’ 以A或L或N开头
    LIKE ‘[^ALN]%’ 不以A或L或N开头

in

in操作符可以在where子句中规定多个值

  • 语法
    SELECT 列名称 FROM 表名称 WHERE 列名称 IN (值1,值2,…)

between

在where子句中使用,选取介于两个值之间的数据范围】
这些值可以是数值、文本或者日期。

  • 语法between…and…
    SELECT 列名称 FROM 表名称 WHERE 列名称 BETWEEN 值1 AND 值2
  • 注意:
    and前后的是否包含,不同数据库处理不同。
    显示两个值范围外的值 NOT BETWEEN … AND …

alias(AS)

可为列名称或表名称指定别名

  • 语法
    SELECT 列名称 AS 别名 FROM 表名称 AS 别名
    关键字AS,可以省略不写

join

详见<07>join

union、union all

用于合并两个或多个select语句的结果集

  • 语法
    SELECT 列名称 FROM 表名称
    UNION
    SELECT 列名称 FROM 表名称
  • 注意
    • UNION内部的SELECT语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条SELECT语句中的列的顺序必须相同。
    • 默认地,union操作符选取不同的值,如果允许重复的值,请使用union all
      union结果集中的列名总是等于union中第一个select语句中的列名
    • UNION 结果集中的列名总是等于 UNION 中第一个 SELECT 语句中的列名

select into

用于创建表的备份复件

  • 从一个表中选取数据,然后把数据插入另一个表中
    • 语法
      SELECT 列名称 INTO 新表名称 FROM 旧表名称 WHERE 条件
  • 常用于创建表的备份复件或者用于对记录进行存档
    • 语法
      创建备份复件
      SELECT 列名称 INTO 新表名称 FROM 旧表名称
    • in子句可用于向另一个数据库中拷贝表
      SELECT 列名称 INTO 新表名称 IN ‘Backup.mdb’ FROM 旧表名称

create database

用于创建数据库

  • 语法
    CREATE DATABASE 数据库名

create table

  • 用于创建数据库中的表
    CREATE TABLE 表名称(列 数据类型 , 列2 数据类型2, …)
  • 数据类型在这里插入图片描述

约束(constaints)

详见<06>约束

create index

用于在表中创建索引,可以提升查询速度

  • 注意
    用户无法看到索引,它们只能被用来加速搜索/查询
    更新一个包含索引的表需要比更新一个没有索引的表更多的时间,这是由于索引本身也需要更新。因此,理想的做法是仅仅在常常被搜索的列(以及表)上面创建索引
  • 语法
    • 允许重复值
      CREATE INDEX 表名 ON 表名(规定需要索引的列名)
    • 不允许重复值
      CREATE UNIQUE INDEX 表名 ON 表名(规定需要索引的列名)
      唯一的索引意味着两个行不能拥有相同的索引值。

drop

用于删除索引、表和数据库

  • 语法
    • 删索引
      ALTER TABLE table_name DROP INDEX index_name
      ALTER TABLE 语句用于在已有的表中添加、修改或删除列
    • 删除列
      ALTER TABLE 表名 DROP COLUMN 列名
    • 删表
      DROP TABLE 表名称
    • 删数据库
      DROP DATABASE 数据库名称
    • 删表的内容,不删表
      TRUNCATE TABLE 表名称

alter table

用于在已有的表中添加、修改和删除列

  • 语法
    • 增加列
      ALTER TABLE 表名 ADD 列名 数据类型
    • 删除列
      ALTER TABLE 表名 DROP COLUMN 列名
    • 改变表中列的数据类型
      ALTER TABLE 表名 ALTER COLUMN 列名 数据类型

AUTO INCREMENT

  • 在新纪录插入表中时生成一个唯一的数字
  • 可用于自动创建主键字段的值
  • 默认开始值为1,每次自动加1
  • 要让 AUTO_INCREMENT 序列以其他的值起始
    ALTER TABLE 表名 AUTO_INCREMENT=开始值

VIEW视图

视图是可视化的表

DATE函数

MySQL 中最重要的内建日期函数
在这里插入图片描述

NULL

  • NULL 值是遗漏的未知数据,默认地,表的列可以存放 NULL 值。
  • 如果表中的某个列是可选的,那么我们可以在不向该列添加值的情况下插入新记录或更新已有的记录。这意味着该字段将以 NULL 值保存。
  • NULL 值的处理方式与其他值不同。
    NULL 用作未知的或不适用的值的占位符。
    无法比较 NULL 和 0;它们是不等价的。
    无法使用比较运算符来测试 NULL 值,比如 =, <, 或者 <>。
    我们必须使用 IS NULL 和 IS NOT NULL 操作符。
  • 始终使用 IS NULL 来查找 NULL 值
    SELECT * FROM 表名 where 列 IS NULL

NULL 函数

作用:都是将null转换为一个可以计算的数值。
分类:

  • ISNULL()
  • NVL() (nvl—转换空值)
  • IFNULL() (mysql中使用)
    用法:IFNULL(UnitsOnOrder,0)
  • COALESCE() (mysql中使用) (coalesce—合并)
    用法:COALESCE(UnitsOnOrder,0)

数据类型

详见<05>MySQL数据类型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值