日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql数据库表复用_MySQL 数据库之表操作

發(fā)布時(shí)間:2023/12/20 数据库 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql数据库表复用_MySQL 数据库之表操作 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、創(chuàng)建表的完整語法

create table 表(

字段名1 類型 [(寬度) 約束條件],

字段名2 類型 [(寬度) 約束條件],

字段名3 類型 [(寬度) 約束條件]

);

1.類型:使用限制字段必須以什么樣的數(shù)據(jù)類型傳值

約束條件:約束條件是在類型之外添加一種額外的限制

2.注意點(diǎn)

1.在同一張表中,字段名不能相同

2.寬度和約束條件可選,字段名和類型是必須的

3.最后一個(gè)字段后不用加逗號(hào)

二、基本的數(shù)據(jù)類型:

1、整型

1、作用:id號(hào),各種號(hào)碼,年齡,等級(jí)

2、分類: tinyint,int,bigint

3、注意:強(qiáng)調(diào):對(duì)于整型來說,數(shù)據(jù)類型后的寬度并不是存儲(chǔ)限制,而是顯示限制

所以在創(chuàng)建表示,如果字段采用的是整型類型,完全無需指定顯示寬度,

默認(rèn)的顯示寬度,足夠顯示完整當(dāng)初存放的數(shù)據(jù)

int的存儲(chǔ)寬度是4個(gè)Bytes,即32個(gè)bit,即2**32

無符號(hào)最大值為:4294967296-1

有符號(hào)最大值:2147483648-1

有符號(hào)和無符號(hào)的最大數(shù)字需要的顯示寬度均為10,而針對(duì)有符號(hào)的最小值則需要11位才能顯示完全,所以int類型默認(rèn)的顯示寬度為11是非常合理的

最后:整形類型,其實(shí)沒有必要指定顯示寬度,使用默認(rèn)的就ok

2、浮點(diǎn)型

1.作用:存儲(chǔ)身高、體重、薪資

2.分類:float、double、decimal

create table t3(x,float(255,30));

create table t4(x,double(255,30));

create table t5(x,decimal(65,30));

insert into t3 values(1.111111111111111111111111111111)

insert into t4 values(1.111111111111111111111111111111)

insert into t5 values(1.111111111111111111111111111111)

cmd運(yùn)行

mysql> select * fromt9;+----------------------------------+

| x |

+----------------------------------+

| 1.111111164093017600000000000000 |

+----------------------------------+

1 row in set (0.00sec)

mysql> select * fromt10;+----------------------------------+

| x |

+----------------------------------+

| 1.111111111111111200000000000000 |

+----------------------------------+

1 row in set (0.00sec)

mysql> select * fromt11;+----------------------------------+

| x |

+----------------------------------+

| 1.111111111111111111111111111111 |

+----------------------------------+

1 row in set (0.00 sec)

3.相同點(diǎn):

1.對(duì)于三者來說,都能存放30位小數(shù),

4.不同點(diǎn):

1.精度的排序從低到高:float、double、decimal

2.float與double類型能存放的整數(shù)位比becimal更多

3、字符類型

1.作用:姓名,地址,描述性的信息

2.分類:

char :? 定長(zhǎng),簡(jiǎn)單粗暴,浪費(fèi)空間,存取速度快

字符長(zhǎng)度范圍:0-255(一個(gè)中文是一個(gè)字符,是utf8編碼的3字節(jié))

例如:指定長(zhǎng)度為10,存>10個(gè)字符則報(bào)錯(cuò),存<10個(gè)字符則用空格填充直到湊夠10個(gè)字符存儲(chǔ)

varchar :變長(zhǎng),精確,節(jié)省空間,存取速度慢

字符長(zhǎng)度范圍:0-65535(如果大于21845會(huì)提示用其他類型 。mysql行最大限制為65535字節(jié),字符編碼為utf-8

強(qiáng)調(diào):varchar類型會(huì)在真實(shí)數(shù)據(jù)前加1-2Bytes的前綴,該前綴用來表示真實(shí)數(shù)據(jù)的bytes字節(jié)數(shù)(1-2Bytes最大表示65535個(gè)數(shù)字,正好符合mysql對(duì)row的最大字節(jié)限制,即已經(jīng)足夠使用)

存儲(chǔ):varchar類型存儲(chǔ)數(shù)據(jù)的真實(shí)內(nèi)容,不會(huì)用空格填充,如果'ab ',尾部的空格也會(huì)被存起來

create table t12(x char(4)); #超出4個(gè)字符則報(bào)錯(cuò),不夠4個(gè)字符則用空格補(bǔ)全成4個(gè)字符

create table t13(y varchar(4));#超出4個(gè)字符則報(bào)錯(cuò),不夠4個(gè)字符那么字符有幾個(gè)就存幾個(gè)

insert into t12 values('hello');

insert into t13 values('hello');

insert into t12 values('a'); #'a '

insert into t13 values('a'); #'a'

setglobal sql_mode="strict_trans_tables,PAD_CHAR_TO_FULL_LENGTH";

select char_length(x)from t12; #4

select char_length(y) from t13; #1

注意:

針對(duì)char類型,mysql在存儲(chǔ)時(shí)會(huì)將數(shù)據(jù)用空格補(bǔ)全存放到硬盤中

但會(huì)在讀出結(jié)果時(shí)自動(dòng)去掉末尾的空格,因?yàn)槟┪驳目崭裨谧侄蚊鞔_地等于一個(gè)值的場(chǎng)景中是無用

