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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

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

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

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

create table 表(

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

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

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

);

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

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

2.注意點

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

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

3.最后一個字段后不用加逗號

二、基本的數據類型:

1、整型

1、作用:id號,各種號碼,年齡,等級

2、分類: tinyint,int,bigint

3、注意:強調:對于整型來說,數據類型后的寬度并不是存儲限制,而是顯示限制

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

默認的顯示寬度,足夠顯示完整當初存放的數據

int的存儲寬度是4個Bytes,即32個bit,即2**32

無符號最大值為:4294967296-1

有符號最大值:2147483648-1

有符號和無符號的最大數字需要的顯示寬度均為10,而針對有符號的最小值則需要11位才能顯示完全,所以int類型默認的顯示寬度為11是非常合理的

最后:整形類型,其實沒有必要指定顯示寬度,使用默認的就ok

2、浮點型

1.作用:存儲身高、體重、薪資

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運行

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.相同點:

1.對于三者來說,都能存放30位小數,

4.不同點:

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

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

3、字符類型

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

2.分類:

char :? 定長,簡單粗暴,浪費空間,存取速度快

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

例如:指定長度為10,存>10個字符則報錯,存<10個字符則用空格填充直到湊夠10個字符存儲

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

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

強調:varchar類型會在真實數據前加1-2Bytes的前綴,該前綴用來表示真實數據的bytes字節(jié)數(1-2Bytes最大表示65535個數字,正好符合mysql對row的最大字節(jié)限制,即已經足夠使用)

存儲:varchar類型存儲數據的真實內容,不會用空格填充,如果'ab ',尾部的空格也會被存起來

create table t12(x char(4)); #超出4個字符則報錯,不夠4個字符則用空格補全成4個字符

create table t13(y varchar(4));#超出4個字符則報錯,不夠4個字符那么字符有幾個就存幾個

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

注意:

針對char類型,mysql在存儲時會將數據用空格補全存放到硬盤中

但會在讀出結果時自動去掉末尾的空格,因為末尾的空格在字段明確地等于一個值的場景中是無用

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,多選一個

集合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 運行

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

| name | sex | level | hobby |

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

| egon | male | vip5 | read,study |

| alex | female | vip1 | |

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

三、約束條件

1、not null 與default

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

not null? ?不可空

null? ? 可空

默認值,創(chuàng)建列表可以指定默認值,當插入數據時如果未主動設置,則自動添加默認值

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 運行

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:限制字段的值唯一(就是獨一無二)

#單列唯一

create table t16(

id int unique,

name char(16)

);#聯合唯一

create table server(

id int unique,

ip char(15),

port int,

unique(ip,port)

);

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

1.強調

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

2.一張表中都應該有一個id字段,而且應該把id字段做成主鍵

單列做主鍵

create table t11(

id int primary key,

name char(16),

age int,

sex char(6)

);

聯合主鍵

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 | |

+-------+----------+------+-----+---------+-------+聯合cmd查看:

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

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

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

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

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

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

4、auto_increment

約束字段為自動增長,被約束的字段必須同時被key約束

create table t13(

id int primary key auto_increment,

name char(16)

);

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

cmd 運行:

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

| id | name |

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

| 1 | egon |

| 2 | alex |

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

2 rows in set (0.02 sec)

1.注意點:

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

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

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。