MySQL的深入淺出(一)—— 初識MySQL

初識MySQL


登陸數據庫

  1. 配置環境變量:在系統環境變量path

C:\Program Files\MySQL\MySQL Server 5.7\bin

  1. 登陸數據庫:

cmd命令行下:mysql -h 127.0.0.1 -P 3306 -u root -p
輸入密碼:

	注意:大寫P,端口號;小寫p:密碼

數據類型

  1. 整數類型
整數類型 字節 最大值 最小值
TINYINT 1 有符號-128
無符號0
有符號127
無符號255
SMALLINT 2 有符號-32768
無符號0
有符號32767
無符號65535
MEDIUMINT 3 有符號-8388608
無符號0
有符號8388607
無符號1677215
INT/INTEGER 4 有符號-2147483648
無符號0
有符號2147483647
無符號4294967295
BIGINT 8 有符號-9223372036854775808
無符號0
有符號9223372036854775807
無符號18446744073709551615
	硬件十分發達:已經不需要考慮內存了,一般使用INT就夠了(BIGINT太大了不怎麼用)
  1. 浮點數據類型:
浮點數類型 字節
FLOAT 4
DOUBLE 8
  1. 日期類型:
日期類型 字節 最大值 最小值
DATE 4 1000-01-01 9999-12-31
DATETIME 8 1000-01-01 00:00:00 9999-12-31 23:59:59
(時間戳)TIMESTAMP 4 19700101080001 2038年某一時刻
TIME 3 -838:59:59 838:59:59
YEAR 1 1901 2155
  1. 字符串類型:
字符串類型 字節 描述及存儲希求
CHAR(M) M M爲0~255之間的數
VARCHAR(M) M M爲0~255之間的數
區別: 
    1)char是定長的,也就是當你輸入的字符小於你指定的數目時,char(8),你輸入的字符小於8時,它會再後面補空值。
				當你輸入的字符大於指定的數時,它會截取超出的字符。
				
    2)R。存儲變長數據,但存儲效率沒有CHAR高。如果一個字段可能的值是不固定長度的,我們只知道它不可能超過10個字符,
				把它定義爲 VARCHAR(10)是最合算的。VARCHAR類型的實際長度是它的值的實際長度+1。
				爲什麼“+1”呢?這一個字節用於保存實際使用了多大的長度。

約束

  1. 完整性檢查就是指檢查數據的準確性和完整性;

    mysql數據庫管理系統提供了一系列機制來檢查數據庫表中的數
    據是否滿足規定的條件,以保證數據庫表中數據的準確性和一致性,這種機制就是 約束 !

  2. 約束:
    | 關鍵字 | 解釋 |
    | ------- | ----|
    | NOT NULL | 約束字段的值不能爲空 |
    | DEFAULT | 設置字段的默認值 |
    | UNIQUE KEY | 字段的值唯一 |
    | PRIMARY KEY | 主鍵非空且唯一 |
    | AUTO INCREMENT | 字段自動增長 |
    | FOREIGN KEY(FK) | 約束字段爲表的外鍵 |

    企業裏的默認外鍵名稱:FK_數字編號,同一個數據庫中的外鍵編號不能相同
    
    1)自動增長約束必須是主鍵,而且數據類型是int
    2)自動增長的數字不會回退
    
    子表:擁有外鍵的表
    父表:子表外鍵指向的主鍵所在的表
    注意:
        1)字表的取值範圍受到父表的約束
    	2)先建父表,再建字表;先有父表數據,再有字表數據
    	3)刪除的時候先刪除子表,再刪除父表
    

數據庫的使用

  1. 系統自帶的數據庫:不同版本數據庫軟件默認數據庫不同(莫動!!!)

information_schema
mysql
performance_schema
sys
以上四個爲系統數據庫(自帶的)
sakila
world

  1. 查看命令

show databases;顯示所有數據庫
show tables;顯示當前使用數據庫的所有表

  1. 創建數據庫(創建數據庫的時候指定數據庫字符集爲utf8,不是UTF-8):

create dadabase 數據庫名稱;

create database if not exists 數據庫名稱 default charset=utf8;

  1. 刪除數據庫:

drop database 數據庫名稱;

  1. 使用數據庫(選擇一個數據庫進行操作):use 數據庫名稱;
  2. 創建表:
    create table commoditytype(
     	ct_id int(11) primary key,
     	ct_name varchar(50) not null   	//最後一行不用加逗號
     )default charset=utf8;			 	//建議寫上,不寫默認數據庫編碼;結束命令的分號別忘了
     
 	create table commodity(
 		c_id int(11) primary key,
 		c_name varchar(50) not null,
 		c_madein varchar(50) not null,
 		c_type int(11) not null,
 		c_inprice int(11) not null,
 		c_outprice int(11) ,
 		c_num int(11) default '100',
 		constraint fk_1 foreign key (c_type) references commoditytype (ct_id)
     )default charset=utf8;
 	
 	create table customer(
 		cu_id int(11) primary key,
 		cu_name varchar(50) not null,
 		cu_phone varchar(50) not null,
 		cu_gender int(11) not null default '1',
 		cu_address varchar(100) not null
     )default charset=utf8;
 	
 	create table `order`(				//order是關鍵字使用反引號
 		o_id int(11) primary key auto_increment,
 		o_cuid int(11) not null,
 		o_cid int(11) not null,
 		o_num int(11) not null,
 		constraint fk_2 foreign key (o_cuid) references customer (cu_id),
 		constraint fk_3 foreign key (o_cid) references commodity (c_id)
     )default charset=utf8;
  1. desc 表名;描述表明

    desc `order`;
    desc customer;

  2. 表名,字段名等如果和數據庫關鍵字相同,使用反引號(esc下,tab上)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章