0%

数据库操作(一)—— 基础篇

基础操作(1~8 章)

1、数据库 database:保存有组织数据的容器

2、表 table:特定类型数据的结构化清单

3、行 row /record:表中的一个记录

4、主键 primary key:每一行中可以唯一标识自己的一列

  • 前提:任意两行不具有相同值、每行必须具有一个主键值

  • 习惯:主键值不更新 不重用,不在主键使用可能会更改的值

5、关键字 key word:作为一个保留字

键入

1、书写习惯

  • 命令行用分号;结尾多条语句也需用分号分割

  • 对于关键字:使用大小写均可,全用大写并分成多行,易于阅读、调试

  • 在选择多个列时,一定要在列名之间加上逗号吗,但最后一列不加

2、使用数据库: USE 数据库名

显示:SHOW 语句

  • SHOW DATABASES:显示所有数据库列表

  • SHOW TABLES:显示某个库内所有表的列表

  • SHOW COLUMNS FROM:表名显示某个库内所有列的列表

    • 快速写法:DESCRIBE 表名
  • SHOW STATUS:显示广泛的服务器信息

  • SHOW CREATE DATABASE / TABLE:显示创建的特定数据库或表表示的 Mysql 语句

  • SHOW GRANTS:显示授权用户的安全权限

  • SHOW ERRORS / WARNINGS:显示服务器的错误或警告信息

选择:SELECT 语句

  • SELECT 列名 FROM 表名:检索,输出的是未排序数据

  • SELECT * FROM 表名:检索所有列

    • 给定 * 通配符,则返回表中所有列,而且可检索出未知列;但滥用会降低效能
  • SELECT DISTINCT 列名:只返回唯一(去重)的行

  • SELECT 列名 FROM 表名 LIMIT 行数:检索指定的行数

    • SELECT 列名 FROM 表名 LIMIT 开始行 行数:检索指定从行号为第一个值的位置开始的行数
    • 替代语法:SELECT 列名 FROM 表名 LIMIT 行数 OFFSET 开始行
  • SELECT 表名。列名 FROM 表名:完全限定的列名

排序

1、子句:一个关键字和所提供的数据组成

2、ORDER BY 语句

  • SELECT 列名 FROM 表名 ORDER BY 子句名:以字母顺序排序数据的 ORDER BY 子句

  • SELECT 列名 FROM 表名 ORDER BY 子句名 1 子句名 2 ……

  • SELECT 列名 FROM 表名 ORDER BY 子句名 DESC:降序排列

  • SELECT 列名 FROM 表名 ORDER BY 子句名 1 DESC 子句名 2:子句 1 降序 2 升序

    • 即:DESC 只应用到直接位于其前面的列名
    • ASC asending:默认的情形就是升序,略
  • SELECT 列名 FROM 表名 ORDER BY 子句名 LIMIT 行数:按升序显示表中数据指定列子句的指定行数

过滤:

1、通配符 wildcard:用来匹配值的一部分特殊字符

  • Mysql 中使用通配符:LIKE 操作符指示,LIKE 是 * 谓词(predicate)

2、搜索模式:由字面值、通配符或两者组合构成的搜索条件

3、WHERE 子句

  • SELECT 列名 FROM 表名 WHERE 数据 =(<= />= / > / <) 该指定值:只返回指定值的行

  • 同时使用 ORDER BY:需要让 ORDER BY 位于 WHERE 之后

  • 不匹配检查:SELECT 列名 FROM 表名 WHERE 数据 <> 值(效果同!=)

  • 范围值检查:SELECT 列名 FROM 表名 WHERE 数据 BETWEEN 值 1 AND 值 2

  • 空值检查:SELECT 列名 FROM 表名 WHERE 数据 IS NULL

  • 多限定条件:SELECT 列名 FROM 表名 WHERE 数据 = 值 1 AND 数据 <值 2 OR 数据> 值 3

    • 优先处理 AND 操作符
  • 范围选取:SELECT 列名 FROM 表名 WHERE 数据 IN (值 1,值 2)

    • 完成与 OR 相同的功能
    • 直观易管理
    • 运行更快
    • 可包含其他 SELECT 语句,动态创建 WHERE 子句
  • 否定:SELECT 列名 FROM 表名 WHERE 数据 NOT IN (值 1,值 2) ORDER BY 子句名

    • 常用于 IN 的复杂句式中取反
  • 通配符操作:SELECT 列名 FROM 表名 WHERE 数据 LIKE ‘_字符串 %’

    • % 用于表示接受字符串后续的任意字符
      • ‘% 字符串 %’则表示任何位置的匹配
      • ‘字符串 1% 字符串 2’则表示字符串 1 开头、字符串 2 结尾的匹配
      • 注意当存在空格时, ‘% 字符串’不会匹配
      • NULL 任何情况均不会被匹配
    • _只匹配单个字符
    • 通配符的弊端:耗时较长(尤其位于起始处) 使用容易出错