Mysql
安装
使用apt, yumd或自行编译等等方式安装。
详细,请查看 安装
操作
连接
mysql -h localhost -u root -p 回车 #-P端口 -p密码
账号操作
添加账号
create user username1 identified by 'pwd1';
授权
grant all privileges on DbName1.* to username1@'%' identified by 'pwd1'; # %表示任何主机 或 指定ip地址 或 ip段 flush privileges; #刷新
修改密码
update mysql.user set password = password('pwd1') where user = 'username1' and host = '%'; flush privileges;
删除账号
drop user username1@'%';
基本操作
数据库
//创建数据库 create database h_test; //查看数据库 show databases; //查看数据库信息 show create database h_test; //修改数据库的编码,可使用上一条语句查看是否修改成功 alter database h_test default character set gbk collate gbk_bin; //删除数据库 drop database h_test; //综上,可以直接创建数据库且设置编码方式 CREATE DATABASE h_test DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
数据表
//首先选定操作的数据库 use h_test; //创建表student create table student( id int(11), name varchar(20), age int(11) ); //查看数据表 show tables; //查看数据表信息,后面加上参数/G可使结果更加美观 show create table student; //查看表的的字段信息 desc student; //修改表名 alter table student rename [to] h_student; //修改字段名 alter table h_student change name stu_name varchar(20); //修改字段的数据类型 alter table h_student modify id int(20); //添加字段 alter table h_student add grade float; //删除字段 alter table h_student drop grade; //修改字段的位置 alter table h_student modify stu_name varchar(20) first; alter table h_student modify id int(11) after age; //删除数据表 drop table h_student;
约束
| 约束条件 | 说明 | 
| PRIMARY KEY | 主键约束,用于唯一标识对应的记录 | 
| FOREIGN KEY | 外键约束 | 
| NOT NULL | 非空约束 | 
| UNIQUE | 唯一性约束 | 
| DEFAULT | 默认值约束,用于设置字段的默认值 | 
索引
作用:提高表中数据的查询速度
1.普通索引
2.唯一性索引
3.全文索引
4.单列索引
5.多列索引
6.空间索引
//创建索引
//一.创建表的时候创建索引
create table 表名(
        字段名 数据类型[完整性约束条件],
        ...
        字段名 数据类型,
        [UNIQUE|FULLTEXT|SPATIAL] INDEX|KEY
  );
//1-1.创建普通索引
create table test1(
  id  INT,
  name VARCHAR(20),
  age INT,
  INDEX (id)
);
//可以插入一条数据,查看索引是否被使用
explain select * from test1 where id=1 \G;
//1-2.创建唯一性索引
create table test2(
  id  INT,
  name VARCHAR(20),
  age INT,
  UNIQUE INDEX unique_id(id asc)
);
//1-3.创建全文索引
create table test3(
  id  INT,
  name VARCHAR(20),
  age INT,
  FULLTEXT INDEX fulltext_name(name)
)ENGINE=MyISAM;
//1-4.创建单列索引
create table test4(
  id  INT,
  name VARCHAR(20),
  age INT,
  INDEX single_name(name(20))
);
//1-5.创建多列索引
create table test5(
  id  INT,
  name VARCHAR(20),
  age INT,
  INDEX multi(id,name(20))
);
//1-6.创建空间索引
create table test6(
  id  INT,
  space GEOMETRY NOT NULL,
  SPATIAL INDEX sp(space)
)ENGINE=MyISAM;
---------------------------------------------------
//二.使用create index语句在已经存在的表上创建索引
//首先新建一个表,这个表没有索引
create table student(
  id int,
  age int,
  name varchar(20),
  intro varchar(40),
  g GEOMETRY NOT NULL
)ENGINE=MyISAM;
//2-1.创建普通索引
create index index_id on student(id);
//2-2.创建唯一性索引
create unique index uniqueidx on student(id);
//2-3.创建单列索引
create index singleidx on student(age);
//2-4.创建多列索引
create index mulitidx on student(name(20),intro(40));
//2-5.创建全文索引
create fulltext index fulltextidx on student(name);
//2-6.创建空间索引
create spatial index spatidx on student(g);
//三.使用alter table语句在已经存在的表上创建索引
//删除student表,重新创建
drop table student;
create table student(
  id int,
  age int,
  name varchar(20),
  intro varchar(40),
  space GEOMETRY NOT NULL
)ENGINE=MyISAM;
//3-1.创建普通索引
alter table student add index index_id(id);
//3-2.创建唯一性索引
alter table student add unique uniqueidx(id);
//3-3.创建单列索引
alter table student add index singleidx (age);
//3-4.创建多列索引
alter table student add index multidx(name(20),intro(40));
//3-5.创建全文索引
alter table student add fulltext index fulltextidx(name);
//3-6.创建空间索引
alter table student add spatial index spatidx(space);
//删除索引,有下面两种方式
//1.使用alter table删除索引fulltextidx
alter table student drop index fulltextidx;
//2.使用drop index删除索引spatidx
drop index spatidx on student;
添加数据
//重新建立表student drop table student; create table student( id int, name varchar(20) not null, grade float ); //插入一条数据,也可以少某个字段的同时也少对应的数据 insert into student(id,name,grade) values(1,'howie',70); //也可以不指定字段名,但要注意顺序 insert into student values(2,'howie',80); //也可以这样添加数据 insert into student set id=3,name="howie",grade=90; //同时添加多条数据 insert into student values (4,'howie',80), (5,'howie',80), (6,'howie',80);
更新数据
//更新id=1的数据 update student set name="howie1",grade=60 where id=1; //批量更新,如果没有where子句,会更新表中所有对应数据 update student set grade=100 where id<4;
删除数据
//删除id=6的数据 delete from student where id=6; //批量删除数据 delete from student where id>3; //删除所有数据,DDL(数据定义语言)语句 truncate table student也可以删除表内所有数据 delete from student;