Mysql 数据库(2)

MySQL中表内容的一些操作:


当所命名为关键字时,需要加上撇号,才可识别。

当mysql出现不是内部和外部命令时。
原因:不存在系统路径下,命令没有配环境变量。
配环境变量:计算机右键属性,高级系统设置,环境变量,path,将mysql路径加进去(路径后以分号结束)。

drop table if exists 表名;(在删表之前使用if exists语句验证表是否存在。)
DESC 表名;看表的结构

1、ALTER TABLE  旧表名  RENAME  新表名 (修改表名)
2、ALTER TABLE 表名 ADD 字段名  数据类型  [属性] (添加字段)
3、ALTER TABLE 表名 CHANGE 原字段名  新字段名 数据类型[属性] (修改字段)
4、ALTER TABLE 表名 DROP 字段名( 删除字段)


DML语句:
INSERT INTO 表名 [(字段名列表)] VALUES(值列表);
INSERT INTO 表名 (字段名列表) VALUES(值列表1),(值列表2);

注意:
1、字段名是可选的,如省略则一次插入所有字段;
2、多个列表和多个列表之间使用逗号分隔;
3、值列表和字段名列表一一对应;
4、如插入的是表中部分数据,字段名列表必填。
例1:
INSERT INTO grade(gradeName) VALUES ('java'),('UI');    #插入内容
SELECT *FROM grade;   #查询表
例2:
INSERT INTO subject1 VALUES(NULL,'python',30,1),(NULL,'mysql',50,2);

备份(数据插入):
CREATE TABLE 新表名(SELECT name,phon FROM 旧表名);

例1:
CREATE TABLE studentbak(
 SELECT studentno,studentname FROM student
);

如果新表存在,就会报错。

更新数据记录:
UPDATE 表名
SET 字段1=值1,字段2=值2
WHERE 条件

删除数据记录:
DELETE FROM 表名 WHERE条件;


存储引擎的类型
1、MyISAM(查询):不需事物,空间小,已查询为主
.frm(表结构定义文件) .MYD (数据文件).MYI(索引文件)

2、InnoDB (增删改 )多删除,更新操作,安全性高,事物处理及并发控制
.frm(表结构定义文件) ibdata1文件
3、Memory 4、CSV等9种

查看当前默认引擎:
SHOW  VARIABLES LIKE'storage_engine%';
修改存储引擎,修改my.ini配置文件
创建表时,可在结尾处指定引擎。

在数据库中,第一行报错,下面代码继续执行,与Python相反。


外键所在的表一定是从表  添加外键 修改的是从表
创建外键:
ALTER TABLE 表名 
ADD CONSTRAINT 外键名 FOREIGN KEY(外键字段)
REFERENCES 关联表名(关联字段)

#创建外键   学生表和年级表
ALTER TABLE student #修改表 加外键
ADD CONSTRAINT fk_gradeId FOREIGN KEY(gradeid)
#添加约束     约束的名字 字段
REFERENCES grade(gradeId)
#引用那张表的主键 和字段

#创建外键 科目表和年级表
ALTER TABLE subject1   #给谁创建外键,就修改谁
ADD CONSTRAINT fk_gradeId1 FOREIGN KEY(gradeId)
#约束的名字不能相同       给哪一个字段添加约束
REFERENCES grade(gradeId);

#创建外键 成绩表和学生表
ALTER TABLE result
ADD CONSTRAINT fk_result_studentno FOREIGN KEY(studentno)
REFERENCES student(studentNo)

#创建外键 成绩表和科目表
ALTER TABLE result
ADD CONSTRAINT fk_result_subject1 FOREIGN KEY(subjectno)
REFERENCES subject1(subjectno);

#添加主键
ALTER TABLE 表名 
ADD CONSTRAINT 主键名 PRIMARY KEY 表名 (主键字段);

#给result表添加组合主键
#主键约束:学号,课程编码和日期构成组合主键
ALTER TABLE result
ADD CONSTRAINT pk_stuno_subno_examDate 
PRIMARY KEY (studentno,subjectno,examdate);

#(练习)在test中创建person表
CREATE TABLE person(
 number INT(4) PRIMARY KEY AUTO_INCREMENT,
 `name` VARCHAR(50) NOT NULL,    #因为name关键字,加上撇号
 sex CHAR(2),
 bornDate DATETIME
);

#将表名修改为tb_person,删除出生日期字段,
#添加出生日期字段,数据类型为DATE类型
#修改序号字段名(number)为id,类型为BIGINT类型
ALTER TABLE person RENAME tb_person;
ALTER TABLE tb_person DROP bornDate;
ALTER TABLE tb_person ADD bornDate DATE;
ALTER TABLE tb_person CHANGE number id BIGINT;



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值