MySQL简介
MySQL是一个数据库管理系统,也是一个关系数据库。它是由Oracle支持的开源软件。这意味着任何一个人都可以使用MySQL而不用支付一毛钱。 另外,如果需要,还可以更改其源代码或进行二次开发以满足需要。
linux 安装
sudo apt install mysql-server
连接数据库
#mysql安装后默认有一个root用户,可以先使用root用于登陆
$>mysql -u 用户名 -p
$>mysql -u root -p
linux配置文件
/etc/mysql/mysql.conf.d
重启mysql
service mysql restart
/etc/init.d/mysql restart
用户管理:
创建用户(需要使用root用户)
格式:create user ‘用户名’@‘IP地址’ identified by ‘密码’;
#允许bobo用户在本地登录
>create user 'bobo'@'localhost' identified by '123456';
#允许10.0.122.*网段使用bobo用户登录
>create user 'bobo'@'10.0.122.%' identified by '123456';
#允许用户在任何地方登录
>create user 'bobo'@'%' identified by '123456';
>create user bobo identified by '123456';
查看用户:
>use mysql; #切换数据库
>select user,host from user;
删除用户:
>drop user '用户名'@'IP地址';
修改用户密码:
>set password for '用户名'@'IP地址' = password('新密码');
授权管理:需要root用户
查看权限:show grants for ‘用户名’@‘IP地址’;
授权:grant 权限 on 数据库.表 to ‘用户名’@‘IP地址’;
#只能对axf数据库下的t1表进行查看和插入操作
>grant select,insert on axf.t1 to 'bobo'@'%';
#只能对axf数据库下的所有表进行查看和插入操作
>grant select,insert on axf.* to 'bobo'@'%';
#添加对axf数据库下所有表,添加grant以外的所有权限
>grant all privileges on test.* to hhh;
#权限说明:详情见《权限说明.txt》
#取消授权:
>revoke 权限 on 数据库.表 from '用户名'@'IP地址';
#更改用户可登录ip地址
>use mysql;
>update user set host='localhost' where user='root';
#将数据读取到内存,立即生效
>flush privileges
权限
all privileges 除grant外的所有权限
select 仅查权限
select,insert 查和插入权限
usage 无访问权限
alter 使用alter table
alter routine 使用alter procedure和drop procedure
create 使用create table
create routine 使用create procedure
create temporary tables 使用create temporary tables
create user 使用create user、drop user、rename user和revoke all privileges
create view 使用create view
delete 使用delete
drop 使用drop table
execute 使用call和存储过程
file 使用select into outfile 和 load data infile
grant option 使用grant 和 revoke
index 使用index
insert 使用insert
lock tables 使用lock table
process 使用show full processlist
select 使用select
show databases 使用show databases
show view 使用show view
update 使用update
reload 使用flush
shutdown 使用mysqladmin shutdown(关闭MySQL)
super ??使用change master、kill、logs、purge、master和set global。还允许mysqladmin????调试登陆
replication client 服务器位置的访问
replication slave 由复制从属使用
管理mysql常用命令
这里是重要的MySQL命令,经常在MySQL数据库的管理或工作中使用:
#创建数据库
#utf-8:
>create database 数据库名 charset utf8;
#gbk:
>create database 数据库名 default charset gbk;
#删除数据库
>drop database 数据库名
#查看当前选择的数据库
>select database();
#查找记录
select * from mysql.user;
#查看前用户
select user();
#用于选择在MySQL工作区指定的数据库。
>use 数据库名;
#列出了MySQL数据库管理系统中的所有可访问的数据库。
>show databases;
#显示已经选择数据库中的表的命令。
>show tables;
#MySQL数据库断开
>exit
#查看表结构
desc 表名;
CRUD(增删改查)
1、增
先创建表
语法:
CREATE TABLE table_name (column_name column_type);
例如:
create table student(
id int not null auto_increment primary key,
sex bit,
age int,
name char(20),
info varchar(100),
birthday date
);
注意:
a、全列插入
格式:insert into 表名 values(…);
说明:主键列是自动增长,但是在全列插入时需要占位,通常使用0,插入成功以后以实际数据为准
示例:insert into student values(0,“tom”,19,1,“北京”,0);
b、缺省插入
格式:insert into 表名(列1,列2,……) values(值1,值2,……);
示例:insert into student(name,age,address) values(“lilei”,19,“上海”);
c、同时插入多条数据
格式:insert into 表名 values(…),(…),……
示例:insert into student values(0,“hanmeimei”,18,0,“北京”,0),(0,“poi”,22,1,“海南”,0),(0,“wenli”,20,0,“石家庄”,0);
2、删
格式:delete from 表名 where 条件;
示例:delete from student where id=4;
注意:没有条件是全部删除,慎用
3、改
格式:update 表名 set 列1=值1,列2=值2,…… where 条件;
示例:update student set age=16 where id=7;
注意:没有条件是全部列都修改,慎用
4、查
说明:查询表中的全部数据
格式:select * from 表名;
示例:select * from student;