zoukankan      html  css  js  c++  java
  • mysql数据库终端上的增删改查及权限等相关操作

    ctrl + c 终止

    [linux]

    service mysql start 启动mysql
    service mysql stop 停止mysql
    service mysql restart 重启mysql

    [windows] 以超级管理员的身份进行操作

    net start mysql 启动mysql
    net stop mysql 停止mysql

    ### part1

    mysql客户端 登录 mysql服务器

    (1)登录本地的mysql 默认 root 是最高权限用户

    mysql -uroot -p
    -u 指定用户
    -p 指定密码
    -h 指定ip

    (2) 退出

    exit 或者 q

    (3) 登录远程mysql服务器

    mysql -uroot -h192.168.75.128 -p

    ### part2

    mysql 设置密码

    查询当前登录的用户是谁

    select user();

    设置密码

    set password = password("123456")

    去除密码

    set password = password("");

    ### part3

    mysql 创建账户 (单纯的创建账户,没有任何权限)

    create user 'ceshi01'@'192.168.75.1' identified by '111'; # 给具体ip设置账户
    create user 'ceshi02'@'192.168.75.%' identified by '222'; # 指定某个网段设置账户
    create user 'ceshi03'@'%'; # 所有的ip都能依靠这个账户连接到数据库

    mysql -uceshi02 -h192.168.75.128 -p

    查看用户权限

    show grants for 'ceshi02'@'192.168.75.%'
    GRANT USAGE ON . TO 'ceshi02'@'192.168.75.%' # USAGE 没有任何权限

    grant授权完整语法:

    grant 权限 on 数据库.表名 to '用户名'%'ip地址' identified by '密码';
    """
    select 查询数据权限
    insert 插入数据权限
    update 更新数据权限
    delete 删除数据权限
    """

    * 代表所有

    grant select,delete on . to 'ceshi02'@'192.168.75.%' identified by '666';

    查看所有数据库

    show databases

    移除权限

    revoke select on . from 'ceshi02'@'192.168.75.%'

    删除账户

    drop user 'ceshi02'@'192.168.75.%'

    刷新权限

    flush privileges

    ### part 4

    """
    linux /var/lib/mysql 存放着数据库等相关文件
    find / -name db1 找到对应的路径
    但是有权限的限制,需要切换到root用户才能够操作;
    """
    SQL 语句:
    1.操作[数据库] (文件夹)
    增:
    # 创建数据库db1,设置字符集utf8
    create database db1 charset utf8;
    查:
    # 查看数据库
    show databases;
    # 查看数据库建库语句
    show create database db1;

    #更改数据库字符集
    alter database db1 charset gbk;


    # 删除数据库db2
    drop database db2;

    2.操作[数据表] (文件)

    选择数据库

    use 数据库名称
    增:
    int 整型 char 字符串
    # 创建数据表t1(字段名1 类型1, 字段名2 类型2)
    create table t1(id int,name char);

    # 查看所有数据表
    show tables;
    # 查看建表语句
    show create table t1;
    show create table t1G
    """
    CREATE TABLE t2 (
    id int(11) DEFAULT NULL,
    name char(1) DEFAULT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8
    """
    # 查看表结构
    desc t1;

    # modify 只改变数据类型
    alter table t1 modify name char(6);
    # change 联名带数据同时改变
    alter table t1 change name NAME char(7);
    # 改回去
    alter table t1 change NAME name char(6);
    # add 添加字段
    alter table t1 add age int;
    # drop 删除字段 column 列
    alter table t1 drop column age;
    # 更改表名
    alter table t1 rename t999;

    # 删除表t1
    drop table t999

    3.操作记录 (文件内容)
    NULL <==> None 等价
    增:
    # 一次插一条t1(字段名1,字段名2,字段名3,.......) values(对号入座)
    insert into t1(id,name) values(1,"xboy1");
    # 一次插多条
    insert into t1(id,name) values(2,"xboy2"),(3,"xboy3"),(4,"xboy4"),(5,"xboy5");
    # 不指定具体字段,把所有的字段值都插入一遍
    insert into t1 values(6,'xboy6');
    # 可以只指定1个字段插入
    insert into t1(id) values(99);

    查:
    select id,name from t1;
    select * from t1
    # 不指定数据库的时查询方法
    select * from db1.t1
    改:
    # update 表名 set 字段=值 where 条件
    update t1 set name = '王文'; # 所有数据都改了
    update t1 set name = "好男人" where id = 3
    删:
    # 删除id为1的这一条数据
    delete from t1 where id = 1;
    # 删除所有
    delete from t1;
    # 清空数据,重置自增id (速度更快)
    truncate table t1;

    ### part 5

    常用的数据类型:

    整型

    tinyint 1个字节 有符号(-128 ~ 127) 无符号 (0 ~ 255) 小整型值
    int 4个字节 有符号(-21亿 ~ 21亿) 无符号(0 ~42亿) 大整型值 , 精度更高
    create table t1(id int , sex tinyint);
    create table t11(id int unsigned , sex tinyint);

    insert into t11 values(4200000000,128) error
    insert into t11 values(4200000000,127) 
    

    浮点型:

    float(255,30) 单精度
    double(255,30) 双精度
    decimal(65,30) 一般用于表达金钱类型,是使用字符串的形式保存的小数

    create table t2(f1 float(5,2) , f2 double(5,2) , f3 decimal(5,2));
    insert into t2 values(1.234,1.234,1.234);
    
    # decimal 默认保留整数部分,double默认保留的小数为比float更多,精度更高,float默认小数保留5位,存在四舍五入
    create table t3(f1 float,f2 double,f3 decimal);
    insert into t3 values(1.235555555555555555555,1.235555555555555555555666666666666666666666666666666666,1.699995555555555555555555);
    

    字符串:

    char(11) 定长:固定开辟11个长度的空间 (手机号,身份号) 速度快
    varchar(11) 变长:最大开辟字符长度为11的空间 (文章评论 5~255 个评论字数) 相较于char速度慢
    text 这种类型专门用于存储文章,论文,小说.
    create table t4(c char(11),v varchar(11),t text);
    insert into t4 values('1122' , 'dddff' , "sdfsdfsdfsdfssadfsadf1")
    select concat(c,v,t) from t4;
    select concat(c,":",t) from t4;

    枚举 % 集合

    enum 和 set 的数据类型,必须从中进行挑选
    enum 枚举 从一组数据中选一个(性别)
    set 集合 从一组数据中选多个,自动去重

    create table t5(
    	id int,
    	name varchar(15),
    	money float(6,2),
    	sex enum("man","woman"),
    	hobby set("eat","drink","piao","du","smoke")	
    )
    
    insert into t5(id,name,money,sex,hobby) values(1,'liyi',9999.1,"woman","piao,du");
    insert into t5(id,name,money,sex,hobby) values(1,'liyi',9999.1,"woman","piao,piao,piao,du");
    

    mysql 的内置函数

    concat(参数1,参数2,参数3 ........) 把所有的参数拼接在一起
    

    ### 目的:配置linux中的文件my.cnf

    找: find / -name my.cnf

    结果如下:

    !includedir /etc/mysql/conf.d/
    !includedir /etc/mysql/mysql.conf.d/

    cd /etc/mysql/conf.d/ => mysql.cnf
    nano mysql.cnf [mysql]

    把下面的代码写入客户端中

    [mysql]

    设置mysql客户端默认字符集

    default-character-set=utf8

    cd /etc/mysql/mysql.conf.d/ => mysql.cnf
    nano mysql.cnf [mysqld]
    把下面的配置写到文件中

    服务端使用的字符集默认为8比特编码的latin1字符集

    character-set-server=utf8

    创建新表时将使用的默认存储引擎

    default-storage-engine=INNODB

    重启

    service mysql restart

  • 相关阅读:
    Sqoop
    Mediawiki
    TextMate 通用快捷键
    Wind7外接显示器选择拓展模式后,鼠标只能往右移动才能切换到外接显示器上,不能修改切换方向
    用Nginx+Lua(OpenResty)开发高性能Web应用
    netty4.0.x源码分析—bootstrap
    mysql分组合并GROUP_CONCAT
    Only POT texture can be compressed to PVRTC format
    手机屏幕左下角显示Fastboot mode是什么情况?
    判断UNITY版本号
  • 原文地址:https://www.cnblogs.com/caiwenjun/p/11945274.html
Copyright © 2011-2022 走看看