MySQL(MariaDB) 入门

12 篇文章 0 订阅
10 篇文章 0 订阅

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 <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 "-"
    );

其中数据类型有:

  • 整数: 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 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可限制条件。

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/

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值