mysql(一)

数据库:保存有组织的数据的容器;数据库管理系统或数据库软件为DBMS

表:数据库中具体数据的体现,由某种特定类型数据的结构化清单;清单不同表不同,清单和表名在不同库中可以相同
列:表中的一个字段,所有表由一个或多个列组成,一个库的表的每列名都不同才能被查询到
行:表中的一个记录且数据是按行存储,保存的每个记录存储在自己的行内,垂直为列,水平为行
主键:一列或一组列,其值能够唯一区分表中的每一行,一个表中只能有一个主键,且不允许为空值
主键是数据表的唯一索引,比如学生表里有学号和姓名,姓名可能有重名的,但学号确是唯一的,你要从学生表中搜索一条纪录如查找一个人,就只能根据学号去查找,这才能找出唯一的一个,这就是主键
客户机提出需求,服务器软件解决需求
SHOW COLUMNS FROM classes;和SELECT * FROM classes;的区别?
 
 
 
 
 
SHOW COLUMNS FROM classes;和DESC +表名结果一致;对一个表中的所有字段返回一行,其中包括字段名、数据类型等;和DESCRIBE+表名结果一样
检索不同的行:
SELECT DISTINCT +列名 FROM +表名;只显示不同的列名的值
限制结果:
SELECT+列名 FROM +表名 LIMIT+n;只显示前n行的值,从第一行开始
SELECT+列名 FROM +表名 LIMIT+ n,m;只显示从n开始后的m行的值,行数不够有多少显示多少
使用完全限制的表明:
MariaDB [hellodb]> SELECT classid FROM classes;
MariaDB [hellodb]> SELECT classes.classid FROM classes;
MariaDB [hellodb]> SELECT classes.classid FROM hellodb.classes;
MariaDB [hellodb]> SELECT hellodb.classes.classid FROM hellodb.classes;
以上四种的结果都是一样的,用的是完全限制名的语法。
5、排序数据:针对需要列
默认按原始表的数据排序顺序显示,若更新或删除,顺序会受影响??
子句:SQL语句由子句构成,如SELECT的FROM
ORDER BY:必须放在最后
单个列和多个列,都是按照ORDER BY后面规定的顺序进行,先name再age,默认升序
指定排序方向:降序DESC,只作用位于其前面的列名
先降序再升序:
多个列的降序排序需注意必须对每个列指定DESC关键字
在排序顺序时如何去区分大小写?如a和A的位置,a和B a和Z? 默认不区分大小写,也可特殊指定
利用ORDER BY和LIMIT找出最值:
6、过滤数据 WHERE 针对所有行,放在ORDER BY的前面
WHERE子句操作符:
WHERE后面的描述是字符串的时候需要用引号引起来,不区分大小写
范围值检查:BETWEEN
空值检查:IS NULL IS NOT NULL
select 列名 from 表名 where 列名 is not null;
7、数据过滤:WHERE,AND,OR
AND:用来WHERE子句中的关键字,都满足,每添加一条就要使用一个AND
OR:或,匹配任一条件的行
AND和OR一起使用时,注意:AND在计算次序中优先级更高,使用圆括号,应改为:
 
IN:和OR的效果一样
 
 
NOT:否定后跟条件的关键字
8、通配符:创建特定数据的搜索模式,WHERE子句中有特殊含义的字符
LIKE:必须和通配符搭配起来使用
%:后面任何字符出现任意次数,可在任意位置使用且可使用多个通配符(0、1、多个),但不能匹配NULL
_:后面只匹配单个字符而不是多个字符
使用通配符的技巧:
9、正则表达式介绍:
 
用来匹配文本的特殊的串(字符集合)。
.匹配任意一个字符:
LIKE和REGEXP区别:LIKE利用通配符匹配而不是直接相等匹配比较,REGEXP在列值内进行匹配,可以相等
|:或
[]:匹配任何单一字符,是另一种OR语句的表现
匹配范围:[0-9] [a-z]
匹配特殊字符:利用\\转义来匹配特殊的字符如. ,等,匹配\用\\\ \\的意思是MYSQL解释一个,正则表达式解释一个
匹配字符类:
匹配多个实例:
定位符:
posted @ 2018-10-23 15:43  朝圣布达拉  阅读(95)  评论(0编辑  收藏  举报