MySQL数据管理(一)

一、查看表和查看表的定义

需要先使用相应数据库,才能进行对标的操作

# 查看表
SHOW TABLE 表名
# 查看表的定义
DESC 表名;
DESCRIBE  表名

二、删除表

DROP TABLE [IF EXISTS ] 表名;
# 如果表USER存在,删除表USER
DROP TABLE IF EXISTS USER;

三、创建表

与创建数据库一样,如果当前数据库中已经存在该表,则再次创建时系统将提示出错。

CREATE TABLE [ IF NOT EXISTS ] `表名`();

基本格式:

CREATE   TABLE [ IF NOT EXISTS ]    `表名`   (
	`字段名1`   列类型 [ 字段属性 | 约束]  [ 索引 ] [注释] ,
	`字段名2`   列类型 [ 字段属性 | 约束]  [ 索引 ] [注释] , 
	… …
	`字段名n`   列类型 [字段属性 | 约束]  [ 索引 ] [注释] 
)  [  表类型 ] [ 表字符集 ] [注释] ;
# 如果不存在表USER,创建表USER
CREATE TABLE IF NOT EXISTS `USER`(
    # 创建一个字段
    `NAME` VARCHAR(6),
    # 创建一个字段
    `AGE` INT(2)
# 定义存储引擎
)ENGINE = INNODB COMMENT '用户';

四、表类型

# 查看系统所支持的存储引擎
SHOW ENGINES;
# 查看表的定义
DESC 表名;
# 查看系统所支持的存储引擎
SHOW ENGINES;
# 查看表的定义
DESC USER;
常用的两种表
名称MyISAMInnoDB
事务处理不支持支持
数据行锁定不支持支持
外键约束不支持支持
全文索引支持不支持
表空间大小较小较大,约2倍

使用MyISAM:
节约空间及相应速度,适合以访问为主的应用。

使用InnoDB:
安全性,事务处理及多用户操作数据表。

表类型的设置

# 如果存在表,就删除该表 
DROP TABLE IF EXISTS `student`;
# 创建表
CREATE TABLE `student`(
……
) ENGINE =  InnoDB;

五、设置表的字符集

一、创建时通过命令来设置。

CREATE TABLE  表名(
	#省略一些代码
)CHARSET  =  utf8;

二、修改配置文件my.ini(Windows系统)中的参数。
character-set-sever = utf8

六、修改表

1、修改表名

ALTER TABLE 旧表名  RENAME AS  新表名
# 修改表名,将USER修改为STUDENTUSER
ALTER TABLE USER RENAME AS STUDENTUSER;

2、添加字段

 ALTER TABLE 表名   ADD 字段名   列类型 [ 属性 ] 
# 添加字段,在STUDENTUSER 表中添加NUMBER 字段,属性为 INT(10)
ALTER TABLE STUDENTUSER ADD NUMBER INT(10);

3、修改字段

# 修改列的数据类型
ALTER TABLE 表名   MODIFY 字段名   列类型 [ 属性 ]
# 修改列的数据类型及名称
ALTER TABLE 表名  CHANGE 旧字段名 新字段名  列类型 [ 属性 ]
# 修改字段,不可以修改字段名,修改STUDENTUSER 表中的AGE 字段,属性为 VARCHAR(2)
ALTER TABLE STUDENTUSER MODIFY AGE VARCHAR(2);
# 修改字段名及其属性,修改STUDENTUSER 表中的NUMBER 字段,该字段的名字修改为STUDENTNUMBER ,属性为 INT(12)
ALTER TABLE STUDENTUSER CHANGE NUMBER STUDENTNUMBER INT(12);

4、删除字段

ALTER TABLE 表名   DROP  字段名
# 删除字段
ALTER TABLE STUDENTUSER DROP NAME;

七、完整性

数据完整性 = 数据的精确性 + 数据的可靠性

1、数据完整性

数据完整性主要
1.实体完整性
保证表中所有的行唯一
2.域完整性
数据库表中的列必须满足某种特定的数据类型或约束
取值范围
精度
等......
3.引用完整性
保证主关键字 //被引用表 \\ 和外部关键字 //引用表\\ 之间的参照关系
涉及两个或两个以上表数据的一致性维护

2、使用约束实现数据完整性

数据库保证数据完整性的方法
约束
规则
触发器
约束类型关键字说明
非空约束NOT NULL如果字段不允许为空,则需要设置NOT NULL约束。
默认约束DEFAULT赋予某字段默认值,如果该字段没有赋值,则其值为默认值。
唯一约束UNIQUE KEY设置该字段的值唯一的,允许为空。
主键约束PRIMARY KEY设置该字段为表的主键,可以作为该表记录的唯一标识。
外键约束FOREIGN KEY用于在两表之间建立关系,需要引用主表的哪一字段。

3、在数据表上添加约束

ALTER TABLE 表名  
ADD CONSTRAINT 约束名  约束关键字  具体的约束说明

约束名的取名推荐采用:约束类型_约束字段

  • 主键(Primary Key)约束:如 PK_stuNo
  • 唯一(Unique )约束:如 UQ_stuID
  • 外键(Foreign Key)约束:如 FK_stuNo

唯一约束

# 设置唯一约束
ALTER TABLE 表名 ADD CONSTRAINT 约束名  UNIQUE(列名);

ALTER TABLE student ADD CONSTRAINT uq_stuid  UNIQUE(identitycard);

主键

# 主键
# 如果两列或多列组合起来唯一地标识表中的每个行,则该主键叫做“复合主键”
ALTER TABLE 表名 ADD CONSTRAINT 约束名  PRIMARY KEY(列名1,列名2,…列名n);

ALTER TABLE student ADD CONSTRAINT pk_studentno  PRIMARY KEY (studentno) ;

外键约束

# 设置外键约束
ALTER TABLE 从表名 ADD CONSTRAINT 约束名  FOREIGN KEY(从表的列名) REFERENCES 主表名(主表的列名) 

ALTER TABLE result ADD CONSTRAINT fk_studentno FOREIGN KEY(studentno) REFERENCES student(studentno)

如果一个字段既要求唯一又不能为null,可使用主键约束

设置外键约束的注意事项:

  1. 主表中的字段必须为主键。
  2. 从表中的外键列和主表中的主键列的数据类型要保持一致,和字段名无关。
  3. 主表和从表的表类型为InnoDB。

如果两列或多列组合起来唯一地标识表中的每个行,则该主键叫做“复合主键”

4、删除约束

# 删除主键约束
ALTER TABLE 表名  DROP PRIMARY KEY;
# 删除唯一约束
ALTER TABLE 表名  DROP KEY 唯一约束名;
# 删除外键约束
ALTER TABLE 表名  DROP FOREIGN KEY 外键约束名;
ALTER TABLE student DROP FOREIGN KEY fk_studentno
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jule_zhou

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值