mysql基本知識學習

雖然mysql已經被收購了,可是做爲市面上主流的數據庫,仍是要學習下。mysql

MySQL有三大類數據類型, 分別爲數字、日期\時間、字符串, 這三大類中又更細緻的劃分了許多子類型:sql

  • 數字類型數據庫

    • 整數: tinyint、smallint、mediumint、int、bigint服務器

    • 浮點數: float、double、real、decimal網絡

  • 日期和時間: date、time、datetime、timestamp、yearide

  • 字符串類型工具

    • 字符串: char、varchar學習

    • 文本: tinytext、text、mediumtext、longtextspa

    • 二進制(可用來存儲圖片、音樂等): tinyblob、blob、mediumblob、longblob3d


登陸到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的自動生成與更新


 一、自動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


      三、一個表中不能有兩個字段默認值是當前時間,不然就會出錯




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)

相關文章
相關標籤/搜索