—是一种关系型数据库管理系统
优点:体积小、速度快、总体成本低,开源,可移植性(跨平台,在不同系统中使用),可以和开发语结合。轻量级数据库
查看现有数据库
show databases;
新建自己的数据库
create database 库名;
删除数据库
drop database 库名;
数据类型,大致分为三类
数值
整数类型:int
浮点数型:decimal
格式:decimal(总长度,小数位)
decimal(5,2) 要求传递过来的数据总长度是5位,小数位是2位
日期/时间
datetime YYY-MM-DD HH:MM:SS
date YYY-MM-DD
字符串(字符)类型
char(字符串的长度) 定长 姓名 char(10) tom 剩余空间不会释放,系统会有空格填充满
varchar(字符串的长度) 变长 varcha(10) tom 剩下空间,释放
创建表语法格式:
create table 表名( 属性名1 数据类型 [约束条件], 属性名2 数据类型 [约束条件] );
打开表,是查看表中有没有存入数据
设计表,是查看表结构
注意:[]中括号中的内容可选内容;最后一个属性没有逗号
数据库中的注释:
单行注释: -- 注释内容
多行注释: /*注释内容*/
切换数据库
use 数据库的名字;
删除表
格式:drop table 表名1,表名2,...;
修改表
添加列(属性)
alter table 表名 add 属性名 数据类型;
删除列(属性)
alter table 表名 drop 属性名;
修改属性
alter table 表名 modify 属性名 数据类型;
修改字段名
alter table 表名 change 旧字段名 新字段名 数据类型;
显示表结构
desc 表名;
数据的完整性——数据库中的数据准确性和可靠性。不允许出现重复的字符
目的:在表中至少有一个唯一的标识,主属性字段中不能为空,不能重复
主键约束(primary key)是表中的一个或多个字段,值用于唯一地标识表中的唯一,不重复,不能为空。一个表中只有一个主键约束
1、创建表的同时,创建主键约束
格式一:
create table 表名( 列名1 数据类型 primary key, 列名2 数据类型 );
格式二:主键约束名字的写法 PK_列名
create table 表名( 列名1 数据类型, 列名2 数据类型, constraint 主键约束的名字 primary key(列名1) );
格式三:
create table 表名( 列名1 数据类型, 列名2 数据类型, primary key(列名1) );
2、针对已经存在的表,添加主键约束
格式一:
alter table 表名 modify 列名 数据类型 primary key;
格式二:
alter table 表名 add primary key(列名);
格式三:
alter table 表名 add constraint 主键约束的名字 primary key(列名);
3、删除主键约束
alter table 表名 drop primary key;
联合主键——把两个列看成是一个整体,这个整体是唯一,不重复,不能为空
创建表的同时创建联合主键
格式二:主键约束名字的写法 PK_列名
create table 表名( 列名1 数据类型, 列名2 数据类型, constraint 主键约束的名字 primary key(列名1,列名2) );
格式三:
create table 表名( 列名1 数据类型, 列名2 数据类型, primary key(列名1,列名2) );
针对已经存在表,添加联合主键
格式二:
alter table 表名 add primary key(列名1,列名2);
格式三:
alter table 表名 add constraint 主键约束的名字 primary key(列名1,列名2);
删除联合主键(不能删一个)
alter table 表名 drop primary key;
唯一约束(unique)唯一,不重复,可为空
特征:列或列组合不能重复,保证数据唯一性
不能出现重复值,但可以出现多个null
同一个表可以有多个唯一约束,多个列组合的约束
不给唯一约束名称,默认和列名相同
添加唯一约束的列,系统默认添加唯一索引
索引相当于书本里的目录
1、创建表的同时创建唯一约束 UN_列名
格式一:
create table 表名( 列名1 数据类型, 列名2 数据类型, constraint 唯一约束的名字 unique(列名1), constraint 唯一约束的名字 unique(列名2) );
格式二:
create table 表名( 列名1 数据类型 unique, 列名2 数据类型 unique );
2、针对已经存在的表,添加唯一约束
alter table 表名 add unique(列名[,列名2]);
3、删除唯一约束
alter table 表名 drop index 唯一约束的名字
域完整性约束——保证在表中不会输入无效数据
默认约束 default 当默认约束修饰某个列时,修饰的列不填写数据会默认指定值缺省值
1、创建表的同时创建默认约束
格式:
create table 表名( 列名1 数据类型 default '字符串类型或者日期类型的默认值', 列名2 数据类型 default 数值, 列名3 数据类型 );
2、针对已经存在的表,添加默认约束
alter table 表名 modify 列名 数据类型 default '值';
3、删除默认约束
alter table 表名 modify 列名 数据类型;
非空约束 not null 当前列是必须有值
1、创建表的同时创建非空约束
格式:
create table 表名( 列名1 数据类型 not null, 列名2 数据类型 not null, 列名3 数据类型 );
2、针对已经存在的表,添加非空约束
alter table 表名 modify 列名 数据类型 not null;
3、删除非空约束
alter table 表名 modify 列名 数据类型;
参照完整性约束
外键约束 foreign key
1、创建表的同时创建外键约束
主表:被参照表
create table 表1( 列名1 数据类型 primary key, 列名2 数据类型 );
1、创建表的同时创建外键约束
从表:外键约束所在的表 FK_列名
create table 表2( 列名1 数据类型, 列名2 数据类型, constraint 外键约束的名字 foreign key(从表列名1) references 主表表1(列名1) );
2、针对已经存在的表,添加外键约束
alter table 从表表名 add constraint 外键约束的名字 foreign key(从表的列名1) references 主表表名(主表的列名); ALTER TABLE 从表名 ADD FOREIGN KEY(从表的列名) REFERENCES 主表(主表的列名);
3、删除外键约束
alter table 从表表名 drop foreign key 外键约束的名字;
注意:关于引用的列要求从表的列和主表的列,列名可以不一样,但是这两个列数据类型和内容必须一致。
从表中想要进行的数据操作,必须是主表有的数据;主表没有,从表不能做出操作;
一旦主表的某条记录,被从表参照,主表中的记录不能删除;删除从表数据后,再删主表数据。
从表参照主表的某列,要求主表的列必须有主键约束或者唯一约束。
网友评论