MySQL学习笔记(三): 数据表相关操作

MySQL中对数据表的操作

1.新建数据表

create table t_name(
	属性名 数据类型 [约束...],
	属性名 数据类型 [约束...],
	......
	属性名 数据类型 [约束...]
)

级联删除:

  • 在添加外键约束时,使用关键字 on delete cascade
    使用:当删除父表数据时,自动删除子表相关所有数据。

    语法:

    constraint 外键名 foreign key (字段名) references 表名 (字段名) on delete cascade
    
  • 使用关键字 on delete set null
    删除父表数据时,将子表中的依赖字段的值设置为null。
    注意:子表依赖字段不能添加非空约束。

    语法:

    constraint 外键名 foreign key (字段名) references 表名 (字段名) on delete set null
    

注意:

  • MySQL中的关键字不能使用作为表名, 数据库名和字段名等, 如果要使用要在名称上加上反引号
  • 字段间用逗号隔开, 最后一个字段最后不需要加逗号

2.查看所有数据表

show tables;

如果没有进入先进入数据库中, 将会得到:

ERROR 1046 (3D000): No database selected

注意:

  • 查看所有数据表之前, 要先进入到一个数据库中

3.删除数据表

DROP TABLE [IF EXISTS] <表名>;

语法说明如下:

  • <表名>:被删除的表名。DROP TABLE 语句可以同时删除多个表,用户必须拥有该命令的权限。
  • 表被删除时,所有的表数据和表定义会被取消,所以使用本语句要小心。
  • 表被删除时,用户在该表上的权限并不会自动被删除。
  • 参数IF EXISTS用于在删除前判断删除的表是否存在,加上该参数后,在删除表的时候,如果表不存在,SQL 语句可以顺利执行,但会发出警告(warning)。

4.查看数据表结构

DESCRIBE/DESC 语句可以查看表的字段信息,包括字段名、字段数据类型、是否为主键、是否有默认值等,语法规则如下:

DESCRIBE <表名>;

或简写成:

DESC <表名>;

SHOW CREATE TABLE 语句可以用来显示创建表时的CREATE TABLE语句,语法格式如下:

show create table 表名\G;

提示:使用 SHOW CREATE TABLE 语句不仅可以查看创建表时的详细语句,而且可以查看存储引擎和字符编码。如果不加“\G”参数,显示的结果可能非常混乱,加上“\G”参数之后,可使显示的结果更加直观,易于查看。

5. 修改数据表

在 MySQL 中可以使用 ALTER TABLE 语句来改变原有表的结构,例如增加或删减列、创建或取消索引、更改原有列类型、重新命名列或表等。

常用的语法格式如下:

ALTER TABLE <表名> [修改选项]

修改选项的语法格式如下:

  • ADD COLUMN <列名> <类型>
  • CHANGE COLUMN <旧列名> <新列名> <新列类型>
  • ALTER COLUMN <列名> { SET DEFAULT <默认值> | DROP DEFAULT }
  • MODIFY COLUMN <列名> <类型>
  • DROP COLUMN <列名>
  • RENAME TO <新表名>

创建四个表:

# 创建商品种类表
create table commoditytype(
	ct_id int(11) primary key,
	ct_name varchar(50) not null
)default charset=utf8;

# 创建商品表
create table commodity(
    c_id int(11) primary key,
    c_name varchar(50) not null,
    c_madein varchar(50) not null,
    c_type int(11) not null,
    c_inprice int(11) not null,
    c_outprice int(11) ,
    c_num int(11) default '100',
    constraint fk_1 foreign key (c_type) references commoditytype (ct_id)
)default charset=utf8;

# 创建客户表
create table customer(
    cu_id int(11) primary key,
    cu_name varchar(50) not null,
    cu_phone varchar(50) not null,
    cu_gender int(11) not null default '1',
    cu_address varchar(100) not null
)default charset=utf8;

# 创建订单表
create table `order`(
    o_id int(11) primary key auto_increment,
    o_cuid int(11) not null,
    o_cid int(11) not null,
    o_num int(11) not null,
    constraint fk_2 foreign key (o_cuid) references customer (cu_id),
    constraint fk_3 foreign key (o_cid) references commodity (c_id)
)default charset=utf8;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值