初識MySQL
1. 安裝MySQL-5.7.23.0
- MySQL下載(官網)
MySQL官網 - MySQL安裝
注意:
1.記住端口號:3306
2.記住自己設定的密碼
3.記住服務號(Windows Server Name) - MySQL的環境變量配置
找到安裝的bin目錄
在環境變量Path中添加
##2.MySQL實現登錄
window+R:輸入cmd,接着輸入mysql -h localhost -P 3306 -u root -p;回車後再輸入密碼;輸入exit結束
##3.數據庫當中的數據類型
(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 |
(2)浮點數類型
浮點數類型 | 字節 | 最小值 | 最大值 |
---|---|---|---|
FLOAT | 4 | ±1.175494351E–38 | ±1.175494351E+38 |
DOUBLE | 8 | ±2.2250738585072014E–308 | ±2.2250738585072014E+308 |
(3)定點數類型
定點數類型 | 字節 | 描述 |
---|---|---|
DEC(M,D),DECIMAL(M,D) | M+2 | 最大取值範圍與DOUBLE相同,給定DECIMAL的有效取值範圍由M和D決定 |
(4)位類型
位類型 | 字節 | 最小值 | 最大值 |
---|---|---|---|
BIT(M) | 1~8 | BIT(1) | BIT(64) |
(5)日期類型
時間日期 | 字節 | 最小值 | 最大值 |
---|---|---|---|
DATE | 4 | 1000-01-01 | 9999-12-31 |
DATETIME | 8 | 1000-01-01 | 9999-12-31 23:59:59 |
TIMESTAMP | 4 | 19700101080001 | 2038年每個時刻 |
TIME | 3 | -838:59:59 | 838:59:59 |
YEAR | 1 | 1901 | 2155 |
(6)字符串類型
字符串類型 | 字節 | 描述及存儲需求 |
---|---|---|
CHAR(M) | M | M爲0~255之間的數 |
VARCHAR(M) | M爲0~65535之間的整數,值的長度+1個字節 | |
TEXT | 允許長度0~65535字節,值得長度+2個字節 | |
TINYTEXT | 允許長度0~255字節,值得長度+2個字節 | |
MEDIUMTEXT | 允許長度0~167772150字節,值得長度+3個字節 | |
LONGTEXT | 允許長度0~4294967295字節,值得長度+4個字節 |
注意:最常用的是CHAR(M)和VARCHAR(M)
##4.Mysql中的約束
MySQL中的6大約束:
關鍵字 | 解釋 |
---|---|
NOT NULL | 約束字段的值不能爲空 |
DEFAULT | 設置字段的默認值 |
UNIQUE KEY(UK) | 約束字段的值是唯一 |
PRIMARY KEY(PK) | 約束字段爲表的主鍵,可以作爲該表記錄的唯一標識 |
AUTO_INCREMENT | 約束字段的值爲自動增長 |
FOREIGN KEY(FK) | 約束字段爲表的外鍵 |
非空:在我們新增數據的時候 這個字段必須新增的同時有值;
默認:在你沒有給定值得時候 數據庫默認的值
唯一:唯一是指一個字段中所有的值不能重複
主鍵:通過主鍵一定能找到唯一的一條記錄(主鍵包含非空且唯
一這兩種約束)
自動增長: 主鍵數字自動往上遞增1;可以使用自動增長的約束
(1.自動增長約束必須是主鍵而且數據類型是int。2.自動增長的
數字不會回退)
外鍵約束:子表的取值範圍受父表約束;
##5.cmd命令下創建四種表
商品種類表(commoditytype)
字段名 | 數據類型 | 說明 |
---|---|---|
ct_id | int | 商品種類編號,主鍵 |
ct_name | varchar(50) | 商品種類名稱非空 |
create table commoditytype(
->ct_id int(11) primary key,
->ct_name varchar(50) not null
->)default charset=utf8;
商品表(commodity)
字段名 | 數據類型 | 說明 |
---|---|---|
c_id | int | 商品編號,主鍵 |
c_name | varchar(50) | 商品名稱,非空 |
c_madein | varchar(50) | 商品產地,非空 |
c_type | int | 商品種類,外鍵 |
c_inprice | int | 商品進價,非空 |
c_outprice | int | 商品售價 |
c_num | int | 商品庫存,默認100 |
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;
客戶表-customer
字段名 | 數據類型 | 說明 |
---|---|---|
cu_id | int | 客戶編號,主鍵 |
cu_name | varchar(50) | 客戶名字,非空 |
cu_phone | varchar(50) | 客戶電話,非空 |
cu_gender | int | 客戶性別,默認‘1’ |
cu_address | varchar(100) | 客戶地址,非空 |
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;
訂單表-order
字段名 | 數據類型 | 說明 |
---|---|---|
o_id | int | 訂單編號,主鍵,自增長 |
o_cuid | int | 客戶編號 |
o_cid | int | 商品編號 |
o_num | int | 商品數量 |
create table `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;
注意:order是關鍵字要用``符號