本文会介绍一些MYSQL数据库的基本使用语句,参考书籍:MYSQL必知必会
1、数据库的基本使用
- 假如我这里有一个mall数据库,可以通过USE来选取数据库
输入:
USE mall;
- 如果不知道有哪些数据库的话可以使用命令:
SHOW DATABASES;
- 要获取到当前选择的数据库内的数据表的列表,可以使用命令:
SHOW TABLES;
- 如果想看数据表内有哪些列,可以使用命令:
SHOW COLUMNS FROM cms_help;
或者:
DESCRIBE cms_help;
两者都可以达到同样的效果
2、检索数据 (SELECT语句)
- 1、检索多个列,就拿上面的cms_help表来作为例子把:
SELECT category_id,icon,title FROM cms_help;
这样就查询出了想要的列的所有数据了
- 2、如果想检索所有列的话,可以只用通配符( * )来达到:
SELECT * FROM cms_help;
这样就查询出来所有列的所有数据了
- 3、检索不同的行,可以使用关键字DISTINCT关键字,该关键字可以指定MYSQL只返回不同的值
SELECT DISTINCT category_id FROM cms_help;
这样可以查询出不同的category_id,如果重复的话就不会查询出来
- 4、限制查询结果个数,使用LIMIT语句:
SELECT category_id FROM cms_help LIMIT 4;
这样就只会返回前四条结果
或者:
SELECT category_id FROM cms_help LIMIT 2,2;
这样就会返回从第二条开始的两条数据,第一个2表示从第二条数据开始但不包括2,第二个2表示查询几条数据
3、排序检索数据
- 1、排序数据,通过ORDER BY + 列名来排序数据
SELECT * FROM cms_help ORDER BY category_id;
现在输出的默认为ASC升序排列,如果想要降序排列可以使用DESC:
SELECT * FROM cms_help ORDER BY category_id DESC;
- 2、当通过多个列字段来排序数据时,优先排列前一个字段,如果前一个字段中有相同的数据,则通过第二个字段再次排序:
SELECT * FROM cms_help ORDER BY category_id,show_status;
可以看到,只有当category_id相同时,MYSQL才会去根据show_status去再次排列
4、过滤数据
- 1、使用WHERE语句来筛选数据或者查找特定的数据:
SELECT * FROM cms_help WHERE category_id = 6;
可以看到,category_id 等于6的数据都被查出来了
同时还能使用WHERE的其他操作符来筛选数据:
这里只说一下BETWEEN的用法,其他的都挺简单的:
SELECT * FROM cms_help WHERE category_id BETWEEN 2 AND 4;
- OR和AND操作符,OR表示或者,AND表示并且
SELECT * FROM cms_help WHERE category_id = 1 OR category_id >3 AND category_id =5;
这样输出的结果时category_id 等于1和等于5的,因为MYSQL是先组合AND然后再组合OR操作符的
- IN操作符,IN操作符可以用来指定条件集合,集合中的每个元素都可以进行匹配:
SELECT * FROM cms_help WHERE category_id IN (1,2,4);
如果需要查找的数据比较多的话,就可以使用IN操作符,这样比OR操作符查找起来快多了
5、使用通配符来进行过滤数据
- LIKE操作符和百分号(%)组合构成模糊查询
比如说你想找所有jet开头的产品:
SELECT * FROM cms_help WHERE name LIKE 'jet%'
或者说你想找所有jet结尾的产品:
SELECT * FROM cms_help WHERE name LIKE '%jet'
或者说你想找所有包含jet的产品:
SELECT * FROM cms_help WHERE name LIKE '%jet%'
百分号(%)通配符可以表示任意字符串
- 分组语句,GROUP BY。
SELECT category_id,COUNT(*) AS num FROM cms_help GROUP BY category_id;
使用子查询
子查询是指在一条查询语句中嵌套另一个查询语句,比如说你可以先去另一张表查出目标id,然后再通过目标id在这张表里面查询相应的数据;
SELECT id FROM cms_help_category;
SELECT * FROM cms_help WHERE id IN (SELECT id FROM cms_help_category);
可以发现在IN内部又嵌套了另一个查询语句
联结表
SELECT * FROM cms_help,cms_help_category WHERE cms_help.id = cms_help_category.id;
SELECT category_id FROM cms_help,cms_help_category WHERE cms_help.id = cms_help_category.id;
组合查询
使用UNION操作符实现多条查询语句
SELECT * FROM cms_help WHERE id = 6
UNION
SELECT * FROM cms_help WHERE id IN (1,2);
未完持续。。。。。
网友评论