初步知识
数据库是一个以某种有组织方式存储的数据的集合
DBMS是数据库管理系统也叫数据库软件
MySQL是一种DBMS
SQL语句是DBMS用来操控数据库的语言
MySQL主配置文件
/etc/my.cnf
MySQL数据库文件存放位置
/var/lib/mysql
MySQL日志文件
/var/log/mysqld.log
查看MySQL版本
rpm -qi mysql-server
rpm -qi mysql-devel
rpm -qi mysql
MySQL默认绑定的端口号
3306
SQL语句不分大小写
show databases;
ShOW databases;
上面两条语句相同
初步操作
登录MySQL
mysql -u root -p
退出MySQL
\q
quit
exit
查看帮助
\h
查看每条命令的用法
help 命令名
如:help create
创建数据库
create database zhouxin;
查看可用数据库
show databases;
打开数据库
use zhouxin;
返回当前数据库内可用的表
show tables;
显示表中每个字段(即每列的名字)的字段名、数据类型、是否允许NULL、键信息、默认值以及其他信息
describe 表名;
检索
从表中检索某一列
select 列名 from 表名;
如:select Host from db;
从表中检索多列
SELECT 列名,列名,列名 FROM 表名; (列名之间加逗号,最后一个列名后不加)
如: SELECT Host, User, Drop_priv
FROM db;
检索表的所有列
SELECT * FROM 表名
如:SELECT * FROM db;
只检索一列当中不同的行
SELECT
DISTINCT 列名
FROM 表名
如:SELECT DISTINCT vend_id
FROM products;
返回检索当中的前n行
select 列名
from 表名
LIMIT n;
如:select prod_name from products limit 5;
返回检索当中从第m行开始的n行
select 列名
from 表名
LIMIT m,n;
(不包括第m行)
如:select prod_name from products limit 3,6;
排序
按某一列排序
SELECT 列名
FROM 表名
ORDER BY 列名;
如: SELECT prod_name
FROM products
ORDER BY prod_price;
按多列排序
SELECT 列名
FROM 表名
ORDER BY 列名,列名,列名,...;
如: SELECT prod_id,prod_price,prod_name
FROM products
ORDER BY prod_price, prod_name;
按降序排列
SELECT 列名
FROM 表名
ORDER BY 列名 DESC;
如: SELECT prod_name, prod_price, prod_id
FROM products
ORDER BY prod_price DESC;
找出最大的一行
SELECT 列名
FROM 表名
ORDER BY 列名 DESC
LIMIT 1;
过滤数据
过滤行
SELECT 列名
FROM 表名
WHERE 列名 = 值;
(
还可为:
WHERE 列名 < 值
WHERE 列名 <= 值
WHERE 列名 > 值
WHERE 列名 >= 值
WHERE 列名 != 值
WHERE 列名 <> 值
WHERE 列名 BETWEEN 值 AND 值
)
如:
SELECT prod_name, prod_price, prod_id
FROM products
WHERE prod_price = 2.50;
又如: SELECT prod_id, prod_name, prod_price
FROM products
WHERE prod_price BETWEEN 3 AND 5;
空值检查
SELECT 列名
FROM 表名
WHERE 列名 IS NULL;
如: SELECT cust_id
FROM customers
WHERE cust_email IS NULL;
ORDER BY和WHERE同时使用时,ORDER BY 必须位于 WHERE之后,否则会出错。
WHERE子句的AND子句
SELECT 列名