一. 基础
  1.启动mysql
     systemctl start mysqld.service
  2. 查看mysql运行状态
    systemctl status mysqld.service

  3. 修改初始密码
    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Root@123';
  4. 进入mysql
    mysql -uroot -p

  5. 数据库的结构形式
    1. 层次结构: 以树状形式
    2. 网状结构: 集合通过链接,定义不同记录之间的关系
    3. 关系模型: 使用表关联的方式
    每个表都有一个主键作为唯一标识(唯一)
    复合主键: 使用多个列联合作为主键

    外键: 关联

  6. SQL语句的分类
    1. SQL方案语句, 用于定义表结构
    2. SQL数据语句, 用于操作数据
    3. SQL事务语句, 用于开始,结束,回滚事务

  7. 创建、查看数据库
    cerate database [name] ;
    show databases

二. 基础语句
  1. 用户管理
    1. 创建用户
    create user 'alex'@'192.118.1.1' identified by '123';

    任意ip地址登录
    create user 'alex'@'%' identified by '123';

    2. 删除用户
    drop user '用户名'@'IP地址';

    3.修改用户
    rename user '用户名'@'IP地址' to '新用户名'@'IP地址';

    4.修改密码
    set password for '用户名'@'IP地址'=Password('新密码');

 

 

  2. 查看账户列表
    select user from mysql.user


  3. 用户权限管理
    1. 查看权限
      show grants for '用户'@'IP地址'

    2. 授权 用户仅对db1.t1文件有查询、插入和更新的操作
      grant select ,insert,update on db1.t1 to "alex"@'%';

    3. 授权所有的权限,除了grant这个命令,这个命令是root才有的。授权用户对db1下的t1文件有任意操作
      grant all privileges on db1.t1 to "alex"@'%';

    4. 授权用户对db1数据库中的文件执行任何操作
      grant all privileges on db1.* to "alex"@'%';

    5. 授权用户对所有数据库中文件有任何操作
      grant all privileges on *.* to "alex"@'%';

    6. 取消权限

      取消用户对db1的t1文件的任意操作
      revoke all on db1.t1 from 'alex'@"%";

      取消来自远程服务器的用户对数据库db1的所有表的所有权限
      revoke all on db1.* from 'alex'@"%";

      取消来自远程服务器的用户所有数据库的所有的表的权限
      revoke all privileges on *.* from 'alex'@'%';

三. 数据类型 (mysql)

  1. 字符集
    分为单字符集和多字符集(单字符最大长度大于1)
    修改默认字符集
      create database foreign_sales character set [字符集]

  2. 文本类型
    如果被装载到文本列中的数据超出该类型的最大长度,数据将会被截断
    排序和分组时,只会使用前1024个字节,可以配置放宽这个限制
    类型(mysql): tinytext, text, mediumtext, longtext

  3. 数值类型
    整形: (unsigned) tinyint, smallint, mediumint, int, bigint
    浮点: (unsigned) float, double, 可以通过(p, s)指定精度

  4. 时间数据
    date: 只有日期
    timesyamp 秒的时间戳

 

四. 表基本操作

  1. 创建表
    create table [name] (
      [name] [type],
      [name] [type],
    );

  2. 查看表定义
    desc [table-name]

  3. 不能为空,
    在创建字段定义的时候,后面添加 not null 关键字
    指定默认值:default xx;

  4. 自增
    添加 auto_increment 关键字

  5. 约束
    主键约束: constraint [name:一般为pk_xxx] primary key (xx, xx)

    外键约束: constraint [name: 一般为fk_xxx] foreign key (xx)
      references [table-name] (外表字段)

  6.修改已存在的表定义
    alter table [table-name] [改变方式] [列名称] [定义内容]
    改变方式:add增加, drop删除, change [列名称]改变 modify改变种类

  7. 添加数据
    insert into [table-name] (key, key) values (value, value);
    可以添加一个临时表,也就是可以跟查询一起使用。

  8. 查询
    select (字段A, 字段B...) from [table-name];
    添加过滤: 可以在结尾加上 where + 条件
    添加排序: 结尾加上 order by xxx

  9. 更新
    update [table-name] set [key] = [value], [key] = [value] ...
    可以在结尾添加过滤语句 where,用于选择要更改的行

  10. 删除数据
    delete from [tatle-name] where 条件