ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

MySQL--sql(2) :

2021-12-27 14:30:00  阅读:81  来源: 互联网

标签:-- sql 外键 查询 字段 MySQL 数据 select


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 课程)

标签:--,sql,外键,查询,字段,MySQL,数据,select
来源: https://blog.csdn.net/m0_53198872/article/details/122168983

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有