MySQL《必知必会》笔记 一

第 1 章

涉及名词

  • database(数据库) , 保存有组织的数据的容器
  • DBMS , 数据库管理软件, 通过 DBMS 管理 database
  • table(表), 储存 同一类型 / 一个清单 的数据
  • schema(模式), 关于数据库和表的布局和特性的信息
  • column(列), 表中的一个字段, 通过列组成表
  • row(行), 每一行表示一个记录
  • primary key(主键), 用于唯一区分表中每个行, 需满足: 非空, 唯一
    • 建议: 主键值不会更改, 不重用

SQL 语句特点

  • 结束用” ; “
  • 不区分大小写
    • 建议: 关键词使用大写
  • 所有空格都是被忽略的

第 2 章

  • 介绍如何连接和登录到 MySQL
  • 如何执行 Sql 语句
  • 如何获取数据库和表信息

1. 连接和登录

  • 需要用到: 主机名, 端口, 用户名, 密码 (如果有的话)
  • mysql -u 用户名 -p ( -h 登录的主机ip -P 端口号 ) 括号里表示可以不用

2. 数据库基本操作

  • 使用” test “数据库:
    • use test;
    • 输出Database changed
  • 显示所有数据库和表:
    • show databases;
    • show tables;
  • 显示” customers “表的列信息
    • show columns from customers;
    • 快捷语句:describe customers;
  • 其他 show 语句
    • show grants;, 显示用户安全权限
    • show errors;, 显示服务器错误信息

第 3 章

  • 介绍 select 从表中检索一个或者多个列

检索列

  • 检索单列: products 里检索 pro_name 列内容
    • select pro_name from products;
  • 检索多列: products 里检索 3 列内容: 使用 , 分开
    • select pro_name, pro_id, pro_price from products;
    • 检索所有列: select * from products;

检索时候的条件

  • distinct, 检索的时候不想出现重复值, 可以使用 distinct 修饰检索列
    • 栗子: 检索出所有的供应商 id
      • select distinct ven_id from products;
    • distinct 应用于所有列!, 不能被部分使用!
  • limit s,n, 用来限制检索输出的数量, s(start) 为起始行, n(num) 为检索行数
    • 显示结果不多余 5 行 : select pro_name from products limit 5;
    • 显示结果从行 5 开始, 显示 6 行: select pro_name from products limit 5,6;
    • mysql5 开始的代替语法:: select pro_name from products limit 6 offset 5;
    • 第一行为行 0!!
  • 全限定列名
    • 多表查询的时候使用全限定列名, 使得 sql 语句更加明了
    • 检索 products 的 pro_name 列:
      • select products.pro_name from test.products;
  • order by , 排序输出结果, 默认排序为升序
    • 检索结果按照单个列, pro_name 排序
      • select pro_name from products order by pro_name
    • 检索结果按照多个列, pro_price, pro_name 排序, 先排序 pro_name, 再按照 pro_price
      • select pro_name from products order by pro_price, pro_name;
    • 按多个列排序的意义 (上面的栗子): 不同厂商生产的产品可能会有相同的名字和不同的价格, 按这两个排序可以得到同名商品下价格比较
    • 找出价格最高的商品: 使用 DESC 来降序排序
      • select pro_price, pro_name from products order by pro_price DESC;

第 4 章

  • 过滤数据 WHERE

where 字句

  • 找出 products 里价格为 2.5 的记录
    • select pro_name, pro_price from products where pro_price = 2.5;
    • where 位于 order by 的前面
  • 操作符: 比如大于小于不等于等等
    • =, !=, <,
    • between : 特定两个值之间
    • select pro_name, pro_price from products where pro_price <9; 列出价格小于 9 的商品
    • select pro_name, pro_price from products where pro_price between 5 and 10; 列出价格在 [5,10] 之间的商品
    • select pro_name, pro_price from products where pro_price is null; is null 来检测有没有空值

组合 where 字句

  • 列出 1003 制造的而且价格小于等于 9 的商品, and 表示两个条件都要满足
    • select pro_id, pro_name, pro_proce, where ven_id = 1003 and pro_price <=9;
  • 列出 1003 制造的或者价格小于等于 9 的商品, or 表示两个条件满足一个就行
    • `select pro_id, pro_name, pro_proce, where ven_id = 1003 or pro_price <=9;
  • 组合使用 and 和 or 列出 1002 和 1003 制造的价格小于等于 9 的 shang, 使用括号
    • select pro_id, pro_name, pro_proce, where (ven_id = 1003 or ven_id = 1002) where pro_price <=9;

in 操作符

  • IN 表示条件范围, 匹配括号里的每个条件
  • 列出 1002, 1003 制造的所有商品, 按照价格排序
    • select pro_id, pro_name, pro_proce, where ven_id in(1003,1002) order by pro_price ;
  • not 操作符, 用于否定他之后的条件
  • 列出 ** 非 **1002, 1003 制造的所有商品, 按照价格排序

    • select pro_id, pro_name, pro_proce, where ven_id not in(1003,1002) order by pro_price ;

LIKE + 通配符

  • % 表示任意字符的任意次数: 一下为列出 je 开头的商品
    • select pro_price, pro_name from products where pro_name like ' je% ';
  • **_ 表示匹配单个字符 **a
  • 使用通配符技
    • 通配符比较影响性能
    • 不要用于开始处
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值