MySQL(MariaDB) 入门
扫描二维码
随时随地手机看文章
MySQL(MariaDB) 入门
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
否则会乱码。
查看有哪些数据库: 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 "-" );
其中数据类型有:
整数: tinyint、smallint、mediumint、int、bigint 浮点数: float、double、real、decimal 日期和时间: date、time、datetime、timestamp、year 字符串类型 字符串: char、varchar 文本: tinytext、text、mediumtext、longtext 二进制(可用来存储图片、音乐等): tinyblob、blob、mediumblob、longblob
括号中的数字一般是指字符长度或数字最大位数。具体可见参考资料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 id20;
如果需要查询不重复的项可以添加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可限制条件。
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语句保存到扩展名为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/