学习sql不是为了用它来干活,只是出于兴趣对它进行简单的了解,写下这篇学习笔记的目的也很简单:帮助自己记忆。
本次的学习笔记机遇Linux(CentOS 7)和mariadb。
Mariadb的安装
1.安装数据库
yum install mariadb mariadb-server
2.安装完毕后启动进程并加入开机启动
systemctl start mariadb
systemctl enable mariadb
3.初始化
在确认MariaDB数据库软件程序安装完毕并成功启动后请不要立即使用。为了确保数据库的安全性和正常运转,需要先对数据库程序进行初始化操作。这个初始化操作涉及下面5个步骤。
Ø设置root管理员在数据库中的密码值(注意,该密码并非root管理员在系统中的密码,这里的密码值默认应该为空,可直接按回车键)。
Ø设置root管理员在数据库中的专有密码。
Ø随后删除匿名账户,并使用root管理员从远程登录数据库,以确保数据库上运行的业务的安全性。
Ø删除默认的测试数据库,取消测试数据库的一系列访问权限。
Ø刷新授权列表,让初始化的设定立即生效。
mysql_secure_installation
4.登陆数据库
mysql -u root -p
5.数据库的创建
CREATE DATABASE yaohl_test
6.选择数据库
USE yaohl_test
7.数据准备
在《MySQL必知必会》书中提供了用于创建练习数据库的两个脚本,在进入自己创建的数据库文件(我这里为yaohl_test)之后,执行如下两条命令来创建练习用数据库:
source create.sql
source populate.sql
为了以后练习时方便,可以去如下网址下载两个脚本:http://www.forta.com/books/0672327120/
SHOW命令
SHOW datbases;
SHOW tables;
SHOW COLUMNS FROM customers;
注:sql命令不区分大小写,但是许多sql开发人员喜欢对所有放入sql关键词用大写,而对所有的列和表采用小写,这样做使代码更易于调试和阅读。
SELECT命令
SELECT语句用于从表中检索一个或多个列。
1.检索数据
SELECT prod_name
FROM products;
注:返回数据的顺序可能是数据被添加到表中的顺序,也可能不是。
检索多个列时,列名之间用逗号分开。
SELECT prod_name ,prod_id
FROM products;
检索所有列时使用通配符*。
检索不同行时,使用DISTINCT关键词
SELECT DISTINCT vend_id
FROM products;
限制结果
SELECT prod_name
FROM products
LIMIT 5;
SELECT prod_name
FROM products
LIMIT 5,5;
Mysql 5的LIMIT语法新特性:
SELECT prod_name
FROM products
LIMIT 5 OFFSET 5;
2.排序检索数据
SELECT语句语句的ORDER BY子句可以根据需要排列检索出的数据。
注:有些子句是必须的,而有些子句是可选的。
SELECT prod_name
FROM products
ORDER BY prod_name;
用DESC关键词可以指定排序顺序为降序(ASC为升序,但是默认即为升序,所以实际作用不大)。
SELECT prod_name,pord_id,prod_price
FROM products
ORDER BY prod_price DESC, prod_name;
注:DESC关键词只对其前边相邻的参数有效,即上例中先对prod_price降序排列,当prod_pricex相同时,再按照prod_name升序进行排列。
3.过滤数据
SELECT语句的WHERE子句可以用来制定搜索条件。
SELECT prod_name, prod_price
FROM products
WHERE prod_price = 2.50;
AND操作符
OR操作符
IN操作符
NOT操作符