Mysql数据库

1. 初识数据库

1. 解决数据读取慢的问题
2. 数据一致性
3. 数据的安全性
4. 解决了并发问题
数据库管理系统DBMS
数据库管理员DBA
数据库database → db
表 table
数据库分类:
    1.关系型数据库:数据之间关系紧密  mysql oracle sqlserver sqllite(轻量级小数据库) access
    2.非关系型数据库 :存储数据快  redis mongodb(轻量级)  memcache(内存级别,存储快,断电消失)

2. 安装数据库

Mysql 数据库管理系统

卸载数据库:
    1. 停止mysql服务 cmd :net stop mysql
    2. mysql remove 删除服务
    3. 删除安装目录
    4. 删除环境变量
    5. 清除注册表/重启计算机
    
安装数据库 :
    1. 路径不能有中文
    2. 路径中不能有特殊字符
    3. 在创建my.ini (utf-8格式)文件 在安装目录中创建 :
        """
        配置mysql
        [mysql]
        # 设置mysql客户端默认字符集
        default-character-set=utf8
        [mysqld]
        #设置3306端口
        port = 3306
        # 设置mysql的安装目录
        basedir=D:\mysql\mysql-5.6.44-winx64
        # 设置mysql数据库的数据的存放目录
        datadir=D:\mysql\mysql-5.6.44-winx64\data
        # 允许最大连接数
        max_connections=200
        # 服务端使用的字符集默认为8比特编码的latin1字符集
        character-set-server=utf8
        # 创建新表时将使用的默认存储引擎
        default-storage-engine=INNODB
        """
    4.配置环境变量 :
        添加环境变量 D:\Mysql\mysql-5.6.45-winx64\bin
    5. 管理员下cmd :mysqld install 安装
    6. 启动mysql服务 :cmd下: net start mysql  (启动的是mysql server端)
    7. 启动客户端 cmd : mysql

3. 初次使用数据库

结构查询语句 ( Structure Query Language), SQL 数据库的核心语言,分四大类:
    1. DDL 数据定义语言 ,用来操作数据库对象:库 , 表 , 列等 ;指令有Create , ALTER , DROP
    2. DML 数据库操作语句,用来操作数据库数据 ; 指令有 Insert Update Delete select
    3. DCL 数据控制语句, 用来授予或访问数据库的某种特权,或操作事物特性; 指令有 Grant , RollBack , Commit
    
    4. DQL 数据查询语句, 用来查询数据 ; 指令 Select
mysql -u root #进入
mysql -u root -p #输密码进入
exit # 退出
对库操作 :
create database 数据库名; # 新建数据库
drop database 数据库名; # 删除数据库
show databases; # 查看所有数据库
use 数据库名; # 进入/切换数据库
show tables; # 查看所有表格
create table 表名; # 创建表
select user(); # 查看当前登录用户
set password = password("密码"); # 给当前用户设置密码

create user '用户名'@'192.168.16.%'; # 创建用户,并且16网段下的所有主机都可以用这个用户名登录
create user '用户名'@'192.168.16.%' identified by '密码'; # 创建用户,设置密码

grant on 数据库名.表名 to '用户名'@'ip地址' # 创建 用户设置查看相应表的权限
grant on 数据库名.表名 to '用户名'@'ip地址%' identified by '密码' ; # 创建用户和密码并给相应表的权限

在这个数据库下的所有表中给这个用户名增删改查的权限(all):
    grant all on 数据库名.* to '用户名@ip地址' 
    
客户端登录srver:
    mysql -u用户名 -h server端IP地址 -p

root下查看所有用户:
    select user,host from mysql.user;
删除用户:
    delect from mysql.user where user like '用户名%';
创建表:
create table 表名(字段 数据类型(长度),字段 数据类型(长度)...)
create table t1(id int,name char(12),password char(12));

删表:
drop table 表名;

改表名:
alter table 旧表名 rename 新表名;

查看表结构 :
desc 表名;