第二十八天

1、表的约束:下列约束条件均是针对表中字段进行的限制,从而保证表中数据的正确性和唯一性。
① PRIMARY KEY 为主键约束,用于唯一标识对应的记录(每个数据表中最多只能有一个主键约束,定义为PRIMARY KEY的字段不能有重复值且不能为NULL值);
② FOREIGN KEY 为外键约束;
③ NOT NULL为非空约束(字段的值不能为NULL);
④ UNIQUE为唯一性约束(表中字段的值不能重复出现) ;
⑤ DEFAULT为默认值约束,用于设置字段的默认值(给表中字段指定默认值);
2、设置表的字段值自动增加
若想为表中插入的新记录自动生成唯一的ID,可以使用AUTO_INCREMENT约束来实现,AUTO_INCREMENT约束的字段可以是任何整数类型(字段名 数据类型 AUTO_INCREMENT;)
3、索引(分为普通索引、唯一性索引、全文索引、单列索引、多列索引、空间索引)
1)在已经存在的表上创建索引:CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX 索引名
ON 表名 (字段名 [(长度)] [ASC|DESC]);
2)为了避免影响数据库性能,应该及时删除不再使用的索引。语法为:
ALTER TABLE 表名 DROP INDEX 字段名(或DROP INDEX 索引名 ON 表名;)

1) 创建一个名称为itcast的数据库。
CREATE DATABASE itcast;
2) 设计数据表tb_student的字段结构,字段有id(学号)、name(姓名)、age(年龄)、enrolmentdate(入学时间),并选择适合的数据类型。
tb_student数据表的字段结构如下表所示:
字段名 类型 是否允许为null 备注
id int(5) No 学号
name varchar(30) No 姓名
age int(2) No 年龄
enrolmentdate datetime No 入学时间

3) 依照表结构创建数据表,要求字段id为主键,可自动增加。
创建数据表的SQL语句如下:
CREATE TABLE tb_student(id INT(5) NOT NULL AUTO_INCREMENT ,
Name VARCHAR(30),
Age INT(2),
Enrolmentdate DATETIME,
PRIMARY KEY (id))

1) 查看itcast数据库中的数据表tb_student。
desc tb_student;
2) 向表中增加字段classId(班级编号)。
ALTER TABLE tb_student ADD COLUMN classId INT(8)
AFTER enrolmentdate;
3) 为name字段添加非空约束。
ALTER TABLE tb_student CHANGE name name VARCHAR(30) NOT NULL;
4) 在id字段上建立索引。
CREATE INDEX index_id ON tb_student(id);
5) 给enrolmentdate字段添加默认约束,默认值为当前系统时间。
ALTER TABLE tb_student CHANGE enrolmentdate enrolmentdate
TIMESTAMP DEFAULT NOW() NOT NULL;
二、主键
主键是通过PRIMARY KEY定义的,它可以唯一标识表中的记录。它的主要特征如下:

  1. 唯一性:不能有重复值
  2. 非空性:不能为空值
    SQL语句:(联合主键)
    student( stu_id INT,course_id INT, PRIMARY KEY( stu_id, course_id));
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值