MySQL基础知识点总结归纳
在PHP开发的过程中,基本标配的数据库为MySQL。我们不用像数据库DBA那样熟悉所有的MySQL知识,作为一个PHP程序员我们还是必须会MySQL基本的数据增删查改。下面雷雪松总结归纳一些MySQL基础知识点分享给大家。
数据库操作
创建数据库
1 | mysql> CREATE DATABASE dbname; |
删除数据库
1 | mysql> DROP DATABASE dbname; |
选择数据库
1 | mysql> USE dbname; |
基本的SQL语句
增
1 2 | mysql> INSERT INTO TABLE_NAME (column1,column2...) VALUES (value1,value2...);//插入指定字段 INSERT INTO TABLE_NAME VALUES (column1,column2...);//插入所有字段 |
删
1 | mysql> DELETE FROM TABLE WHERE COLUMN=VALUE;//删除指定的记录 |
查
1 | mysql> SELECT column1,column2... FROM TABLE;//所有列为SELECT * FROM TABLE |
改
1 | mysql> UPDATE TABLE SET column1=value1,column2=value2,... WHERE COLUMN=VALUE;//修改 |
指定的记录一个值或多个值
删改的时候一定要带where条件,
删除时分为物理删除,逻辑删除,一般建议逻辑删除,通过一个状态字段判断是否删除。
高级SQL查询
LIKE模糊匹配
1、SQL通配符(LIKE和NOT LIKE)
% 匹配0个或多个字符
_ 匹配一个字符
1 | mysql> SELECT column1,column2... FROM TABLE WHERE COLUMN LIKE "%lei%";//模糊匹配 |
2、正则模式匹配(REGEXP、NOT REGEXP和RLIKR、NOT RLIKE)
. 匹配任何单个的字符
* 匹配零个或多个在它前面的东西
[charlist] 字符列中的任何单一字符[a-z][0-9]
[^charlist] or [!charlist] 不在字符列中的任何单一字符
1 | mysql> SELECT column1,column2... FROM TABLE WHERE COLUMN RLIKR "lei*";//模糊匹配 |
ORDER BY排序
1 | mysql> SELECT column1,column2... FROM TABLE WHERE ORDER BY COLUMN ASC|DESC;//字段顺序或者倒序 |
LIMIT返回条数
1 | mysql> SELECT column1,column2... FROM TABLE WHERE LIMIT 5,10; // 检索记录行 6-15 |
NULL处理
IS NULL: 当列的值是NULL,此运算符返回true。
IS NOT NULL: 当列的值不为NULL,运算符返回true。
<=>: 比较操作符(不同于=运算符),当比较的的两个值为NULL时返回true。
关联
INNER JOIN(内连接或等值连接):获取两个表中字段匹配关系的记录。
LEFT JOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录。
RIGHT JOIN(右连接): 与 LEFT JOIN 相反,用于获取右表所有记录,即使左表没有对应匹配的记录。
分组查询
GROUP BY column;//根据字段分组查询
分组结果筛选
HAVING
2016年7月4日 上午10:15
基础知识 学习啦!
2019年5月5日 下午7:58
好文章!666,学习了
2019年5月8日 下午10:30
哇塞,居然是沙发?留个名
2019年5月9日 下午6:46
非常精彩的文章,引人入胜,痛快淋漓。感谢楼主分享。
2019年5月9日 下午9:33
虽然不知道说的是什么,但看起来好厉害的样子!
2019年5月10日 下午7:03
看过了。很好很强大。
2019年5月10日 下午10:58
哇塞,居然是沙发?留个名
2022年6月28日 下午2:24
流明 占楼