目錄
一、資料型別
1.字元型
2.數值型
3.日期型
二、約束
1. 5個約束
2.自增長
三、表1.建立
2.修改表列
1)對錶重新命名
2)新增列
3)修改列
4)刪除列
3.增刪約束
1)新增約束
2)刪除約束
4.複製表
複製結構和資料
5.刪除表
mysql不區分英文的大小寫。
use test;
char(10) : 固定10個字元長度varchar(10) : 最多10個字元長度
text :文本級別的長度
bit : 1~8,1位元組.按位觸發。enum: 2b,最多2^16個成員列舉。
set : 8*8,8b,最多64個成員插入集合。
tinyint, ≈'char',乙個位元組1.預設是有符號。使用無符號時,加unsignedsmallint,≈short,2個位元組
mediumint,3個位元組
int, ≈'int',4個位元組.
bigint, ≈'long long',8個位元組。
2.若插入數字超出範圍(上|下),則顯示的是臨界值。
3.int(7) zerofill,預設是無符號7位數,不夠時用『0』填充。
float(m,d),浮點型
double(m,d),雙精度浮點型
dec(m,d), 定點型
其中,m表示總位數,d為小數字數。
date 年月日
time 時分秒
year 年
month
datetime ,date+time;表示的時間從1000-01-01年開始timestamp:表示的時間到2023年,且更能反映當地時區。
show variables like 'time_zone';
set time_zone = '+9:00';
set time_zone = 'system';
primary key :主鍵,該列值非空而且唯一。表中主鍵至多乙個not null:非空,該列值必填
unique: 唯一鍵,該列值不能重複
default:該列值不填就是預設的值使用方法(見表建立):foreign key:外來鍵。指向主表(被引用)的主鍵或唯一鍵,將2個表某行對應起來。
且可使用 on delete cascade | set null 來指示,主表被刪時該行是否保留。
對列新增約束:僅外來鍵不可以。
對錶新增約束:主鍵、唯一鍵、外來鍵可以。
auto_increment:應用於數值型的主鍵或唯一鍵,且表中至多乙個預設從1開始,步長為1.
自定義步長:set auto_increment_increment = 3;
#建表先建庫
create database if not exists test2; #建
show variables like '%character%';
alter database test2 character set gbk; #修改字符集
drop database if exists test2; #刪庫(+跑路....)
主表(被引用)
create table major(
id int primary key,
major_name varchar(20)
);
從表
drop table if exists mystuinfo; #可防止空刪
create table mystuinfo(
id int primary key auto_increment,
cname varchar(20) not null,
seat int unsigned unique,
age int default 18,
gender enum('male','female'),
curriculum_name set('語','數','外','政','史','地','物','化','生'),
schooldate date,
majorid int,
constraint majorid_to_major
foreign key (majorid) references major(id) on delete cascade
);
檢視:
desc mystuinfo;
alter table sutdent rename to mystuinfo;
可用first|after指定位置
alter table mystuinfo add column provice varchar(5) after schooldate;
修改列名和屬性
alter table mystuinfo change column seat seatno smallint;
僅修改屬性
alter table mystuinfo modify column schooldate year;
alter table mystuinfo drop column provice;
可以在修改列屬性時一併進行(僅外來鍵不可以)
alter table mystuinfo modify column provice varchar(5) not null;
也可以add 3種鍵值(主鍵、唯一鍵、外來鍵可以)
alter table mystuinfo add primary key (id) ;
alter table mystuinfo add constraint majorid_to_major
foreign key (id) references major(id) on delete cascade;
對於非空、預設、自增長,可以使用modify再改一次
alter table mystuinfo modify column provice varchar(5);
檢視鍵值,並用drop刪除
show index from mystuinfo;
alter table mystuinfo drop primary key;
alter table mystuinfo drop index seat;
alter table mystuinfo drop foreign key majorid_to_major;
select,like
複製結構
create table stu1 like mystuinfo; #複製全部字段
create table stu2 select id,cname,age,gender from mystuinfo where 0;
#複製部分字段
create table stu3 select * from mystuinfo; #複製全部
create table stu4 select id,cname from mystuinfo where age>18;
drop table mystuinfo;
drop table if exists mystuinfo; #可防止空刪
學習Mysql有感 建表(1)
建表就是乙個宣告列的過程,所以想要建好表,首先要掌握列型別1.整型 可能有些同學對位元組和位概念不是很懂,咋們就拿tinyint舉個栗子 tinyint 1位元組,8位 那麼它的儲存的有符號位範圍就是 128 127,無符號範圍就是0 255 那麼這些值是咋來的呢?這裡8位就對應二進位制的8位 00...
MySql 學習筆記建表操作
資料庫建 表語句 簡單認知 mysql預設埠號是 3306 mysql的超級使用者叫 root 使用cmd 首先cd到mysql的bin目錄下 在cmd中啟動mysql服務 net start mysql 在cmd中登入mysql mysql u root p password p埠號 h伺服器名稱...
MySQL學習之建表規範
資料型別盡量用數字型別,數字型別的比字元型別的要快很多,比如使用int unsigned儲存ip 大資料字段最好剝離出單獨的表,以便影響效能 使用varchar,代替char,這是因為varchar會動態分配長度資料型別盡量小,這裡的盡量小是指在滿足可以預見的未來需求的前提下的,但是有不能太小,所以...