数据库学习笔记【新手教程】—— 表的建立

(1) 新建查询

(2)输入表格数据

数据类型说明:

char、varchar、text、ntext、bigint、int、smallint、tinyint、bit

1、char:char 存储定长数据很方便,char 字段上的索引效率级高,比如定义char(10),那不论存储的数据是否达到了10个字节,都要占去10个字节的空间,不足的自动用空格填充。

2、varchar:存储变长数据,但存储效率没有char高。如果一个字段可能的值是不固定长度的,我们只知道它不可能超过10个字符,把它定义为 VARCHAR(10)是最合算的。

数据类型说明
类型大小范围(有符号)范围(无符号)unsigned约束用途
tiny-int1 字节(-128,127)(0,255)小整数值
small-int2 字节(-32 768,32 767)(0,65 535)大整数值
mediumint3 字节(-8 388 608,8 388 607)(0,16 777 215)大整数值
int 或 integer4 字节(-2 147 483 648,2 147 483 647)(0,4 294 967 295)大整数值
big-int8 字节(-9 233 372 036 854 775 808,9 223 372 036 854 775 807)(0,18 446 744 073 709 551 615)极大整数值
float        4 字节 float(255,30)(-3.402 823 466 E+38,-1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38)0,(1.175 494 351 E-38,3.402 823 466 E+38)

单精度

浮点数值

double8 字节 double(255,30)(-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)

双精度

浮点数值

decimal

对decimal(M,D) ,

如果M>D,为M+2

否则为

D+2 double(65,30)

依赖于M和D的值依赖于M和D的值小数值
字符串类型
类型大小用途
char0-255字节定长字符串
varchar0-65535 字节变长字符串
tinyblob0-255字节不超过 255 个字符的二进制字符串
tinytext0-255字节短文本字符串
blob0-65 535字节二进制形式的长文本数据
text0-65 535字节长文本数据
mediumblob0-16 777 215字节二进制形式的中等长度文本数据
mediumtext0-16 777 215字节中等长度文本数据
longblob0-4 294 967 295字节二进制形式的极大文本数据
longtext0-4 294 967 295字节极大文本数据

 约束条件:

  • primary key 主键约束:
    • 主键修饰的字段,非空且唯一,在一个表只允许出现一个。
  • not null 非空约束:
    • 约束的字段不能为null值,必须给定具体的数据。
  • unique 唯一约束 :
    • 字段内容不能重复,一个表允许有多个 Unique 约束。使用方法跟主键一样,限定不了空值,要想限定还要添加非空约束。
  • foreign key 外键约束:
    • 用于预防破坏表之间连接的动作,也能防止非法数据插入外键列,因为它必须是它指向的那个表中的值之一。
    • 公式:alter table 多表名称 add foreign key(外键名称) references 一表名称(主键);
  • check 自增长约束:
    • 用于控制字段的值范围。
  • auto_increment 自增长约束:
    • 使用方法跟主键一样。 如果是整数型字段,添加自增长约束后,还需要配合主键约束一起使用
    • 后面在建表时常给字段这种联合约束,方便查询。
  • unsigned  非负约束:使用方法跟主键一样。
    • 添加非负约束后,取值范围将发生变化(例如int范围是-128~127,添加非负约束后将变成0-255)

添加 主键 的语法:

方式1:加到字段后面

CREATE TABLE teacher(
NAME VARCHAR(10) PRIMARY KEY,
age INT
)

方式2:单独使用

CREATE TABLE teacher(
NAME VARCHAR(10),
age INT,
PRIMARY KEY(NAME)
)

唯一约束:

CREATE TABLE teacher(
NAME VARCHAR(20) UNIQUE NOT NULL,
age INT UNIQUE NOT NULL
)

外键约束:

FOREIGN KEY 约束用于预防破坏表之间连接的动作。

FOREIGN KEY 约束也能防止非法数据插入外键列,因为它必须是它指向的那个表中的值之一。

 

附上代码:

create table 授课表(
Tno char(7) 
primary key(Tno,Cno),
foreign key(Tno) REFERENCES 教师表(Tno),
Cno char(10) 
foreign key(Cno) REFERENCES 课程表(Cno),
Hours int check(Hours>0)
)

自增长约束:

CREATE TABLE teacher(
sid INT AUTO_INCREMENT PRIMARY KEY,
NAME VARCHAR(20),
)

有了这些知识就可以建立表了。在建立表之前,检查是否是在指定数据库中建立的:

写完后(单击“执行”)的示例:

代码示例:

create table 教师表(
Tno char(7) primary key,
Tname char(10) not null,
Tsex char(2) check (TSex='男' or TSex='女'),
Birthday smalldatetime null,
Dept char(12) null,
Sid char(18) unique
)

刷新表,可以看到 教师表 已经建立好了:

 END

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值