1数据管理
1.1外键
外键概念
如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关系的外键。由此可见,外键表示了两个关系之间的相关联系。以另一个关系的外键作主关键字的表被称为主表,具有此外键的表被称为主表的从表。
外键的作用:
保持数据一致性,完整性,主要目的是控制存储在外键表中的数据,约束。使两张表形成关联,外键只能引用外表中的列的值或使用空值。
注意:删除具有主外键关系的表时,要先删子表,后删主表
--删除外键
alter table my_stu drop foreign key class_id;
--删除索引
alter table my_stu drop index class_id;
1.2 DML语言
数据库意义:数据存储、数据管理
DML语言:数据操作语言
- 用于操作数据库对象中所包含的数据
- 包括:insert(添加数据语句),update(更新数据语句),delete(删除数据语句)
1.2.1 插入数据
--insert 添加数据
--insert into 表名[(字段1,字段2,字段2,...)] values ('值1','值2','值3',...)
--一次插入多条数据
insert into grade(gradename) values('大二'),('大三');
注意:(字段1,字段2,字段2,...)这部分可以省略,但添加的值要与表结构,数据列,顺序相对应,且数量一致
1.2.2 修改数据
--update 修改数据
update 表名 setx c=value [,column_name2=value2,...][WHERE condition]
说明:
- column_name 为要更改的数据列
- value 为修改后的数据,可以为变量,具体值,表达式或者嵌套select结果
- condition 为筛选条件,如不指定,则修改所有列数据
where 条件字句(有条件的从表中筛选数据)
举例:
--修改年纪信息
update grade set gradename = '高中' where gradeid =1;
1.2.3 删除数据
delete 删除数据
delete from 表名 [where condition];
--删除第五个数据
delete from grade where gradeid = 5;
TRUNCATE 命令
TRUNCATE[TABLE]table_name;
--清空年级表TRUNCATEgrade
作用:用于完全清空表数据
注意:区别delete命令
- 相同:都能删除数据,不删除表结构,但TRUNCATE速度更快
- 不同:使用TRUNCATE TABLE重新设置AUTO_INCREMENT计数器,使用TRUNCATE TABLE不会对事务有影响
1.3 使用DQL查询数据
DQL(数据查询语言)
- 查询数据库数据,如SELECT语句
- 简单的单表查询或多表的复杂查询和嵌套查询
- 套查询是数据库语言中最核心,最重要的语句
- 使用频率最高的语句
select 语法
1.3.1 指定查询字段
--查询所有学生信息
select * from student;
--查询指定列(学号,姓名)
select studentno,studentname from student;
as 字句作为别名
--(as 关键字可以省略)
select studentno as 学号,studentname as 姓名 from student;
--as 也可为表取别名
select studentno as 学号,studentname as 姓名 from student as s;
distinct 关键字的使用
作用:去掉select查询返回的记录结构中重复的记录(返回的所有列的值都相同),只返回一条
SELECT DISTINCT studentno FROM result;
--了解:DISTINCT去除重复项,(默认是ALL)
先到这,后续补充再发
(学习内容来自狂神说的mysql 课程)