4、日期類型

分類:

date:1999-01-27

time:11:11:11

datetime:1999-01-27? 11:11:11

year: 1999

create table student(->id int,-> name varchar(20),->born_year year,->birth date,->class_time time,->reg_time datetime);insert into student values-> (1,'alex',"1995","1995-11-11","11:11:11","2017-11-11 11:11:11"),-> (2,'egon',"1997","1997-12-12","12:12:12","2017-12-12 12:12:12"),-> (3,'wsb',"1998","1998-01-01","13:13:13","2017-01-01 13:13:13");

MariaDB [db1]> select * fromstudent;+------+------+-----------+------------+------------+---------------------+

| id | name | born_year | birth | class_time | reg_time |

+------+------+-----------+------------+------------+---------------------+

| 1 | alex | 1995 | 1995-11-11 | 11:11:11 | 2017-11-11 11:11:11 |

| 2 | egon | 1997 | 1997-12-12 | 12:12:12 | 2017-12-12 12:12:12 |

| 3 | wsb | 1998 | 1998-01-01 | 13:13:13 | 2017-01-01 13:13:13 |

+------+------+-----------+------------+------------+---------------------+

5、枚舉與集合類型

作用與分類:

枚舉enum,多選一個(gè)

集合set,多選多

create table consumer(

name char(16),

sex enum('male','female'),

level enum('vip1','vip2','vip3','vip4','vip5',)

hobby set ('play','music',read','study'));

insert into consumer values

('egon','male','vip5','read,study'),

('alex','female','vip1','girl');

cmd 運(yùn)行

select* fromconsumer;+------+--------+-------+------------+

| name | sex | level | hobby |

+------+--------+-------+------------+

| egon | male | vip5 | read,study |

| alex | female | vip1 | |

+------+--------+-------+------------+

三、約束條件

1、not null 與default

是否可空,null表示空,非字符串

not null? ?不可空

null? ? 可空

默認(rèn)值,創(chuàng)建列表可以指定默認(rèn)值,當(dāng)插入數(shù)據(jù)時(shí)如果未主動(dòng)設(shè)置,則自動(dòng)添加默認(rèn)值

create table t15(

id int,

name char(16) notnull,

sex enum('male','female','other') not null default "male");

insert into t15(id,name) values

(1,'egon1'),

(2,'egon2'),

(3,'egon3');

cmd 運(yùn)行

mysql>desc t15;+-------+-------------------------------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+-------+-------------------------------+------+-----+---------+-------+

| id | int(11) | YES | | NULL | |

| name | char(16) | NO | | NULL | |

| sex | enum('male','female','other') | NO | | male | |

+-------+-------------------------------+------+-----+---------+-------+

3 rows in set (0.04 sec)

2、unique:限制字段的值唯一(就是獨(dú)一無二)

#單列唯一

create table t16(

id int unique,

name char(16)

);#聯(lián)合唯一

create table server(

id int unique,

ip char(15),

port int,

unique(ip,port)

);

3、primary key:單單從約束角度去看,primary key 就等同于not null unique

1.強(qiáng)調(diào)

1.一張表中必須有,并且只能有一個(gè)主鍵

2.一張表中都應(yīng)該有一個(gè)id字段,而且應(yīng)該把id字段做成主鍵

單列做主鍵

create table t11(

id int primary key,

name char(16),

age int,

sex char(6)

);

聯(lián)合主鍵

create table t12(

ip char(15),

port int,

primary key(ip,port)

);

單列cmd查看:

mysql>desc t11;+-------+----------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+-------+----------+------+-----+---------+-------+

| id | int(11) | NO | PRI | NULL | |

| name | char(16) | YES | | NULL | |

| age | int(11) | YES | | NULL | |

| sex | char(6) | YES | | NULL | |

+-------+----------+------+-----+---------+-------+聯(lián)合cmd查看:

mysql>desc t12;+-------+----------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+-------+----------+------+-----+---------+-------+

| ip | char(15) | NO | PRI | | |

| port | int(11) | NO | PRI | 0 | |

+-------+----------+------+-----+---------+-------+

4、auto_increment

約束字段為自動(dòng)增長(zhǎng),被約束的字段必須同時(shí)被key約束

create table t13(

id int primary key auto_increment,

name char(16)

);

mysql> insert into t13(name) values('egon'),('alex');

cmd 運(yùn)行:

mysql> select * fromt13;+----+------+

| id | name |

+----+------+

| 1 | egon |

| 2 | alex |

+----+------+

2 rows in set (0.02 sec)

1.注意點(diǎn):

1.通常與primary key連用,而且通常是給id字段加

2.auto_incremnt只能給被定義成key(unique key,primary key)的字段加

總結(jié)

以上是生活随笔為你收集整理的mysql数据库表复用_MySQL 数据库之表操作的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。