黄智勇 发表于 2018-10-9 11:51:52

mysql数据库表的基本操作

表的操作
  表示数据库存储数据的基本单位,由若干个字段组成,主要用来存储数据记录,表的操作是增删改查,这是最基本的操作,也是最重要的操作
创建表
  语法create table 表名
  (字段1 类型[(宽度) 约束条件],
  字段n 类型[(宽度) 约束条件]
  );
  在同一张表中字段名不能相同
  宽度和约束条件是可选的
  字段名和类型是必须的
  实例:
  Use school
  Create table student
  (name char(10),
  Sex char(8),
  Age int(3),
  Password varchar(50)
  );
查看表结构
  Describe 表名;
  Desc 表名;
  Show create table 表名;//查看表详细结构
表完整性约束为了保障数据的完整性一致性和准确性
  关键字primkary key 主键, 唯一标识的一个记录
  Foreign key 外键 ,做关联
  No null 非空
  Unique key 唯一约束,这本身就是一个索引
  Default 默认值
  Auto_increment 自增长
  实例:
  Use school
  Create table student
  (name char(10) not null,
  Sex enum (‘male’,’female’), default ‘male’ not null
  Age int unsigned not null default 18,                  //unsigned修饰值必须为正值
  Hobby set (‘music’,’book’,’disc’) default ‘book,disc’
  );
  设置唯一约束实例:unique
  Create table departtment(
  Dept_id int,
  Dept_name varchar(30) unique,
  Comment varchar(50)
  );
  设置主键约束实例:primary key非常重要,唯一标识符,这本身就是一条索引
  使用单列做主键
  Create table departtment(
  Dept_id int primary key,
  Dept_name varchar(30) ,
  Comment varchar(50)
  );
  使用多列做主键,也就是复合主键,也就是说这两个共同一起是不能有相同的数据的
  Create table departtment(
  Dept_id int ,
  Dept_name varchar(30),
  Comment varchar(50),
  Constraint pk_id_name primary key (dept_id,dept_name)
  );
  设置自增长auto_increment自增长通常都是配合主键共同使用的,而且这个字段必须是整数类型才行
  Create table student(
  Dept_id intprimary auto_increment,
  Dept_name varchar(30),
  Comment varchar(50)
  );
  设置外键约束foreign key主要做表的关联,这里就涉及到父子表的概念,外键必须要存储引擎来支撑的,所以必须要确保存储引擎是innodb才行
  实例
  父表
  Create table empolyees(
  Name varchar(20) not null,
  Mail varchar (20),
  Primary key (name)
  )engine=innodb;
  子表
  Create table pryroll(
  Id int(5) not null,
  Name varchar(20) not null,
  Payroll float (10,2) no null,
  Primary key (id),
  Constraint fk_name foreign key (name) references employees (name)
  on udate cascade
  on delete cascade         //字表中的name跟employees 表的name字段关联,并且同步删除更新,父表中有那个人,子表中才能够插入,不然是不行的
  )engine=innodb;
修改表
  修改表名
  Alter table 旧表名rename 新表名
  实例:
  Alter table stu rename student;//将stu表改名为student
  Alter table student engine=myisam;//修改student表的存储引擎为myisam
  增加字段
  Alter table 表名
  Add字段名 数据类型 [完整性约束条件.....],
  Add字段名 数据类型 [完整性约束条件.....];
  默认情况下新增加的字段是放在所有字段后面的
  实例:
  Alter table student
  Add name varchar(30) not null,
  Add age int not null;
  Alter table 表名
  Add字段名 数据类型 [完整性约束条件.....] first;
  实例:
  Add stu_num varchar(30) not null first;
  Alter table 表名
  Add字段名 数据类型 [完整性约束条件.....] after 字段名;
  实例:
  Add passordvarchar(30) not null after name;
  删除字段
  Alter table 表名 drop 字段名;
  实例:
  Alter table student drop stu_num;
  修改字段
  Alter table 表名 modify 字段名 数据类型 [完整性约束条件......]; //只能针对旧有的字段操作只能改名
  Alter table 表名 change 旧字段名 新字段名 旧数据类型 [完整性约束条件......];
  一般用这个
  实例:
  Alter table student change name stu_name varchar(30);
  Alter table 表名 change 旧字段名 新字段名 新数据类型 [完整性约束条件......];
  实例:
  Alter table student change stu_name name varchar(50) not null;
  删除表
  Drop table 表名;
  实例:
  Drop table student

页: [1]
查看完整版本: mysql数据库表的基本操作