1、模式 一种理解是关于数据库和表的布局及特性的信息;
另一种理解是数据库的同义词。
2、关于主键
表中任何列都可以作为主键,只要它满足以下条件:
任意两行都不具有相同的主键值;
每个行都必须具有一个主键值(主键列不允许NULL值)。
主键通常定义在表的一列上,但这不是必需的,也可以一起使用多个列作为主键。在使用多个列作为主键时,上述条件必须应用到构成主键的所有列,所有列值的组合必须是唯一的(但单个列的值可以不唯一)。
除强制规则外,应该坚持的几个普遍认可的好习惯:
不更新主键列中的值;
不重用主键列的值;
不在主键列中使用可能会更改的值。
3、mysql命令参数
-u用户名,-h主机名,-P端口号,-p输入密码。
4、选择数据库
use 数据库名
5、show命令
show databases;
show tables;
show columns from 表名;与describe 表名;相同
show status; 显示服务器状态信息
show create database 库名; 和show create table 表名; 分别用来显示创建库或表的sql语句
show grants;显示用户的安全权限
show errors 和 show warnings 显示服务器错误或警告
6、SQL语句不区分大小写,许多SQL开发人员喜欢对所有SQL关键字使用大写,对所有列和表明使用小写,这样做⑩代码更易于阅读和调试。
7、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。
8、排序检索数据
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之后。
9、
where子句中使用的条件,如果将值与串类型的列进行比较,则需要限定引号;
使用between时必须制定两个值,所需范围的低端值和高端值,这两个值必须用and分隔,between匹配范围中所有的值,包括开始值和结束值。
可以用is null匹配空值。注意在通过过滤选择出不具有特定值的行时,具有NULL值的行不会被匹配。
OR的优先级小于AND。