mysql基礎一

來源:互聯網
上載者:User

標籤:配置   let   枚舉   set   數值   down   rom   rem   參數   

環境資訊
  • 資料庫:mysql-5.7.20

  • 作業系統:Ubuntu-16.04.3

mysql的啟動、退出、重啟
# 啟動$ sudo service mysql start# 停止$ sudo service mysql stop# 重啟$ sudo service mysql restart# 查看進程ps ajx|grep mysql
登陸和退出
# username代表使用者名稱;可以先不輸入密碼,斷行符號後再輸入,方式密碼出現明文mysql -u username -p password# 退出quit;exit;
遠端連線

前提是遠端資料庫配置了允許遠端連線;

# mysql -h ip地址 -u root -p-h後面寫要串連的主機ip地址-u後面寫串連的使用者名稱-p斷行符號後寫密碼
資料庫基本操作
# 建立資料庫,dbname為資料庫名,charset指定編碼create database dbname charset=utf8;# 刪除資料庫drop database 資料庫名;# 切換資料庫use 資料庫名;# 查看當前選擇資料庫select database();# 查看所有的資料庫show databases;
表的基本操作
# 查看當前資料庫的所有表show tables;# 查看錶的結構desc 表的名字# 查看某個表的建立語句show create table 表名;# 更改表的名字rename table 原表名 to 新表名;# 建立一個表create table 表名(定義欄位)# 刪除一個表drop table 表名;# 有時出現刪除失敗的情況,一般是表進行了相互關聯的情況,使用set foreign_key_checks = 0;關閉外鍵約束,刪除成功後啟動外鍵約束set foreign_key_checks = 1;# 增加欄位alter table 表名 add 列名 類型;# 對欄位重新命名alter table 表名 change 原名 新名 類型及約束;# 修改欄位的類型和約束alter table 表名 modify 列名 類型及約束;# 刪除欄位alter table 表名 drop 欄位
資料類型及約束
create table person(    -> id int unsigned primary key auto_increment not null,    -> name varchar(20) default ‘‘,    -> age tinyint unsigned default 0,    -> gender enum(‘男‘,‘女‘,‘保密‘),    -> isdelete bit default 0    -> );

表的欄位的定義格式為:

欄位名  類型  約束
  • 欄位名:任意名,一般為字元變數;

  • mysql常用類型:

  • 數實值型別:
    tinyint:-128~128 1個位元組
    samllint:-32768 ~ 32767 2個位元組
    int:-2147483648 ~2147483647 4個位元組

  • 字串類型

char: 可定義0~255個位元組,如char(5),定義後不可變;每個值一定佔5個位元組;
varchar: 可定義0~255個位元組,如varchar(5),定義後可變;每個值儲存可小於5個位元組;
text:可定義0~65535個位元組,用來傳送大文本;

  • bit

bit儲存位欄位值,bit(m),m的範圍1~64,預設為1;

  • 枚舉類型:

enum:enum("1","2"),非法插入時會插入Null 字元串,其值為0;如果聲明不允許為空白,則預設值為允許值得第一個元素;索引規則從第一個開始;最大可以有65535

  • 定點數

decimal:如decimal(M,D),M表示數值的總的位元,D表示小數部分的位元;不指定預設取值decimal(10,0),一個參數則D取值0;M取值範圍為1~65,超出報錯,D取值0~30,超出報錯;
numeric:和decimal是相同的類型;

  • 浮點數

float : float(M,D),M取值範圍為0~255,當M小於6位元字的時候是準確的,超出範圍報錯;D取值範圍0~30,。
real : real(M,D),
double : double(M,D),M,D範圍和float一樣,M<=16時,數字是準確的。

  • 注意

在FLOAT和DOUBLE中,若M的定義分別超出7和17,則多出的有效數字部分,取值是不定的,通常數值上會發生錯誤。

  • 時間類型

| 類型 | 位元組 | 舉例 |

| DATE | 4 | ‘2020-01-01‘ |

| TIME | 3 |‘12:29:59‘ |

| DATETIME | 8 |‘2020-01-01 12:29:59‘ |

| YEAR | 1 |‘2017‘

  • 約束
# 一個欄位可以有多個約束,在定義的時候依次寫在後面primary key : 主鍵,物理上儲存的順序;auto_increment:自增長,一般配合主鍵使用;not null:非空,欄位不允許填寫空值;default:預設值;foreign key:外鍵;unique:欄位不允許重複;unsigned:無符號,針對的是數實值型別;指的是非負數;signed:有符號,值有理數;
Database Backup及大量操作備份與恢複
# 將資料匯出mysqldump –u uesrname –p 資料庫名 > mysql.sql;# 將資料匯入新的資料庫mysql -u username -p 資料庫名 < mysql.sql
指令碼操作資料庫
# 將所有的相關mysql操作寫入一個sql檔案# 登陸資料庫選擇要執行的資料庫source ***.sql
基本的增刪改查查:
# 查詢所有的列的列的所有的欄位select * from 表名# 查詢所有的列的部分欄位select id,name from 表名# 查詢部分列的部分欄位select id,name from 表名 where id=8;
增:
# 標準插入多行insert into 表名 values(...),(...);# 插入部分列insert into 表名(id,name) values(...),(...);# 主鍵自動成長,但是需要佔位,一般使用0;
update 表名 set 列1=值1,列2=值2... where 條件
# 刪除指定的列delete from 表名 where 條件 

mysql基礎一

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.