数据库的基本操作(1)

来源:互联网 发布:q叔淘宝店叫什么名字 编辑:程序博客网 时间:2024/05/22 08:16

MySQL安装好之后,首先需要创建数据库,这是使用MySQL各种功能的前提。
接下来就来联系数据的基本操作。

  1. 创建数据库
    安装好数据库之后会在其data目录下自动创建几个必需的数据库,使用 show databases; 来查看当前数据库如下图所示:
    创建数据库就是在系统磁盘上划分一块区域用于数据的存储和管理。
    语句: create database 数据库名称 ;
    如下图所示
    这样子就创建成功了一个名为 name 的数据库。创建好数据库之后我们可以通过 :
    show create database 数据库名称 ;
    这个语句声明查看创建好的数据库的定义,如下图所示:
    这里写图片描述
  2. 删除数据库
    删除数据库是将已经存在的数据库从磁盘空间上清除,清除之后,数据库中的所有数据也将一同被删除。删除语句的语法为:
    drop database 数据库名称 ;
    这里写图片描述
    我们再次使用 show create database name ; 声明查看数据库的定义。
    这里写图片描述
    出现错误则表示数据库 name 已经删除成功。

    注:当指定数据库不存在时则删除出错。
    这里写图片描述

tip:使用 drop database 命令时要慎重,因为此条语句将整个数据库包括其所存储的所有数据表和数据删除,而且不能恢复。
3. 数据库存储引擎
数据库管理系统使用数据引擎进行创建、查询、更新和删除数据的操作。可以使用 show engines ; 来查看系统所支持的引擎类型。如图:
这里写图片描述
其中support列的值表示某种引擎是否能使用:YES表示可以使用,NO表示不能使用,DEFAULT表示该引擎为当前默认存储引擎
同时,show variables like ‘storage_engine’; 可以用来查看默认存储引擎,如图:
这里写图片描述

4.数据表的基本操作
数据库创建好之后,我们就要给这个数据库里面创建数据表了。在数据库中,数据表是数据库中最终要、最基本的操作对象,是数据存储的基本单位。数据表被定义为列的集合。
4.1创建数据表

create table 表名(字段名1 数据类型 列级约束条件 默认值,字段名2 数据类型 列级约束条件 默认值,......);

注:创建表的名称时,不区分大小写,但是不能使用sql语言中的关键字。
这里写图片描述
我们使用show tables;查看创建成功的表:
这里写图片描述
4.1.1使用主键约束
主键能够唯一标识表中的一条记录,主键可以为一列同时也可以为多列的组合。
a.单字段主键
i>在创建表的时候定义列的同时定义主键:
create table student(
stuid int primary key,
……
);
ii>定义完所有列之后定义主键:
create table student(
stuid int,
……
primary key(stuid)
);
b.多字段联合主键
语法:primary key (字段名1,字段名2,……字段名n)
create table student(
stuid int,
stuname varchar(20),
……
primary key(stuid,name)
);
以上全为在创建表,定义列的同时使用主键约束,那么如果在创建表的时候忘记使用主键约束了怎么办呢?
alter table student add constraint primary key stuid;
当然我们刚才创建表的时候把主键加上了,那么这下就先把它删掉再使用这种方法加主键,删掉主键的语法为:
alter table student drop primary key;
这里写图片描述
删除成功后再用上面的方法把主键加上:
这里写图片描述

4.1.2使用外键约束
外键是用来在两个表之间建立链接,用来保证数据引用的完整性,外键对应的是参照完整性。一个表的外键可以为空值,如果不为空则必须等于另一张表中主键的某个值。

外键是表中的一个字段,它可以不是本表的主键,但对应另外一个表的主键。外键的主要作用是保证数据的完整性,定义外键后,不允许删除在另一个表中的主键。
对于两个有关系的表而言,主表和从表:
(1)主表:相关联字段中主键所在的那个表。
(2)外键:向关联字段中外键所在的那个表。

创建外键:
1.在创建表的同时添加外键约束。
create table class(
classid int primary key,
……
foreign key (classid) references student(stuid) 或者
constraint fk_classid foreign key (classid)reference student(stuid);
);
执行成功之后就可以在表class中添加一个名为fk_classid的外键约束了。这个外键的名字是classid,它依赖于student表中的主键stuid。

2.当创建表的时候忘记添加外键约束则:
alter table 表名 add constraint 约束名 foreign key (本表字段名) references 主表名(主表字段名)
alter table class add constraint fk_classid foreign key (classid)references student(stuid);

3.删除外键约束
alter table 表名 drop foreign key 约束名—外键名称
alter table class drop foreign key fk_classid;

4.1.3使用非空约束
在创建表的时候给字段名后添加 not null
create table dept(
deptid int primary key,
deptname varchar(20) not null,
constraint deptid foreign key (deptid)references class(classid)
);
这里写图片描述

4.1.4使用唯一性约束
1.在定义完列之后直接指定唯一约束。
字段名 数据类型 unique
create table exp_u(
expid int primary key,
expname varchar(20) unique
);
这里写图片描述
2.在定义完所有列之后指定唯一约束
constraint 约束名 unique(字段名)

create table exp_u1(
expid int primary key,
expname varchar(20),
constraint expid unique(expid)
);
这里写图片描述
3.创建表时忘记添加唯一性约束:
alter table 表名 add constraint 约束名 unique (列名)
alter table exp add constraint expname unique(expname)
4.删除唯一性约束:
alter table 表名 drop index 约束名
alter table exp drop index exp

4.1.5使用默认约束
1.创建表时在字段后指定默认值
create table exp_d(
expid int primary key,
expname varchar(20) unique,
expsex varchar(4) default’m’
);
这里写图片描述

2.创建表时没有添加默认约束:
alter table 表名 alter column 列名 set default ’默认值’
alter table exp_d alter column expsex set default ‘m’;

4.1.6设置表的属性自动增加
1.字段名 数据类型 auto_increment
create table exp_a(
expid int primary key auto_increment,
name varchar(20)
);
这里写图片描述
2.删除自动增加
alter table 表名 change column 原列名 新列名 数据类型
alter table exp_a change column expid expid int;

注意:在设置表的属性值自动增加的时候:
添加主键自增长时要先添加主键才能设置主键自增长。
如果要删除主键则要先删除主键自增长之后才能删除主键