zoukankan      html  css  js  c++  java
  • 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     //删除表结构

  • 相关阅读:
    leetcode Convert Sorted List to Binary Search Tree
    leetcode Convert Sorted Array to Binary Search Tree
    leetcode Binary Tree Level Order Traversal II
    leetcode Construct Binary Tree from Preorder and Inorder Traversal
    leetcode[105] Construct Binary Tree from Inorder and Postorder Traversal
    证明中序遍历O(n)
    leetcode Maximum Depth of Binary Tree
    限制 button 在 3 秒内不可重复点击
    HTML 和 CSS 画三角形和画多边行基本原理及实践
    在线前端 JS 或 HTML 或 CSS 编写 Demo 处 JSbin 与 jsFiddle 比较
  • 原文地址:https://www.cnblogs.com/karl-python/p/9017431.html
Copyright © 2011-2022 走看看