MariaDB是MySQL的开源实现。
配置文件为/etc/my.cnf
SQL语句大小写不敏感。
SQL使用单引号环绕文本值,数字则不使用符号环绕。
安装后需要先启动MySQL:
centos下:
systemctl start mariadb
使用命令登录MySQL:
mysql -u root -p
root初始无密码可直接回车进入。如果需要给root添加密码:
mysqladmin -u root password "new_password";
或修改/usr/bin/mysql_secure_installation
开机启动可在rc.local中加入:/etc/init.d/mysqld start
新建其他用户:
create user ssuser@localhost identified by 'passwd';
授权:
grant all on dbname.* to 'ssuser'@'localhost';
新建数据库:
create database dbname;
如果要存储中文:
CREATE DATABASE <dbname> CHARACTER SET utf8;
否则会乱码。
查看有哪些数据库:
show database;
选择数据库:
use dbname;
在数据库中新建数据表:
create table tablename (row1name type,row2name type,……);
新建数据表时需指定列名,列数据类型。
如:
create table students ( id int unsigned not null auto_increment primary key, name char(8) not null, sex char(4) not null, age tinyint unsigned not null, tel char(13) null default "-" );
其中数据类型有:
括号中的数字一般是指字符长度或数字最大位数。具体可见参考资料8。
查看已创建的数据表:
show tables;
INSERT INTO 表名称 VALUES (值1, 值2,....);
或者指定插入的列:
INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....);
如:
insert into students (name, sex, age) values("孙丽华", "女", 21);
insert into students values(NULL, "王刚", "男", 20, "13811371377");
SELECT 列名称 FROM 表名称;
如果要查询所有列:
select * from 表名称;
有时会添加条件:
select 列名称 from 表名称 [查询条件];
如:
select * from students where sex="女";
select * from students where age > 21;
select * from students where name like "%王%";
select * from students where id<5 and age>20;
如果需要查询不重复的项可以添加distinct:
SELECT DISTINCT 列名称 FROM 表名称;
SELECT 列名 FROM 表名 ORDER BY 列名;
显示对某个列名按升序排序。ORDER BY可以同时使用几个,表示第一排序项,第二排序项。
如:
SELECT Company, OrderNumber FROM Orders ORDER BY Company, OrderNumber;
如果要降序排序的话可使用ORDER BY 列名 DESC
。如:
SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC;
如果要按数字升序排序可使用ORDER BY 列名 ASC
。如:
SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC, OrderNumber ASC;
where可限制条件。
where可使用以下操作符:
= 等于
<> 不等于(有些版本可用!=取代)
> 大于
< 小于
>= 大于等于
<= 小于等于
BETWEEN 在某个范围内
LIKE 搜索某种模式(常用%通配符)
如:
SELECT * FROM Persons WHERE FirstName='Bush';
SELECT * FROM Persons WHERE Year>1965;
SELECT * FROM Persons WHERE City LIKE '%lon%';
SELECT * FROM Persons WHERE City NOT LIKE '%lon%';
SQL通配符支持以下几种:
% 替代一个或多个字符
_ 仅替代一个字符
[abcdefg] 字符列中的任何单一字符
[^abcdefg] 不在字符列中的任何单一字符(也可写为[!abcdefg])
更新:
UPDATE 表名称 SET 列名称 = 新值 WHERE 更新条件
如:
update students set tel=default where id=5;
delete from 表名称 where 删除条件;
如:
delete from students where age<20;
主要使用alter tabel来修改列。
添加列:
alter table 表名 add 列名 列数据类型 [after 插入位置];
修改列名:
alter table 表名 change 列名称 列新名称 新数据类型;
删除列:
alter table 表名 drop 列名称;
重命名数据表:
alter table 表名 rename 新表名;
删除表:
drop table 表名;
删除数据库:
drop database 数据库名;
对于较长的sql语句可以使用脚本的方式保存及运行。将sql语句保存到扩展名为sql的文件中,使用以下命令导入:
mysql -D samp_db -u root -p < createtable.sql
参考资料:
1.《SQL 教程》http://www.runoob.com/sql/sql-tutorial.html
2.《SQL 教程》http://www.w3school.com.cn/sql/index.asp
3.《MySQL 教程》http://www.runoob.com/mysql/mysql-tutorial.html
4.《21分钟 MySQL 入门教程》http://www.cnblogs.com/mr-wid/archive/2013/05/09/3068229.html
5.《MySQL 用户权限详细汇总》http://blog.csdn.net/mchdba/article/details/45934981#t0
6.《MySQL 用户管理及权限管理》http://www.libuchao.com/2013/04/06/mysql-user-and-privilege
7.《MySql用户创建、授权以及删除》http://seawavecau.iteye.com/blog/282345
8.《mysql数据类型》http://www.cnblogs.com/zbseoag/archive/2013/03/19/2970004.html
9.《10分钟学会理解和解决MySQL乱码问题》http://cenalulu.github.io/mysql/mysql-mojibake/