mysql yintint类型_MySQL服务器2 被嫌弃的胖子
1.sql的基本語法
對數(shù)據(jù)庫
create database db1; 創(chuàng)建數(shù)據(jù)庫
對表:
create database t1(id int,name char(10)); 創(chuàng)建表
show create table t1; 查看創(chuàng)建的t1表
show tables; 查看所有的表
desc t1; 查看表的詳細(xì)結(jié)構(gòu)
對數(shù)據(jù):
insert into t1(id,name) values(1,"zhang"),(2,"qing"); 插入數(shù)據(jù)
insert into t1 value(3,"qing");
select id from t1; 查詢ti表的id
select id,name from t1;
select * from t1;
select * from db1.t1 where id = 2;
關(guān)系型數(shù)據(jù)庫 mysql,db2,oracle,sqlite 表中存儲
非關(guān)系型數(shù)據(jù)庫 monogodb redis
key:value 基于model模型 obj.insert
2.存儲引擎
mysql 5.5版本之后默認(rèn)為innodb存儲引擎
另外還有mysiam、memory、blackhome
#memory,在重啟mysql或者重啟機(jī)器后,表內(nèi)數(shù)據(jù)清空
#blackhole 往表內(nèi)插入任何數(shù)據(jù),都相當(dāng)于丟入黑洞 表內(nèi)永遠(yuǎn)不存記錄
復(fù)制表結(jié)構(gòu)和表數(shù)據(jù)
create table a1 select * from db2.t1;
值復(fù)制表結(jié)構(gòu)
create table a2 select * from db2.t1 where 1>2;
create table a3 like db2.t1;
3.數(shù)據(jù)類型
1.數(shù)字:
整型:tinyint int bigint
小數(shù):
float:不精準(zhǔn)(位數(shù)比較短)
double:不精準(zhǔn)(位數(shù)比較長)
decimal:精準(zhǔn)(內(nèi)部原理是以字符串形式去存的)
2.字符串:
char(10):簡單粗暴,浪費(fèi)空間,存取速度快
varchar:精準(zhǔn),節(jié)省空間,存取速度慢
sql優(yōu)化:創(chuàng)建表時,定長的類型往前放,,變長的往后放
3.時間類型:
year,date,time,datetime
4.枚舉類型與集合類型
enum 和set
整型默認(rèn)是signed有符號的 范圍-128~127
sql中沒有boolean類型 使用tinyint(1)來表示boolean值 1表示true 0表示false
int類型后面的存儲是顯示寬度而不是存儲寬度,其他的數(shù)據(jù)類型都是存儲寬度
所以我們來設(shè)計(jì)表的時候 int類型的字段不用加顯示寬度默認(rèn)是總長度的位數(shù)+1
總結(jié)一句話,定義int類型不需要加寬度,使用默認(rèn)值就行
datetime
now() sql的內(nèi)置函數(shù) 根據(jù)數(shù)據(jù)類型生成對應(yīng)的時間格式
char 定長 存儲速度快 浪費(fèi)空間
varchar 變長 存儲速度慢? 節(jié)省空間
enum 枚舉:表示多選一
set 集合 :表示多選一或者多選多
create table consumer(
idintunsigned,
name varchar(20),
sexenum('male','female','other'),
levelenum('vip','svip','vvip'),
favset('smoke','drink','tangtou')
);
insert into consumer values(1,'一 寧','other','vvip','smoke,drink,tangtou');
View Code
小結(jié):
數(shù)據(jù)類型:
整型 tinyyint int bigint
浮點(diǎn)型:float double decimal
時間:year data time? datatime
字符:char 定長>varchar 變長>text 文本
枚舉:enum
集合:set
布爾:boolean tinyint(1) 存儲
函數(shù):now()根據(jù)字段的數(shù)據(jù)類型獲取當(dāng)前的時間格式
lenght()獲取字節(jié)數(shù)
char_lenght()獲取字符長度
sql默認(rèn)是有符號的 signed,如果設(shè)置無符號unsigned 要顯示用0填充 zerofill
4.約束 ******
作用保證數(shù)據(jù)的完整性和一致性
表的設(shè)計(jì)
1.not null 與 default
create table tb1(id int not null default 2,name char(20) not null);
insert into tb1 values(1,"zhang");
insert into tb1(name) values("qing");
insert into tb1(id) values(3);? x
2.unique
單列唯一
create table dep(id int not null,name varchar(20) unique);
insert into dep(id,name) values(1,"zhang");
insert into dep(id,name) values(2,"zhang"); x
多列唯一 表示每一列都唯一
create table dep2(id int unique,name varchar(20) unique);
inset into dep2(id,name) valuse(1,"zhang");
insert into dep2(id,name) valuse(1,"qing"); x
insert into dep2(id,name) values(2,"zhang"); x
組合唯一(聯(lián)合唯一)只要有一列不同就能插入數(shù)據(jù)
create table dep3(
id int,
name varchar(20),
unique(id,name)
);
insert into dep3(id,name) values(1,"zhang");
insert into dep3(id,name) values(1,"qing");
insert into dep3(id,name) values(2,"zhang");
insert into dep3(id,name) values(1,"zhang");? x
3.primary key(索引優(yōu)化查詢)
sql版本中,一張表中值允許有一個主鍵,通常都是id,cid,sid.....
create table stu(id int primary auto_increment,name varchar(10) unique);
insert into stu(name) values("zhang");
化學(xué)反應(yīng) not unll + unique
create table (id int not unll unique auto_increment,name varchar(20) unique);
primary key (索引優(yōu)化) 查詢大量數(shù)據(jù)
4.auto_increment
自增
總結(jié)
以上是生活随笔為你收集整理的mysql yintint类型_MySQL服务器2 被嫌弃的胖子的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 我的世界MOD怎么安装
- 下一篇: mysql添加映射模块_iis7.5中让