MariadDB的使用以及一些SQL语句的复习

2016-03-14 | 阅读

MySQL的基本操作

#创建用户 
CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 
# host指定主机进行登录,使用通配符%表示可以由任意主机登录.

#授权用户
GRANT privileges ON databasename.tablename TO 'username'@'host' 
# privileges为权限,有很多,常见的有SELECT , INSERT , UPDATE , DELETE, DROP等

在Mac上安装Mariadb

# 安装
brew install mariadb
unset TMPDIR
mysql_install_db
# 启动,每次重启后都要打开mysql server
mysql.server start


# 修改密码
mysqladmin -u root password 'root' 

简单的SQL操作

数据库操作与表操作

#显示所有数据库
show databases;
show tables;
#建库
create database xxx;
create table xxx(...);
#使用数据库
use xxx;
# 删库
drop database xxx;
drop table xxx;

####

修改表结构

#显示表结构
desc tablename;

数据库知识

联合主键

name varchar(10),
id number,
primary key(name,id)

两个字段组合起来是复合主键,两者一起来保证主键的唯一性.复合主键或联合组件,指的是表中主键含有一个以上的字段组成.

索引

索引是对数据库表中一列或多列的值进行排序的一种结构.索引的目的是为了提高查询速度.MySQL中的索引的实现是B+Tree.

索引分为:聚集索引和非聚集索引,两者的区别在于记录的排列顺序与索引的排列顺序是否一致.

  • 聚集索引: 索引顺序与表的物理排列顺序是一样的,聚集索引在数据库中开辟一块物理空间放置其排列的值,所以插入数据时,需要重新排列整个物理空间.聚集索引的叶子节点存储了真实的数据行,只有一个索引页,没有单独的数据页.
  • 非聚集索引: 表数据存储顺序与索引顺序无关,叶子节点包含索引字段值,和一个指向数据页数据行的逻辑指针.

一张表上只能创建一个聚集索引,因为真实数据的物理顺序只能是一种,如果表没有聚集索引,则被称为堆集Heap,这样的表的数据行没有特定的顺序,所有的新行都会被添加到表的末尾位置.

索引能提高查询的速度,但是会降低数据库更新数据的性能,更新数据同时要更新索引.