欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

MySQL入门很简单-新建、修改、删除表

程序员文章站 2022-06-24 20:12:26
create database test; use test; create table 表名(属性名 数据类型 [完整性约束条件], ..., 属性名 数据类型); 完整性...

create database test;

use test;

create table 表名(属性名 数据类型 [完整性约束条件], ..., 属性名 数据类型);

完整性约束条件:

1.primary key,主键,可以唯一标识对应的元组,值非空且唯一,可以是单一字段也可以是多个字段组合;

2.foreign key, 外键

3.not null,标识属性不能为空

4.unique,标识该属性值唯一

5.auto_increment,标识属性值自增

6.default,默认值

1、主键

create table example1(stu_id int primary key, stu_name varchar(20), stu_sex boolean);

多字段主键,在表属性定义完成之后统一设置,primary key(属性名1, ... , 属性名n)

create table example2(stu_id int, course_id int, grade float, primary key(stu_id, course_id));

2、外键

外键必须依赖于数据库中已存在的父表的主键,外键可以为空,作用是建立与父表的关联关系。子键的外键关联必须是父表的主键,数据类型必须一致。

constraint 外键别名 foreign key(属性1.1, ..., 属性1.n) references 表名(属性2.1, ..., 属性2.n)

create table example3(id int primary key, stu_id int, course_id int, constraint c_fk foreign key(stu_id, course_id) references example2(stu_id, course_id));

3、设置表的非空约束

非空性指字段的值不能为空值,非空约束保证所有记录中该字段都有值。

属性名 数据类型 NOT NULL

4、设置表的唯一性约束

唯一性指所有记录中该字段的值不能重复出现。在创建表时为表的某些特殊字段加上unique约束条件。

属性名 数据类型 UNIQUE

5、设置属性值字段增加,auto_increment约束的字段可以是任何整数类型(tinyint smallint int bigint)

属性名 数据类型 auto_increment

默认自增字段从1开始自增;如果第一条记录设置了该字段的初值,则新增加的记录由初值开始自增。通常情况下,id字段的约束条件有auto_increment,且将id字段作为主键。

6、设置表的属性的默认值

属性名 数据类型 default 默认值

create table example7(id int primary keyanto_increment, stu_id int unique, name varchar(20) not null, english varchar(20)default 'zero', math float default 0, computer float default 0);

查看表结构describe语句和show create table语句

describe 表名; //describe可以缩写为DECS,因此也可以 desc 表名,显示字段、字段数据类型、是否为空、是否主外键、默认值、额外信息(如auto_increment)

show create table 表名; //代码后加\G参数可使查询的表结构比较美观,显示字段、字段数据类型、是否为空、是否主外键、默认值、额外信息(如auto_increment),还可以查出表的存储引擎、字符编码等。

修改表是指修改数据库中已存在的表的定义。通过alter table语句修改表的定义,包括修改表名、修改字段数据类型、修改字段名、增加字段、删除字段、修改字段的排列方式、更改默认存储引擎和删除表的外键约束。

alter table 旧表名 rename [to] 新表名; //to是可选参数,存在与否不影响语句的执行

alter table 表名 modify 属性名 数据类型; //修改数据字段类型, alter table user modify name varchar(30);

alter table 表名 change 旧属性名 新属性名 新数据类型; //alter table user change stu_name name varchar(30); change可以在修改字段类型的同时修改字段名

alter table 表名 add 属性名1 数据类型 [完整性约束条件] [first | after 属性名2]; //first为可选字段将新增的字段设置为表的第一个字段, after 属性名2将新增字段添加到属性名2的字段后, 无约束则添加到表的最后一个字段。alter table user add address varchar(30) not null after phone

alter table 表名 drop 属性名; //删除某字段

alter table 表名 modify 属性名1 数据类型 first | after 属性名2; //修改字段的排列位置,修改字段为表的第一个属性位置或将字段的位置置于属性2后 alter table user modify adress varchar(30) after sex;

alter table 表名 engine=存储引擎名; //alter table user engine=MyISAM,如果表中已存在很多数据,最好不要轻易更改存储引擎

alter table 表名 drop foreign key 外键别名;//alter table example3 foreign key c_fk; 添加外键,alter table example3 add constraint c_fk foreign key(stu_id, course_id) references example2(stu_id, course_id)

删除表 drop table 表名;

删除被其他表关联的父表:可以先删除子表再删除父表;先删除子表的外键约束

字段名修改后,部分约束条件丢失:在执行修改名称的操作时,加上与原字段相同的约束条件。修改字段的数据类型时,也要加上约束条件防止约束条件丢失。

设置外键,必须先建立父表,父表中的被依赖字段必须是主键或者组合主键中的一个。

自增字段没有默认值,在未设置初值的情况下默认从1开始增加。插入记录若记录中设置了处置,则下一条记录从该字段的值得基础上+1.