1,表的基本概念
1,表是在库中,每个数据库包含N张表
一般是二维表的形式
2,由行和列组成:可以将复杂的数据保存在简单的表中
表中的每一行就是一条完整的记录
表中的列用于保存每条记录中特定的信息
2,创建表
1,使用sql语句创建表
语法格式为:create table 表名( 字段名1 字段类型1 [完整性约束], 字段名2 字段类型2 [完整性约束], ..... 字段名n 字段类型n [完整性约束] ) 需要注意的是: 1,表名不能使用关键字 例如database select where 2,每组字段名之间使用英文逗号隔开 但最后一个不需要逗号 例如创建一个学生信息表student(id,name,gender,age) create table Student ( id int(6), name varchar(20), gender varchar(1), age int(2) );
讯享网
2,使用图形化界面创建
点击选择的库名—双击—右键—new table
3,表的查看修改删除操作
讯享网1,查看表的基本结构 desc 表名; 例如查看Student表的基本结构:desc Student; 2,查看表的详细结构(查看存储引擎和字符集) show create table 表名; 3,修改表结构 a,修改表名 alter table 旧表名 rename 新表名 例如将Student表名修改为t_student:alter table Student rename t_student; b,修改字段数据类型 alter table 表名 modify 列名 新字段类型 例如将Student表中id的数据类型 修改为int(10):alter table Student modify id int(10); c,修改多个字段的数据类型 alter table 表名 modify 列名1 新字段类型1, modify 列名2 新字段类型2, ...... modify 列名n 新字段类型n; 例如修改Student表中id int(8) name varchar(30) alter table Student modify id int(8), modify name varchar(30); d,修改字段名 alter table 表名 change 旧字段名 新字段名 旧字段类型 例如Student表中gender修改为sex alter table Student change gender sex varchar(1); e,修改字段名并修改字段的数据类型 alter table 表名 change 旧字段名 新字段名 新字段类型 例如Student表中gender修改为sex 数据类型改为varchar(2) alter table Student change gender sex varchar(2); f,添加字段 alter table 表名 add 字段名 字段类型 [完整性约束] [first |after 字段名] after 是添加到指定字段的后面 例如在表的末尾添加score字段 alter table student add score float; 例如在表第一个位置添加phone字段 alter table student add phone varchar(11) first; 例如在表age的后面添加class字段 alter table student add class varchar(30) after age; g,删除字段 alter table 表名 drop 列名 例如删除表student中phone h,删除表 使用sql语句删除 drop table 表名; 使用图形化界面 右键 直接删除表
4,完整性约束
1,MySQL支持的完整性约束 约束条件 描述 primary key 主键约束 unique 唯一约束 not null 非空约束 default 默认约束 auto_increment 自动增长约束 foreign key 外键约束 a,主键约束 特点是:唯一且非空 可以由一个字段组成,也可以由多个字段组成 如果主键由一个字段组成,既可以添加到列级,也可以添加到表级 如果由多个字段组成,只能添加到表级 (1)在字段的列级添加约束 creat table 表名(字段名 字段类型 primary key) 例如创建student1表(id name age sex) 其中id为主键 create table student1( id int(8) primary key, name varchar(20), age int(2), sex varchar(1) ) (2)在表级上添加主键约束 语法格式为:create table 表名( 字段名1 字段类型1, 字段名2 字段类型2, ..... 字段名n 字段类型n, [constraint 主键约束名] primary key(字段名) ) 例如创建student1表(id name age sex) 其中id为主键 在表级添加主键约束 create table student2 ( id int(8), name varchar(20), age int(2), sex varchar(1), constraint pk_student2 primary key (id) ) (3)多个字段作为主键,只能添加到表级 语法格式为:create table 表名( 字段名1 字段类型1, 字段名2 字段类型2, ..... 字段名n 字段类型n, [constraint 主键约束名] primary key(字段名1, 字段名2) ) 例如创建student1表(school id name age sex) 其中school和id为主键 在表级添加主键约束 create table student4 ( school varchar(10), id int(8), name varchar(20), age int(2), sex varchar(1), constraint pk_student4 primary key (school,id) ) b,给已有表添加主键约束 语法:alter table 表名 add [constraint 主键约束名] primary key (字段名) ---创建表student5,不加id主键约束 create table student5( id int(8), name varchar(20), age int(2), sex varchar(1) ) desc student5; ---表创建完后,添加主键约束 alter table student5 add constraint pk_student5 primary key (id); c,删除主键约束 语法 alter table 表名 drop primary key; alter table student5 drop primary key;
unique 唯一约束
讯享网唯一约束是指:表中字段的值不能重复 (1)列级添加唯一约束 create table 表名( 字段名1 字段类型1 unique, 字段名2 字段类型2, ..... 字段名n 字段类型n) 例如:创建表student,给name字段添加唯一约束 create table student( name varchar(20) unique, age int(2), gender varchar(1), phone varchar(11) ) (2)在表级添加唯一约束 语法格式为:create table 表名( 字段名1 字段类型1, 字段名2 字段类型2, ..... 字段名n 字段类型n, [constraint 唯一约束名] unique (字段名1, 字段名2) ) 例如:创建表student,给name 和 id 字段添加唯一约束 create table student( name varchar(5), phone int(8), sex varchar(1), id int(10), constraint uk_student_id_name unique (name, id) ) (3)给已有表添加唯一约束 语法:alter table 表名 add [constraint 唯一约束名] unique (字段名1, 字段名2) ---创建表student,先不加id唯一约束 create table student( name varchar(4), id int(8), sex varchar(1), score int(3) ) ------表创建完后,添加唯一约束 alter table student add constraint uk_student_id unique (id); (4)删除唯一约束 alter table 表名 drop index 唯一约束名 alter table student drop index uk_student_id; (如果单个字段没有指定约束名,则默认的唯一约束名为字段名) (如果多个字段组合为唯一约束时,默认的唯一约束名为第一个字段名) (如果指定了约束名,则删除的时候直接写约束名)
not null 非空约束
非空约束是指:表中的某字段的值不能为空 需要注意的是:非空约束只能使用列级添加 空字符串 "" 和 0都不是null (1)列级添加非空约束 语法格式为:create table 表名( 字段名 字段类型 not null ) 例如创建student表,给name添加非空约束 create table student( name varchar(3) not null, id int(20), gender varchar(1) ) (2)给已有表添加非空约束 alter table 表名 modify 字段名字 字段类型 not null -----创建表student,先不加id非空约束 create table student( name varchar(4), id int(8), sex varchar(1), score int(3) ) ------表创建完后,添加唯一约束 alter table student modify gender varchar(1) not null; (3)删除非空约束 alter table 表名 modify 字段名 字段类型 [null] alter table student modify gender varchar(1) null; 另外一种写法为: alter table student modify gender varchar(1);
default 默认值约束
讯享网默认值约束是指:在没有对某字段插入具体值的时候去默认的值 注意: 1,只能只能使用列级约束 2,如果插入的数据为null,则不会使用默认值。当没有插入数据的时候,才会使用默认值。 (1)列级添加默认值约束 语法格式为:create table 表名( 字段名 字段类型 default value ) 例如create table student( name varchar(4), id int(8), gender varchar(1) default "男" ) (2)给已有表添加默认值约束 语法:alter table 表名 modify 字段名 字段类型 default value; alter table student modify gender varchar(1) default "女"; (3)删除默认值约束 alter table 表名 modify 字段名 字段类型; 例如删除gender的默认值"女":alter table student modify gender varchar(1);
auto_increment 自动增长约束
自动增长约束:是指表中的某字段的值会自动增加 注意: 一张表中只能有一个自动增长的字段 通常配合主键一起使用,并且只适用于整数类型 自动增长的默认初始值为1,每增加一条记录,该字段的值会+1 (1)创建表时候,创建自动增长约束 语法格式为:create table 表名( 字段名 字段类型 auto_increment ) 例如创建表student,给id添加主键和自动增长约束 create table student( name varchar(20), id int(8) primary key auto_increment, gender varchar(1) ) (2)给已有表添加自动增长约束 语法:alter table 表名 modify 字段名 字段类型 auto_increment create table student( name varchar(4), id int(8) primary key, gender varchar(1) ) alter table student modify id int(8) auto_increment; (3)删除 自动增长约束 语法:alter table 表名 modify 字段名 字段类型 alter table student modify id int(8);
foreign key 外键约束
讯享网外键约束:是指某一张表中字段的值依赖于另一张表中某字段的值 例如:班级表class 和 学生表student 二者之间的关系是1:n 作用是:主要实现了数据库中的参照完整性 将两张表紧密结合,对某张表修改或删除的时候,要保证数据的完整性 (1)创建外键约束 注意:虽然MySQL提供了列级添加外键约束,但添加后不会生效。所以要使用表级添加外键约束。 语法格式为:create table 表名( 字段名 字段类型, [constraint 外键约束名] foreign key (字段名) references 表(字段名) ) ---创建班级表 create table class( cno int(8) primary key auto_increment, cname varchar(4) ) desc class; ---创建学生表 create table student( cno int(8) primary key auto_increment, cname varchar(4), age int(2), gender varchar(1), stu_cno int(8) constraint fk_student_stu_cno foreign key(stu_cno) references class (cno) ) (2)给已有表中添加外键约束 语法为:alter table 表名 add [constraint 外键约束名] foreign key (字段名) references 表(字段名) ---创建班级表 create table class( cno int(8) primary key auto_increment, cname varchar(2) ) ---创建学生表 create table student( sno int(8) primary key auto_increment, sname varchar(20), stu_cno int(8) ) ---给学生表添加外键约束 alter table student add constraint fk_student_stu_cno foreign key(stu_cno) references class(cno); (3)删除外键约束 语法为:alter table 表名 drop foreign key 外键约束名 例如:alter table student drop foreign key fk_student_stu_cno; (4)有依赖关系的表删除 a,先删除有外键约束的表,再删除主表 顺序不能颠倒 drop table student; drop table class; b,先删除外键约束,再删除表

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/22441.html