数据库基础知识点(2)

来源:互联网 发布:hold the door知乎 编辑:程序博客网 时间:2024/06/06 13:13

表的约束

创建约束的目的:

约束条件都是针对表中字段进行限制,从而保证数据表中的数据正确性和唯一性

约束的条件:

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 默认值;

  • 设置表的字段值(整数类型的字段)自动增加:使用AUTO_INCREMENT约束来实现。
  • -AUTO_INCREMENT可以是任何整数类型。
  • -默认从1开始自增

事例:

mysql> create table studentInfo(-> id int PRIMARY KEY ,-> name varchar(20) NOT NULL,-> age int(11));//创建学生信息表 设置id的约束为主键PIMARY KEY,name的约束为非空NOT NULL。

索引

索引的概念

数据库的索引好比新华字典的音序表,它是对数据库表中一列或多列的值进行排序后的
一种结构,其作用就是提高表中数据的查询速度。
MySQL中的索引分为很多种,具体如下:

  • 1、普通索引
  • 2、唯一性索引
  • 3、全文索引
  • 4、单列索引
  • 5、多列索引
  • 6、空间索引

创建索引

创建索引的方式有三种,具体如下:

1、创建表的时候创建索引语法格式:

CREATE TABLE 表名(    字段名 数据类型[完整性约束条件],    字段名 数据类型[完整性约束条件],    ......      字段名 数据类型       [[UNIQUE|FULLTEXT|SPATIAL] INDEX|KEY    [别名] (字段名1 [(长度)]) [ASC|DESC])]);
  • 关于上述语法的相关解释具体如下:
  • UNIQUE:可选参数,表示唯一性约束
  • FULLTEXT:可选参数,表示全文约束
  • SPATIAL:可选参数,表示空间约束
  • INDEX和KEY:用来表示字段的索引,二者选一即可
  • 别名:可选参数,表示创建的索引的名称
  • 字段名1:指定索引对应字段的名称
  • 长度:可选参数,用于表示索引的长度
  • ASC和DESC:可选参数,其中,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的记录。
原创粉丝点击