• 2018年5月8日笔记


    • CentOS 7上安装mysql
    # CentOS 7 安装mysql
    
    1. 检测系统是否自带安装 mysql
    rpm -qa | grep mysql
    
    2. 若已安装,可以进行卸载
    rpm -e mysql    //普通删除模式
    rpm -e --nodeps mysql   //强力删除模式,若普通删除时提示存在依赖文件,则进行强力删除
    
    3. 安装mysql
    # centOS 7
    yum install mariadb-server mariadb      //在CentOS 7中,由于 MySQL数据库已从默认的程序列表中移除,可以使用 mariadb 代替
    systemctl start mariadb         //启动mariadb
    mysqladmin --version            //验证mysql是否工作正常
    
    # centOS 6
    yum install mysql
    yum install mysql-server
    yum install mysql-devel
    service mysqld start            //启动mysql
    
    4. 安装完成后需设置root密码
    mysqladmin -u root password xxxxxx     //设置root密码
    mysql -u root -p                //连接到sql服务器
    • mysql常用的show命令

    1. show databases;                //显示所有数据库名称

    2. show tables; 或 show tables from databse_name;  //显示数据库中所有变的名称

    3. show variables;                 //显示系统变量

    4. show processlist;                //显示当前运行的所有进程

    5. show columns from database_name.table_name;  //显示表中列名称

    6. show grants for user_name;           //显示一个用户的权限

    7. show index from table_name;          //显示表的索引

    8. show create database database_name;      //显示一个数据库的create语句

    9. show create table table_name;          //显示一个表的create语句

    10. show status;                 //显示一些系统特定资源的信息,例如,正在运行的线程数量

    11. show table status;              //显示当前使用或者指定的database中的每个表的信息,信息包括表类型和表的最新更新时间

    12. show privileges;               //显示服务器所支持的不同权限

    • mysql 数据类型

    1. 数值类型:

    类型大小范围(有符号)范围(无符号)用途
    TINYINT 1 字节 (-128,127) (0,255) 小整数值
    SMALLINT 2 字节 (-32 768,32 767) (0,65 535) 大整数值
    MEDIUMINT 3 字节 (-8 388 608,8 388 607) (0,16 777 215) 大整数值
    INT或INTEGER 4 字节 (-2 147 483 648,2 147 483 647) (0,4 294 967 295) 大整数值
    BIGINT 8 字节 (-9 233 372 036 854 775 808,9 223 372 036 854 775 807) (0,18 446 744 073 709 551 615) 极大整数值
    FLOAT 4 字节 (-3.402 823 466 E+38,-1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38) 0,(1.175 494 351 E-38,3.402 823 466 E+38) 单精度
    浮点数值
    DOUBLE 8 字节 (-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) 0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) 双精度
    浮点数值
    DECIMAL 对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2 依赖于M和D的值 依赖于M和D的值 小数值

    2. 日期和时间类型:

    类型大小
    (字节)
    范围 格式 用途
    DATE 3 1000-01-01/9999-12-31 YYYY-MM-DD 日期值
    TIME 3 '-838:59:59'/'838:59:59' HH:MM:SS 时间值或持续时间
    YEAR 1 1901/2155 YYYY 年份值
    DATETIME 8 1000-01-01 00:00:00/9999-12-31 23:59:59 YYYY-MM-DD HH:MM:SS 混合日期和时间值
    TIMESTAMP 4

    1970-01-01 00:00:00/2038

    结束时间是第 2147483647 秒,北京时间 2038-1-19 11:14:07,格林尼治时间 2038年1月19日 凌晨 03:14:07

    YYYYMMDD HHMMSS 混合日期和时间值,时间戳

    3. 字符串类型:

    类型大小用途
    CHAR 0-255字节 定长字符串
    VARCHAR 0-65535 字节 变长字符串
    TINYBLOB 0-255字节 不超过 255 个字符的二进制字符串
    TINYTEXT 0-255字节 短文本字符串
    BLOB 0-65 535字节 二进制形式的长文本数据
    TEXT 0-65 535字节 长文本数据
    MEDIUMBLOB 0-16 777 215字节 二进制形式的中等长度文本数据
    MEDIUMTEXT 0-16 777 215字节 中等长度文本数据
    LONGBLOB 0-4 294 967 295字节 二进制形式的极大文本数据
    LONGTEXT 0-4 294 967 295字节 极大文本数据
    • Python中pymysql模块的一般用法
     1 import pymysql
     2 
     3 # 创建连接
     4 conn = pymysql.connect(host="xx.xx.xx.xx", port=xxxx, user="user1", passwd="passwd1", db="test")
     5 # 创建游标
     6 cur = conn.cursor()
     7 # 定义sql
     8 sql = "select * from test;"
     9 
    10 # 执行sql语句
    11 # cur.execute(sql)
    12 # 执行多条语句(不常用)
    13 # cur.executemany()
    14 # 取所有结果
    15 # cur.fetchall()
    16 # 取一个结果
    17 # cur.fetchone()
    18 # 取10行数据
    19 # cur.fetchmany(size=10)
    20 # 关闭游标
    21 # cur.close()
    22 
    23 try:
    24     cur.execute(sql)
    25     result = cur.fetchone()
    26     print(result)
    27 except Exception as e:
    28     raise e
    29 finally:
    30     cur.close()
    31     conn.close()
    • 创建表格

    一般语法为:

    create table table_name(

      column_name  type  not null,

      ...... );

    例如:

    create table Student(
    stdID int not null,
    stdName varchar(100),
    age int,
    score int);
    • 如何给用户user1授予超级用户权限
    grant all privileges on *.* to 'user1'@'%' identified by '123456' with grant option;
    • mysql的增删改查

    1. 查询记录

    select column_names from table_name where condition group by column_name1 having count(*)>1 order by column_name2 desc;

    2. 插入记录

    insert into table_name (id, name, age) values (1001, 'Karl', 20);

    3. 删除记录

    delete from table_name where condition;

    4. 更改记录

    update table_name set column_name=xxx where condition;
    • 索引

    1. 创建索引

    CREATE INDEX indexName ON mytable(username(length)); 

    2. 修改表结构(添加索引)

    ALTER table tableName ADD INDEX indexName(columnName);

    3. 创建表的时候直接指定

    CREATE TABLE mytable(  
     
    ID INT NOT NULL,   
     
    username VARCHAR(16) NOT NULL,  
     
    INDEX [indexName] (username(length))  
     
    );  

    4. 删除索引

    CREATE TABLE mytable(  
     
    ID INT NOT NULL,   
     
    username VARCHAR(16) NOT NULL,  
     
    INDEX [indexName] (username(length))  
     
    );  
    • mysql的其他常用语句

    以下2个语句均能查看表结构,第2种显示更清晰

    (1) show create table_name;

    (2) desc table_name;

    truncate  //只清楚数据,不删除表结构

    drop     //删除表结构

  • 相关阅读:
    php的cURL库介绍
    php函数ob_start()、ob_end_clean()、ob_get_contents()
    php中curl、fsockopen的应用
    App架构设计经验谈:服务端接口的设计
    图解正向代理与反向代理
    三种数据库连接池的配置
    数据库连接池在Tomcat中的几种配置方法
    Java四种线程池的使用
    JVM调优总结(一)-- 一些概念
    JVM调优总结(十)-调优方法
  • 原文地址:https://www.cnblogs.com/karl-python/p/9017431.html
Copyright © 2020-2023  润新知