zoukankan      html  css  js  c++  java
  • python学习第35天

    一. MySQL 数据库

    (1)

    命令可以用tab来补全
    d:
    D:>cd MySQL5.7
    D:>cd D:MySQL5.7mysql-5.7.25-winx64in 直接切换到对应的路径
    D:>dir 来查看文件夹里面的内容

    (2)

    cls 清屏(windows) ctrl + l 清屏(linux)
    ctrl + c 终止

    [windows] 在超级管理员权限下才能使用:
    net start mysql 启动mysql
    net stop mysql 停止mysql

    [linux]
    service mysql start 启动mysql
    service mysql stop 停止mysql
    service mysql restart 重启mysql

    (3)登录完整语法:
    mysql -u用户名 -p密码 -h地址ip

    1 .登录到本地mysql 默认用户root 是最高权限账户

    mysql -uroot -p

    localhost => 127.0.0.1 本地ip地址

    2 . 退出mysql

    q 或者 exit

    3 .远程连接mysql 服务器

    mysql -uroot -p -h192.168.65.130

    4 . 查询当前登录的用户是谁

    select user();

    5 . 设置密码

    set password = password("123456");

    6 . 去除密码

    set password = password("");

    windows连接远程linux中的mysql

    ​ create user "ceshi100"@"192.168.65.1" identified by "333";

    给具体某个网段下的所有ip设置账户 % 代表任意的数据0~255

    ​ create user "ceshi11"@"192.168.111.%" identified by "111"

    所有的ip都可以登录 % 任意所有ip

    ​ create user "ceshi12"@"%" identified by "111"

    USAGE 没有任何权限

    mysql> show grants for "ceshi12"@"%";
    +-------------------------------------+
    | Grants for ceshi12@% |
    +-------------------------------------+
    | GRANT USAGE ON . TO 'ceshi12'@'%' |
    +-------------------------------------+
    1 row in set (0.00 sec)

    7 . 赋予权限

    grant 权限 on 数据库.表名 to "用户名"%"ip地址" identified by "密码":

    主要权限

    select 查询数据库的权限
    insert 插入数据库的权限
    update 更新数据库的权限
    delete 删除数据库的权限

    1)all 代表所有的权限

    grant all on . to "ceshi12"@"%" identified by "333";

    2)查看所有数据库

    show databases;

    3)移除权限

    revoke all on . from "ceshi12"@"%";

    4)删除账户

    drop user "ceshi12"@"%";

    5)刷新权限,立刻生效

    flush privileges

    二.操作数据库

    (1) 操作[数据库] (文件夹)

    ​ 创建数据库

    ​ create database db0616 charset utf8;

    ​ 查看所有数据库

    ​ show databases;

    ​ 查看数据库的建表语句

    show create database db0616 ;
    CREATE DATABASE `db0616_2` /*!40100 DEFAULT CHARACTER SET utf8 */
    


    alter 更改数据库的字符集
    alter database db0616 charset gbk


    删除数据库db0616
    drop database db0616;

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

    选择数据库
    use 数据库名

    ​ 查询所有数据表

    ​ show tables;

    ​ 查看表的建表语句

    ​ show create table t1G #( 加上G 垂直显示 ,默认横向显示)

    """
    CREATE TABLE `t1_1` (
      `id` int(11) DEFAULT NULL,
      `name` char(1) DEFAULT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8	
    """
    

    ​ 查看表结构

    ​ desc t1;

    # modify 只能改变数据类型
    alter table t1 modify name char(5);
    # change 练字段名+数据类型一起改变
    alter table t1 change name NAME char(4);
    alter table t1 change name name_new char(4);
    # add  添加字段
    alter table t1 add age int;
    # drop 删除字段 column列(字段,关键字)
    alter table t1 drop column age;
    # rename 更改表名
    alter table t1 rename t1_1;
    

    # 删除表t1_1
    drop table t1_1;
    

    (3)操作记录(文件里面的数据)

    mysql null 相当于 python None 是一样的 代表空的 什么也没有

    # 一次插入一条数据
    '''insert into 表名(字段1,字段2 ...) values(值1,值2 ... )'''
    insert into t1(id,name) values(1,"xboy1")
    # 一次插入多条数据
    insert into t1(id,name) values(2,"xboy2"),(3,"xboy3"),(4,"xboy4")
    # 不指定具体字段,默认把所有字段值查一遍
    insert into t1 values(5,"xboy5");
    # 可以具体指定某个字段进行插入
    insert into t1(name) values("xboy6")	
    

    # * 代表所有
    select * from t1;
    # 把要搜索的字段写在select 后面
    select id,name from t1;
    

    # update 表名 set 字段=值 where  条件
    update t1 set name="王文" where id = 1
    # 如果不加条件 , 所有的数据都会改掉
    update t1 set name="王文" 
    

    # 删除id为2的这条数据
    delete from t1 where id = 2
    delete from t1 
    
    # 重置数据表 (重置id)
    truncate table t1;python
    

    (4) 常用数据类型

    1)整型

    tinyint 1个字节 有符号(-128 ~ 127) 无符号(unsigned) (0~255) 小整型值
    int 4个字节 有符号(-21亿 ~ 21亿 左右) 无符号(0~42亿左右) 大整型值

    create table t1(id  int , sex  tinyint);
    insert into t1 values(4000000000,127); error
    insert into t1 values(2000000000,127);
    

    2)浮点型

    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.666666666666666666666666666,1.666666666666666666666666666,1.666666666666666666666666666);		
    
    """float 小数位默认保留5位,double小数位默认保留16位,decimal 默认保留整数位,存在四舍五入"""
    create table t3(f1 float , f2 double , f3 decimal);
    insert into t3 values(1.666666666666666666666666666,1.666666666666666666666666666,1.666666666666666666666666666);		
    
    # float(5,2) 5=>代表总长度(整数+小数)  2=> 小数长度,保留2位
    create table t6(f1 float(5,2));
    insert into t4 values(12.34567);
    insert into t5 values(1234.34567);
    

    3)字符串 char(字符长度) varchar(字符串) text

    char(11) 定长:固定开辟11个字符长度的空间(手机号,身份证号), 开辟空间的速度上说: char更快
    varchar(11) 变长:最多创建字符长度为11的空间(小广告,评论) 开辟空间的速度上说: 相较于char稍慢
    text 文本类型,针对于文章,小说

    create table t7(c char(11) , v varchar(11) , t text);
    insert into t7 values("11111","盛占涛祖玛套大保健你你","倚天屠龙宝刀,掉率0.00001");
    select concat(c,":",v,":",t) from t7; 
    

    concat 拼接

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

    4)枚举和集合

    enum 枚举 : 从列出来的数据当中选一个(性别)
    set  集合 : 从列出来的数据中选多个(自动去重)
    
    create table t8(
    id int , 
    name char(10), 
    money float(6,2) , 
    sex enum("man","woman"),
    hobby set("beat_doudou","smoke","drink","tang_head")	
    )
    
    # 正常写法
    insert into t8(id,name,money,sex,hobby) values(1,"张三",9.66666,"woman","smoke,tang_head");
    
    # 自动去重
    insert into t8(id,name,money,sex,hobby) values(1,"张三",9.66666,"woman","beat_doudou,beat_doudou,beat_doudou,beat_doudou");
    
  • 相关阅读:
    【BZOJ】3052: [wc2013]糖果公园
    【BZOJ】3757: 苹果树
    【BZOJ】1086: [SCOI2005]王室联邦
    【POJ】3648 Wedding
    【POJ】3678 Katu Puzzle
    【POJ】2296 Map Labeler
    【POJ】3207 Ikki's Story IV
    【HDU】1814 Peaceful Commission
    【HDU】2829 Lawrence
    【HDU】3480 Division
  • 原文地址:https://www.cnblogs.com/yunchao-520/p/13149801.html
Copyright © 2011-2022 走看看