0
点赞
收藏
分享

微信扫一扫

DDL语言---(MySQL学习)

残北 2022-05-03 阅读 92
mysql

一、如何创建数据表?

  • CREATE TABLE [IF NOT EXISTS] 表名(

字段1 数据类型1 主键,

字段2 数据类型2,

);

备注:IF NOT EXISTS是可选参数,可以写,也可以不写。

例:

CREATE TABLE t_class(
	cno int(4) primary key,
	cname varchar(15)
);

CREATE TABLE IF NOT EXISTS t_class(
	cno int(4) primary key,
	cname varchar(15)
);
  • 带约束条件的数据表的创建 语法格式:
CREATE TABLE 表名(
	字段1 数据类型1 约束条件1 约束条件2 . . . ,
	字段2 数据类型2 约束条件,
	字段3 数据类型3
);

示例 1:

CREATE TABLE t_stu(
sno int(8) primary key auto_increment,
sname varchar(30) not null,
sex char(4) default '男',
age int(3) unsigned,
cno int(4)
);

示例2 创建数据表时添加主键约束和外键约束:

CREATE TABLE t_stu(
	sno int(8) not null auto_increment,
	sname varchar(30) not null,
	sex char(4) default '男',
	age int(3) unsigned,
	primary key(sno),
	constraint fk_stu_cno foreign key(cno) references t_class(cno)
);

备注:如果是联合主键,就把联合主键的字段写在primary key后面的括号里,例如:primary key(sid,cid)

二、如何修改数据表的结构?

  • 如何修改表名?
    语法:ALTER TABLE 旧表明 RENAME [TO] 新表名
    例如:
ALTER TABLE t_stu RENAME TO t_student;
  • 如何修改字段?
    语法: ALTER TABLE 表名 CHANGE 旧属性名 新属性名 新属性类型;
    示例1:修改字段类型
ALTER TABLE t_student CHANGE stu_id stu_id int(6);

示例2:修改字段名和类型

ALTER TABLE t_student CHANGE stu_id sid int(5);
  • 如何增加字段?
    语法:ALTER TABLE 表名 ADD 新属性名 新数据类型 [完整性约束] [first|after 原有字段];
    示例1:新增无完整性约束的字段
ALTER TABLE t_student ADD email varchar(20);

示例2:新增有完整性约束的字段

ALTER TABLE t_student ADD age int not null;

示例3:将字段添加到第一位

ALTER TABLE t_student ADD sid int primary key first;

示例4:将字段添加到某个字段之后

ALTER TABLE t_student ADD address varchar(100) after telephone;
  • 如何删除字段?
    语法: ALTER TABLE 表名 DROP 属性名;
    示例:
ALTER TABLE t_student DROP address;
  • 如何给已创建好的表增加主键约束?
    语法:ALTER TABLE 表名 ADD PRIMARY KEY(主键列名);
    示例:
ALTER TABLE t_class ADD PRIMARY KEY(cno);
  • 如何删除主键约束?
    语法:ALTER TABLE 表名 DROP PRIMARY KEY;
    示例:
ALTER TABLE t_class DROP PRIMARY KEY;
  • 如何给已创建好的表增加外键约束?
    语法:ALTER TABLE 表名1 ADD CONSTRAINT 约束名 FOREIGN KEY(外键列名) REFERENCES 表名2 (主键名);
    示例:
ALTER TABLE t_student ADD CONSTRAINT fk_t_stu_cno FOREIGN KEY(cno) REFERENCES t_class(cno);
  • 如何删除外键?
    语法:ALTER TABLE 表名 DROP FOREIGN KEY 外键名;
ALTER TABLE t_student DROP FOREIGN KEY fk_t_stu_cno;

注意:MySQL在建外键后,会自动建一个同名的索引。所以要删除外键,需要同时删除这个同名索引。
删除索引:

ALTER TABLE t_student DROP index fk_t_stu_cno;
  • 如何删除数据表?
    语法:DROP TABLE [IF EXISTS] 表名;
    示例:
DROP TABLE t_test;
- - 带 IF EXISTS 参数
DROP TABLE IF EXISTS t_test;

注意:

  • 在删除表的时候要谨慎,以避免误删,导致数据对视,所以在删除前最好做好备份工作

  • 在删除表时,如果当前表存在外键,则先删除外键

  • 在删除有关联外键表时,则先删除子表[存在外键的表],在删除主表

  • 不带IF EXISTS参数删除不存在的表会报错说表不存在,带参数IF EXISTS不会报错。

  • DROP TABLE 和 TRUNCATE TABLE的异同?
    (1)DROP TABLE
    - DDL语言
    - 用于删除表(表的结构、属性以及索引也会被删除)
    - 无法回退,彻底删除
    (2)TRUNCATE TABLE
    - DDL语言
    - 默认所有的表内容都删除,表结构不会被删除
    - 无法回退
    - 删除速度比delete快

举报

相关推荐

0 条评论