AI智能
改变未来

mysql基本知识学习

虽然mysql已经被收购了,但是作为市面上主流的数据库,还是要学习下。

MySQL有三大类数据类型, 分别为数字、日期\\时间、字符串, 这三大类中又更细致的划分了许多子类型:

  • 数字类型

    整数: tinyint、smallint、mediumint、int、bigint

  • 浮点数: float、double、real、decimal

  • 日期和时间: date、time、datetime、timestamp、year

  • 字符串类型

      字符串: char、varchar

    • 文本: tinytext、text、mediumtext、longtext

    • 二进制(可用来存储图片、音乐等): tinyblob、blob、mediumblob、longblob

    登录到MySQL

    当 MySQL 服务已经运行时, 我们可以通过MySQL自带的客户端工具登录到MySQL数据库中, 首先打开命令提示符, 输入以下格式的命名:

    mysql -h 主机名 -u 用户名 -p

    • -h : 该命令用于指定客户端所要登录的MySQL主机名, 登录当前机器该参数可以省略;

    • -u : 所要登录的用户名;

    • -p : 告诉服务器将会使用一个密码来登录, 如果所要登录的用户名密码为空, 可以忽略此选项。

     mysql -D test  -uroot -p  相当于登陆mysql服务器. use test;

    创建新用户并授权

       GRANT 权限  ON 数据库.数据表 TO 用户名@登陆主机 IDENTIFIED BY \”密码\”;

      

       GRANT SELECT,UPDATE  ON  test.*  TO  qingqing@localhost IDENTIFIED BY   \’123\’;

    创建数据库:

         CREATE DATABASE  [ IF NOT EXISTS  ] book;

     

    删除数据库

         DROP DATABASE [  IF EXISTS ]  book;

    显示所有的数据库:

        SHOW DATABASES;

    使用某个数据库:

        USE  test

    查看表的结构

           DESC  user;

    查看建表语句:

         SHOW CREATE TABLE  user;

     添加字段   ALTER TABLE user ADD age TINYINT

     修改字段  ALTER TABLE user MODIFY age int

     修改字段(同时修改字段名)   ALTER TABLE user CHANGE name username varchar(30)

     删除字段  ALTER TABLE user DROP age;

    重命名表名  RENAME   TABLE   user TO  user1;

    表的字段类型解释:

            

         mysql中timestamp的自动生成与更新

     1、自动UPDATE 和INSERT 到当前的时间:

         `p_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

          

       2.自动INSERT 到当前时间,不过不自动UPDATE。

    `p_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP

          3、一个表中不能有两个字段默认值是当前时间,否则就会出错

    MySQL中存在float,double等非标准数据类型,

    也有decimal这种标准数据类型。

    其区别在于,float,double等非标准类型,在DB中保存的是近似值,而Decimal则以字符串的形式保存数值。

    再举例: DECIMAL(5,3)

    1.2345 — 小数点后最多3位,所以保存可以,自动四舍五入数据截断。

    12.345 — OK

    123.45 — 因为小数部分未满3位,要补0.所以保存应该123.450。所以整个位数超出了5,保存不可。

    1.2 — 小数未满部分补0。按照1.200保存。

    float(M,S) M为全长,S为小数点后长度 (开头0不算)。对于不精准的例子,网络上很多,Copy如下:

    mysql> create table t1(c1 float(10,2), c3decimal(10,2)); 

    Query OK, 0 rows affected (0.02 sec)

    mysql> insert into t1 values(9876543.21, 9876543.12);            

    Query OK, 1 row affected (0.00 sec)

  • 赞(0) 打赏
    未经允许不得转载:爱站程序员基地 » mysql基本知识学习