数据库的学习我认为就是包含两方面:
1、如何建库建表,达到高效
2、如何查询到所需的数据
本文将着重写的是基础概念以及如何查询数据的部分,如何建库建表的部分后续将在另外的文章写
基本概念
结构
数据库: 一个以某种有组织的方式存储的数据集合
表:一种结构化的文件,可用于存储某种特定类型的数据
列:表中的一个字段
行:表中的一条记录
主键
主键:一列(一组列),其值能唯一区分表中的每个行
作为主键的条件:
1、任意两行都不具有相同的主键值
2、每个行都必须有主键值(不能为NULL)
主键好习惯:
1、不更新主键列的值
2、不在主键列中使用可能会修改的值
什么是SQL
SQL是结构化查询语句(Structured Query Language)的缩写,是一种专门用来与数据库通信的语言。
什么是MySQL
完成数据所有存储、检索、管理和处理的数据库软件-DBMS(数据库管理系统)
MySQL实际上是一种DBMS,即它是一种数据库软件
DBMS可分为两种:一种是基于共享文件系统的DBMS,一种是基于客户机-服务机的DBMS,MySQL属于后者。
库和表查询语句
查询库
SHOW DATABASES;
使用库
USE 库名称;
查询表
SHOW TABLES;
查询表的结构
SHOW COLUMNS FROM 表名称;
DESCRIBE 表名称;
查询创建数据库的语句
SHOW CREATE DATABASE 库名称;
查询创建表的语句
SHOW CREATE TABLE 表名称;
显示授权用户权限
SHOW GRANTS;
检索数据
检索单个列
SELECT prod_name FROM products;
检索多个列
SELECT prod_name, prod_id FROM products;
检索所有列
SELECT * FROM products;
检索不同的行
SELECT DISTINCT prod_name FROM products;
只有商品名称不同的行会被筛选出来
限制结果
SELECT prod_name FROM products LIMIT 5;
SELECT prod_name FROM products LIMIT 3, 5;
前一句是返回前五条数据
第二句是返回从第三条开始后的五条数据
对检索结果排序
SELECT prod_id, prod_price, prod_name FROM products ORDER BY prod_price, prod_name;
当prod_price相同时,按照prod_name排序
SELECT prod_id, prod_price, prod_name FROM products ORDER BY prod_price DESC, prod_name;
先按照prod_price降序排列,当prod_price相同时,按照prod_name升序排列
SELECT * FROM products ORDER BY prod_price DESC LIMIT 1;
找出最贵的那条数据
简单WHERE语句
SELECT * FROM products WHERE prod_price = 2.00;
SELECT * FROM products WHERE prod_price <> 2.00;
SELECT * FROM products WHERE prod_price != 2.00;
SELECT * FROM products WHERE prod_price BETWEEN 2 AND 5;
其中<>和!=都表示不等于的意思
组合WHERE语句
SELECT * FROM products WHERE prod_price = 2.00 AND prod_name = ‘abc’;
SELECT * FROM products WHERE prod_price = 2.00 OR prod_price = 3;
SELECT * FROM products WHERE prod_price IN (2, 3);
SELECT * FROM products WHERE prod_price NOT IN (2, 3);
LIKE操作符使用
SELECT * FROM products WHERE prod_name LIKE ‘abc%’;
SELECT * FROM products WHERE prod_name LIKE ‘ab_c’;
前一句中abc%会筛选出prod_name以abc开头的记录
后一句中ab_c会筛选出以ab开头加一个任意字符而后接一个c字符的记录
即%匹配的是任意多个字符,而_匹配的是一个字符
正则表达式
SELECT * FROM products WHERE prod_name REGEXP ‘[123] Ton’;
返回prod_name匹配[123] Ton的记录
Concat拼接
SELECT Concat (prod_name, ‘(’, prod_price, ‘)’) FROM products;
查询出所有商品的名称以及价格,结果以苹果(5) 这样的形式呈现
使用AS生成别名
SELECT Concat(prod_name, ‘(’, prod_price, ‘)’) AS prod_item FROM products;