zoukankan      html  css  js  c++  java
  • 数据库01

    一、MySQL服务得搭建

    1.安装MySQL压缩包并解压

    wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz

    之后yum -y install mysql-server 发现无可用安装包

    这时需要MySQL的repo源:wget mysql-community-release-el7-5.noarch.rpm 

    之后安装:rpm -ivh mysql-community-release-el7-5.noarch.rpm 

    再运行yum -y install mysql-server即可安装,安装完成后,启动MySQL服务:systemctl  start mysqld

    也可以设置开机自启

    服务启动后,会自动创建名为mysql的所属主和所属组

    (如果安装mysql-server服务时使用了数字密钥认证,就可以直接登录数据库)

    2.使用初始密码连接服务,初始密码在日志文件:/var/log/mysqld.log下

    3.修改初始密码:alter user root@"localhost" identfied by "密码"

    4.使用新密码登录: mysql -hlocalhost -uroot -p"密码"

    可以修改密码策略:

    show variables like "%password%"来查看密码策略(这里是不需密码登录的状态)

    mysql> show variables like "%password%";
    +--------------------------------+-------+
    | Variable_name                  | Value |
    +--------------------------------+-------+
    | disconnect_on_expired_password | ON    |
    | old_passwords                  | 0     |
    | report_password                |       |
    +--------------------------------+-------+
    3 rows in set (0.01 sec)

    之后在命令行执行set global  策略=值是临时,选择在配置文件/etc/my.cnf 中修改

    vim /etc/my.cnf

    [mysqld]下来配置

    二、管理库基本命令

    2.1基本库命令

    1.show databases; 显示已有得库

    2、select user(); 显示连接用户

    mysql> select user();
    +----------------+
    | user()         |
    +----------------+
    | root@localhost |
    +----------------+
    1 row in set (0.31 sec)

    3、select database();显示当前所在库

    4、create database 库名; #创建新库

    5、use 库名 #切换到库下,相当于cd

    mysql> use abc123
    Database changed
    mysql> select database();
    +------------+
    | database() |
    +------------+
    | abc123     |
    +------------+
    1 row in set (0.00 sec)

    6.show tabels; #显示所有表

    7、drop database 库名; #删除库

    2.2基本表命令

    1.建表

    ysql> create table abc123.stuinfo(name char(15),fromadrr char(15));
    Query OK, 0 rows affected (1.64 sec)

    2.查看表结构,desc 库名.表名;

    3.select *from 库名.表名 ;  #查看表记录

    mysql> select *from abc123.stuinfo;

    +----------+----------+

    | name     | fromadrr |

    +----------+----------+

    | zhangsan | beijing  |

    | lisi     | beijing  |

    +----------+----------+

    4.insert into 库名.表名 values(值列表);(字符类型要用“ ”括上)

       insert into abc123.stuinfo values("zhangsan","beijing"),("lisi","nanjin");

    5.updata 库名.表名 set 字段=值 #修改表记录

      update abc123.stuinfo set fromadrr="beijing";

    6、delete form 表名;#修改表记录

      delete from stuinfo;

    三、MySQL的数据类型

    字符型:

     1.定长(固定长度)char

      —最大字符个数255

      —不够字符个数时,右边用空格补齐

      —超过指定长度时,无法写入数据

     2.变长:varchar 

      —根据存储空间的大写分配存储空间

      —超过指定的长度时,无法写入数据

      —最大长度65532

     3、大文本:(音乐,视频等)(blob/text)

      —字符存储超过65535时使用

    生产环境中一般使用char 或varchar,char 类型不指定宽度时默认值为1   varchar 不允许不指定宽度

    字符类型要使用双引号引上。

    数值型

    1.整型:

    2.浮点型:

      单精度            双精度

      float              double

       格式一:   字段名: 类型

       格式二:   字段名 :类型(宽度,小数位数)

    3.日期时间类型

    *datetime

    —范围: 1000-01-01    00:00:00 ~ 9999-12-31   23:59:59   

    —格式:yyyymmddhhmmss

    *timestamp

    —范围: 1970-01-01    00:00:00 ~ 2038-01-19   00:00:00 

    —格式:yyyymmddhhmmss

    *日期 date 

    —范围:0001-01-01~9999-12-31

    —格式:yyyymmdd

    *年  year

    ——1901~2155

    —格式:yyyy

    *时间 time

    —格式:HH:MM:SS

     ###########################################################

    关于日期的时间字段:当未给timestamp赋值时,自动以当前系统时间默认赋值,而当datetime没有赋值时,默认为null

    year默认四位赋值,当使用两位时 01~69 为2001~2069           70~99时为1970~1999

    #############################################################

     其中,select curtime();   

        select curdate();   

        select  now();是用来获得当前时间的,

    mysql> select curdate();
    +------------+
    | curdate()  |
    +------------+
    | 2019-09-24 |
    +------------+
    1 row in set (0.04 sec)
    
    mysql> select curtime();
    +-----------+
    | curtime() |
    +-----------+
    | 20:45:34  |
    +-----------+

    其他命令只能做截取功能,不可以与select 连用,可以用now()获得时间,再进行截取

    mysql> select year(now()),month(now()),day(now()),time(now());
    +-------------+--------------+------------+-------------+
    | year(now()) | month(now()) | day(now()) | time(now()) |
    +-------------+--------------+------------+-------------+
    |        2019 |            9 |         24 | 20:52:45    |
    +-------------+--------------+------------+-------------+
    1 row in set (0.04 sec)

    #############################################################################################################

    4.用时间日期类建表

    mysql> create table T1 (
        -> name char(10),
        -> your_start year(4),
        -> up_time time,
        -> birthday date,
        -> party datetime);

    查看:

    mysql> desc T1;
    +------------+----------+------+-----+---------+-------+
    | Field      | Type     | Null | Key | Default | Extra |
    +------------+----------+------+-----+---------+-------+
    | name       | char(10) | YES  |     | NULL    |       |
    | your_start | year(4)  | YES  |     | NULL    |       |
    | up_time    | time     | YES  |     | NULL    |       |
    | birthday   | date     | YES  |     | NULL    |       |
    | party      | datetime | YES  |     | NULL    |       |
    +------------+----------+------+-----+---------+-------+

    插入数值:

    mysql> insert into T1 values ("zhangsan",2001,200715,20191010,now());
    Query OK, 1 row affected (0.31 sec)
    
    mysql> select * from T1;
    +----------+------------+----------+------------+---------------------+
    | name     | your_start | up_time  | birthday   | party               |
    +----------+------------+----------+------------+---------------------+
    | zhangsan |       2001 | 20:07:15 | 2019-10-10 | 2019-09-24 21:19:31 |
    +----------+------------+----------+------------+---------------------+
    1 row in set (0.00 sec)

    #######################################################################################################################

    5、枚举类型:

    enum 单选:—格式:字段名   enum(值1,值2,值N)

          —只能选择一个值,这个值必须在列表中选择

    set       多选:—格式:字段名 set(值1,值2,值N) 

          —可以选择多个值,这些值也必须在列表内

      

    建表与查看: 

    mysql> create table T2 (
        -> name char(5),
        -> likes set('eat','game','film','music'),
        -> sex enum('boy','girl','no'));
    Query OK, 0 rows affected (0.14 sec)
    
    mysql> desc T2;
    +-------+----------------------------------+------+-----+---------+-------+
    | Field | Type                             | Null | Key | Default | Extra |
    +-------+----------------------------------+------+-----+---------+-------+
    | name  | char(5)                          | YES  |     | NULL    |       |
    | likes | set('eat','game','film','music') | YES  |     | NULL    |       |
    | sex   | enum('boy','girl','no')          | YES  |     | NULL    |       |
    +-------+----------------------------------+------+-----+---------+-------+
    3 rows in set (0.01 sec)

    插入数据与查看数据:

    mysql> insert into T2 values("bob","game,music","boy");
    Query OK, 1 row affected (0.00 sec)
    
    mysql> select *from T2;
    +------+------------+------+
    | name | likes      | sex  |
    +------+------------+------+
    | bob  | game,music | boy  |
    +------+------------+------+
    1 row in set (0.00 sec)

     

  • 相关阅读:
    django组件,有分页器(重要的很)
    wusir的django
    git 生成ssh key
    阶乘问题的题解
    拱猪计分的题解
    子数整数的题解
    安全逃离的题解
    题解 P1262 【间谍网络】
    斗地主的题解
    鸭王的题解
  • 原文地址:https://www.cnblogs.com/zhanglei97/p/11581244.html
Copyright © 2011-2022 走看看