第4章数据表的基本操作

数据表的基本操作

内容导读

  • 掌握如何创建数据表
  • 掌握查看数据表结构的方法
  • 掌握如何修改数据表
  • 熟悉删除数据表的方法

创建表

首先创建数据库, SQL 语句如下:

CREATE DATABASE test_db;

选择创建表的数据库, SQL 语句如下:

USE test_db; 

创建 tb_empl 表, SQL 语句为:

create table tb_emp1(id int(11),name varchar(25));

查看数据表:

SHOW TABLES; 

使用主键约束
主键:要求主键列的数据唯一,并且不允许为空。主键能够惟一地标识表中的一条记录

1.单字段主键

在定义列的同时指定主键

create table tb_emp2(
id int(11) primary key,
name varchar(25)
);

在定义完所有列之后指定主键

create table tb_emp3(
id int(11) ,
name varchar(25),
primary key(id)
);

2.多字段联合主键

create table tb_emp4(
id int(11) ,
name varchar(25),
primary key(id,name)
);

使用外键约束

外键用来在两个表的数据之间建立链接

外键的作用是保持数据的一致性、完整性。

create table tb_dept1(
id int(11)primary key,
name varchar(22) not null,
location varchar(22)
);

create table tb_emp5(
id int(11) ,
name varchar(25),
deptId int(11),
CONSTRAINT fk_emp_deptl FOREIGN KEY(deptld) references tb_deptl(id) 
);

关联指的是指相关表之间的联系,子表的外键必须关联父表的主键

使用非空约束

Not NUll:指字段的值不能为空 插入数据时候没有指定值 系统报错

create table tb_emp6(
id int(11) ,
name varchar(25) not null,
primary key(id,name)
);

使用唯一性约束

唯一性约束(Unique Constraint]要求该列唯一,允许为null,但只能出现一个空值。

1.在定义完列之后直接指定唯一约束

create table tb_dept2(
id int(11)primary key,
name varchar(22) unique
);

2.在定义完所有列之后指定唯一约束

create table tb_dept2(
id int(11)primary key,
name varchar(22) unique,
CONSTRAINT STH UNIQUE(name) 
);

主键与唯一约束的区别:

一个表中可以有多个字段声明为UNlQUE,但只能有一个PRIMARY KEY

主键不允许为null 但是UNlQUE可以为null

使用默认约束
如果插入一条新的记录时没有为这个字段赋值,使用默认值

create table tb_emp7(
id int(11) ,
name varchar(25) not null,
sex varchar(8) default 'female'
);

设置表的属性值自动增加

在MySQL中AUTO_INCREMENT的初始值是l,每新增1条记录,字段值自动加1

create table tb_emp8(
id int(11) primary key  AUTO_INCREMENT,
name varchar(25)
);

##查看表结构##

查看表基本结构语旬DESCRIBE

describe/desc语句可以查看表的字段信息

describe tb_dept1;

desc tb_emp1;

查看表详细结构语句SHOW CREATE TABLE

加上参数\G之后, 可使显示结果更加直观, 易于查看。

SHOW CREATE TABLE tb_emp1\G;

修改表

修改表名

ALTER TABLE<旧表名>RENAME [TO] <新表名>;

ALTER TABLE tb_dept3 rename to tb_deptment3; 

修改字段的数据类型

ALTER TABLE <表名> MODIFY <字段名> <数据类型>
desc tb_dept1;
ALTER TABLE tb_deptl MODIFY name VARCHAR(30);

修改字段名

ALTER TABLE<表名>CHANGE<I白字段名><新字段名><新数据类型>;
ALTER TABLE tb_deptl CHANGE location loc VARCHAR(30); 

添加字段

ALTER TABLE<表名>ADD<新字段名><数据类型> [约束条件) [FIRST I AFTER已存在字段名];

“FIRST或AFTER已存在字段名” 用于指定新增字段在在中的位直

添加无完整性约束条件的字段

ALTER TABLE tb_deptl ADD managerld int(10); 

添加有完整性约束条件的字段

ALTER TABLE tb_deptl ADD column1 VARCHAR(l2) not null; 

在表的第一列添加一个字段

ALTER TABLE tb_dept1 ADD column2 int(ll) FIRST; 

4.在表的指定列之后添加一个字段

ALTER TABLE tb_deptl ADD column3 INT(11) AFTER name;

删除字段

ALTER TABLE <表名>DROP<字段名>;
ALTER TABLE tb_deptl DROP column2; 


修改字段的排列位置
```sql
ALTER TABLE<表名>MODIFY<字段1><数据类型>FIRST|AFTER<字段2>;

修改字段为表的第一个字段

ALTER TABLE tb_deptl MODIFY column1 VARCHAR(12) FIRST; 

修改字段到袤的指定列之后

ALTER TABLE tb_deptl MODIFY column1 VARCHAR(12) AFTER location;

更改表的存储引擎

ALTER TABLE <表名> ENGINE=<更改后的存储引擎名>;

ALTER TABLE tb_deptment3 ENGINE=MyISAM;

删除表的外键约束

ALTER TABLE<表名> DROP FOREIGN KEY<外键约束名>

CREATE TABLE tb_emp9
(
id int(11) primary key,
name varchar(25),
CONSTRAINT fk_emp_dept FOREIGN KEY (deptld) REFERENCES tb_deptl(id) 
);

ALTER TABLE tb_emp9 DROP FOREIGN KEY fk_emp_dept;

删除表

删除没有被关联的表

DROP TABLE [IF EXISTS]表 l,2, ...表n;
DROP TABLE IF EXISTS tb_dept2; 

删除被其他表关联的主表

先删除与它关联的子表,再删除父表

解除关联子表 tb_emp1 的外键约束

ALTER TABLE tb_emp1 DROP FOREIGN KEY fk_emp_dept;

DROP TABLE tb_dept2; 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值