mysql数据库表的基本操作

表的操作

表示数据库存储数据的基本单位,由若干个字段组成,主要用来存储数据记录,表的操作是增删改查,这是最基本的操作,也是最重要的操作

创建表

语法create table 表名

(字段类型[(宽度约束条件],

 字段类型[(宽度约束条件]

);

在同一张表中字段名不能相同

宽度和约束条件是可选的

字段名和类型是必须的

 

实例:

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 int  primary 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           //字表中的nameemployees 表的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 passord  varchar(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

本文转自    探花无情   51CTO博客,原文链接:http://blog.51cto.com/983865387/1917416


上一篇:机器学习将非结构化二级存储数据变为可全局访问的数据


下一篇:Bokeh中数据的添加、修改和筛选 | Bokeh 小册子