《MySQL必知必会》读书笔记(一) 1~7章

一、模式 一种理解是关于数据库和表的布局及特性的信息; mysql

            另外一种理解是数据库的同义词。 sql

二、关于主键 数据库

表中任何列均可以做为主键,只要它知足如下条件: 安全

  • 任意两行都不具备相同的主键值;
  • 每一个行都必须具备一个主键值(主键列不容许NULL值)。

主键一般定义在表的一列上,但这不是必需的,也能够一块儿使用多个列做为主键。在使用多个列做为主键时,上述条件必须应用到构成主键的全部列,全部列值的组合必须是惟一的(但单个列的值能够不惟一)。 服务器

除强制规则外,应该坚持的几个广泛承认的好习惯: 布局

  • 不更新主键列中的值;
  • 不重用主键列的值;
  • 不在主键列中使用可能会更改的值。

三、mysql命令参数 spa

-u用户名,-h主机名,-P端口号,-p输入密码。 调试

四、选择数据库  排序

use 数据库名 开发

五、show命令

  • show databases;
  • show tables;
  • show columns from 表名;与describe 表名;相同
  • show status; 显示服务器状态信息
  • show create database 库名; 和show create table 表名; 分别用来显示建立库或表的sql语句
  • show grants;显示用户的安全权限
  • show errors 和 show warnings 显示服务器错误或警告

六、SQL语句不区分大小写,许多SQL开发人员喜欢对全部SQL关键字使用大写,对全部列和代表使用小写,这样作⑩代码更易于阅读和调试。

七、select语句

  • 检索单列 select 列名 from 表名;
  • 检索多列 select 列名1,列名2 from 表名;
  • 检索全部列 select * from 表名;
  • 检索不一样的行(惟一的行) select distinct 列名 from 表名;distinct关键字应用于全部列而不只是前置它的列,即select distinct 列名1,列名2 from 表名;表示列名1和列名2组合起来不一样;
  • 限制结果 select 列名 from 表名 limit num; 返回结果很少于num行;select 列名 from 表名 limit num1, num2;返回结果从num1行开始,很少于num2行。行号从0开始。也能够写为select 列名 from 表名 limit num2 offset num1。

八、排序检索数据

select 列名 from 表名 order by 列名;默认为升序(ASC),若是指定降序则为 select 列名 from 表名 order by 列名 DESC; 

按多个列排序 select 列名 from 表名 order by 列名1,列名2。排序方向DESC只对前置它的列有效。

对文本性数据排序时,MySQL默认不区分大小写。

order by子句应保证它位于from子句以后,若是使用limit,它必须位于order by以后。同时使用order by和where子句,order by应在where以后。

九、

where子句中使用的条件,若是将值与串类型的列进行比较,则须要限定引号;

使用between时必须制定两个值,所需范围的低端值和高端值,这两个值必须用and分隔,between匹配范围中全部的值,包括开始值和结束值。

能够用is null匹配空值。注意在经过过滤选择出不具备特定值的行时,具备NULL值的行不会被匹配。

OR的优先级小于AND。

相关文章
相关标签/搜索