MySql中的資料型別
1.數值
| 型別 | 大小 | 范圍 | 范圍 | 用途 |
| TINYINT | 1位元組 | -27~ 27 -1 | 0~28 -1 | 小整數 |
| SMALLINT | 2位元組 | -215~ 215 -1 | 0~216 -1 | 大整數 |
| MEDIUMINT | 3位元組 | -223~ 223 -1 | 0~224 -1 | 大整數 |
| INT | 4位元組 | -231 ~ 231 -1 | 0~ 232 -1 | 大整數 |
| BIGINT | 8位元組 | -263~ 263 -1 | 0~264 -1 | 極大整數 |
| FLOAT | 4位元組 | 單精度浮點數 | ||
| DOUBLE | 8位元組 | 雙精度浮點數 | ||
| DECIMAL | 小數值 |
DECIMAL(總位數,小數位) FLOAT(總位數,小數位) DOUBLE(總位數,小數位)
? 例如decimal(7,2),整數占五位,小數占兩位
2.日期/時間
| 型別 | 大小 | 范圍 | 格式 | 用途 |
|---|---|---|---|---|
| DATE | 3 | 1000-01-01/9999-12-31 | YYYY-MM-DD | 日期值 |
| TIME | 3 | ‘-838:59:59’/‘838:59:59’ | HH–MM-SS | 時間值或持續時間 |
| YEAR | 1 | 1901/2155 | YYYY | 年份 |
| DataTime | 8 | 1000-01-01 00:00:00 9999-12-31 23:59:59 | YYYY-MM-DD HH:MM:SS | 混合日期和時間值 |
| TIMESTAMP | 8 | 1970-01-01 00:00:00/2037某時 | YYYYMMDDHHMMSS | 混合日期和時間值,時間戳 |
3.字串(字符)型別
| 型別 | 大小(位元組) | 用途 |
|---|---|---|
| CHAR | 0-255 | 定長字串 |
| VARCHAR | 0-65535 | 變長字串 |
| TINYBLOB | 0-255 | 不超過255字符二進制字串 |
| TINYTEXT | 0-255 | 短文本字串 |
| BLOB | 0-65535 | 二進制長文本資料 |
| TEXT | 0-65535 | 長文本資料 |
| MEDIUMBLOB | 0-16777215 | 二進制形式中等長度文本資料 |
| MEDIUMTEXT | 0-16777215 | 中等長度文本資料 |
| LONGBLOB | 0-4294967295 | 二進制形式極大文本資料 |
| LONBTEXT | 0-4294967295 | 極大文本資料 |
區別:
char(字串長度) 定長 ???????varchar(字串長度) 變長
? 設定多少長度,就會全部占滿????以實際長度占用空間
資料庫操作
1.查看現有的資料庫
show databases;
2.創建資料庫
create databases 資料庫名字;
3.洗掉資料庫
drop database 資料庫名字;
表的操作
在工具中,“打開表”–>看表內容
?????“設計表”–>看表結構
0.選擇資料庫操作
use 資料庫名;
1.創建表
create table 表名(
屬性名1 資料型別 [約束條件],
// 姓名 varchar(10) not null,
屬性名2 資料型別 [約束條件],
屬性名3 資料型別 [約束條件]
);
2.洗掉表
drop table 表名;
3.修改表
3.1添加列
alter table 表名 add 屬性名 資料型別;
// alter table 學生表 add 專業 carchar(10);
3.2洗掉列
alter table 表名 drop 屬性名;
// alter table 學生表 drop 成績;
3.3修改列的資料型別
alter table 表名 modify 屬性名 新資料型別;
// alter table 學生表 modify 成績 float(4,1);
3.4修改列名
alter table 表名 change 舊欄位名 新欄位名 資料型別;
// alter table 學生表 change 姓名 學生名 資料型別;
4.顯示表結構
desc 表名;
給表關聯約束
物體完整性約束
在一個表中,找到一個列,該列做到唯一區分效果
主鍵約束 primary key
創建
?創建表的同時關聯約束
//方式一
create table student(
id int primary key,
name varchar(5),
age int
);
//方式二
create table student(
id int,
name varchar(5),
age int,
constraint 主鍵約束的名字(PK_列名) primary key(id)
);
//方式三
create table student(
id int,
name varchar(5),
age int,
primary key(id)
);
修改表的同時關聯約束
//方式一
alter table student add constraint 主鍵約束的名字 primary key(列名);
//方式二
alter table 表名 add primary key(列名);
//方式三
alter table 表名 modify 列名 資料型別 primary key;
洗掉主鍵約束
alter table 表名 drop primary key;
唯一約束 unique
保證是唯一的,不能重復,但是可以為空
一個表中可以有多個唯一約束
設定一個唯一約束會默認給一個索引
若沒有給唯一約束起名,默認和列名一致
創建
創建表的同時關聯約束
//方式一
create table student(
學號 int unique,
姓名 varchar(5),
年齡 int,
課程號 varchar(10) unique
);
//方式二
create table student(
學號 int,
姓名 varchar(5),
年齡 int,
課程號 varchar(10),
constraint UN_學號 unique(學號),
constraint UN_課程號 unique(課程號)
);
?修改表的同時關聯約束
alter table student add unique(學號);
洗掉唯一約束
alter table student drop index 學號(唯一約束的名字);
自動增長列 auto_increment
創建
?創建表的同時關聯約束
create table student(
學號 int auto_increment,
姓名 varchar(5),
年齡 int,
課程號 varchar(10)
);
?修改表的同時關聯約束
alter table student modify 性別 varchar(3) default '男';
洗掉非空約束
alter table sudent modify 姓名 varchar(5);
外鍵約束 foreign key
針對兩個表,加強表與表之間聯系
一張表中可以有多個外鍵約束
主表想要洗掉被從表參考的資料,會洗掉失敗
外鍵約束建立在從表中,拿上從表中的某個列參照參考主表的某個列
要求主表必須要有主鍵約束或者唯一約束
參照參考的列可以不一致,但資料型別和內容必須保持一致
創建
?創建表的同時關聯約束
create table 主表(
列名1 資料型別 primary key,
列名2 資料型別
);
create table 從表(
列名1 資料型別,
列名2 資料型別,
列名3 資料型別,
constraint 外鍵約束的名字(FK_列名) foreign key(從表列名1) references (主表列名1)
);
修改表的同時關聯約束
alter table 從表 add constraint 外鍵約束名 foreign key(從表列名) references (主表列名);
洗掉外鍵約束
alter table 從表 drop foreign key 外鍵約束名;
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/312197.html
標籤:其他
上一篇:sql執行陳述句
