创建约束的目的:
约束条件都是针对表中字段进行限制,从而保证数据表中的数据正确性和唯一性
约束的条件:
PIMARY KEY(主键)、FOREIGN KEY(外键)、NOT NULL(非空)、UNIQUE(唯一)、DEFAULT(默认)
主键约束:它可以唯一标识表中的记录。
1、单字段主键
格式:字段名 数据类型 PRIMARY KEY
2、多字段主键
**格式:**PRIMARY KEY(字段名1,字段名2,….字段名n)
需要注意的是:每个数据表中最多只能有一个主键约束,定义为PRIMARY KEY的字段不能有重复值且不能为NULL值。
非空约束:指的是字段不能为NULL。
格式:字段名 数据类型 NOT NULL
需要注意的是:在同一个数据表中可以定义多个非空约束。
用于保证数据表中字段的唯一性,即不字段不能重复出现。
格式:字段名 数据类型 UNIQUE;
默认约束:给数据表中的字段指定默认值。
格式:字段名 数据类型 DEFAULT 默认值;
事例:
mysql> create table studentInfo(
-> id int PRIMARY KEY ,
-> name varchar(20) NOT NULL,
-> age int(11));
//创建学生信息表 设置id的约束为主键PIMARY KEY,name的约束为非空NOT NULL。
数据库的索引好比新华字典的音序表,它是对数据库表中一列或多列的值进行排序后的
一种结构,其作用就是提高表中数据的查询速度。
MySQL中的索引分为很多种,具体如下:
创建索引的方式有三种,具体如下:
1、创建表的时候创建索引语法格式:
CREATE TABLE 表名
(
字段名 数据类型[完整性约束条件],
字段名 数据类型[完整性约束条件],
......
字段名 数据类型
[[UNIQUE|FULLTEXT|SPATIAL] INDEX|KEY
[别名] (字段名1 [(长度)]) [ASC|DESC])]
);
2、使用CREATE INDEX 语句在已经存在的表上创建索引语法格式:
CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX 索引名 ON 表名 (字段名 [(长度)] [ASC|DESC]);
create unique index un_id on g1 (id asc);
3、使用ALTER TABLE语句在已经存在表上创建索引 (必须是空表)
ALTER TABLE 表名 ADD [UNIQUE|FULLTEXT|SPATIAL] INDEX 索引名 (字段名 [(长度)] [ASC|DESC])
4、删除索引 (必须是空表)
ALTER TABLE 表名 DROP INDEX 索引名
DROP INDEX 索引名 ON 表名;
事例:
mysql> create unique index stu_id on studentInfo(id asc);
mysql> create fulltext index stu_name on studentInfo(name asc);
//给学生信息表中的id 和 name添加索引。
格式1:
insert into 表名 [(字段名1,字段名2,....)]values(值1,值2,...);
例如:insert into tb_name values(1001,'张三',16,95);
格式2:
insert into 表名 set 字段名1=值1,[字段名2=值2,字段名n=值n];
insert into tb_name set id=1001,name='张三';
delete from 表名称 [where 字段名1=值1 and|or 字段名2=值2 and|or 字段名n=值n];
delete from tb_name where id=1002;(删除id=1002的数据)
格式:select * from 表名称;
事例:
mysql> insert into studentInfo values(1019,'小李',22);
mysql> insert into studentInfo values(1020,'小张',23);
//给学生信息表添加一条数据
mysql> select * from studentInfo;
//查询学生信息表中的记录
mysql> delete from studentInfo where id=1019;
//删除id为1019的记录。