创建表

  1. -- 查看数据库
  2. show databases;
  3. -- 删除数据库
  4. DROP DATABASE fanmao5400;
  5. -- 创建数据库;
  6. create database fanmao5400;
  7. -- 使用数据库
  8. use fanmao5400;
  9. -- 查看数据库中的表
  10. show tables;
  11. create table student ( -- create table 创建表 student 表的名字
  12. id int, -- id 字段名 int 表示整数
  13. name varchar(255), -- name 字段名 varchar(255) 表示字符长度,最大是 255
  14. age int -- 每个字段之间使用逗号分开,最后一个字段不用加 逗号
  15. );
  16. -- 创建成绩表 score
  17. -- 表中的字段
  18. -- id int -- 成绩id
  19. -- s_id int 学生id
  20. -- s_name varchar 语文,数学 课程名
  21. -- s_score int 成绩

使用工具直接创建表
image.png

-- 插入一条数据
insert into student(name,age) values ("张全蛋",30);

主键 外键

外键可以约束数据表中的数据。但是外键的创建不是随意创建的,是有一定的规律的。

比如: 一个学生表,一个成绩表
学生表

id 学生id
name 学生名字
age 学生年龄

现有学生表,才有成绩表。
所有在建外键关联的时候, 在成绩表上创建外键关联: 成绩表中的 s_id (学号) 关联 学生表中的id (学号)。

再添加一个课程表

id 课程的id
c_name 课程的名字

成绩表

id 成绩的id
c_id 课程id号
s_id 学生id
score 成绩

成绩表与课程的关系:

现有课程,后有成绩;
课程和成绩之间的关系:成绩的 c_id 等于 课程的 id。
建立外键: 在成绩表上创建 外键, 成绩c_id 关联 课程的id

select * from student5400;
select * from course5400;
select * from score5400;

select st.id as 学号, st.name as 姓名, sum(sc.score) as 总成绩, sum(sc.score)/count(cs.id)  as 平均成绩
from 
student5400 as st, score5400 as sc, course5400 as cs
WHERE st.id = sc.s_id and cs.id = sc.c_id
GROUP BY 学号,姓名;

更新数据

-- 更新数据 更新student5400 表中 id为4 这一列的内容, 将name 更改为 小明
UPDATE student5400 set name="小明" where id=4;

select * from student5400;

删除数据

-- 删除
DELETE FROM `fanmao62`.`score5400` WHERE `id` = 5;
-- 删除 score5400 表中所有 s_id 为1 的数据列;
delete from score5400 WHERE s_id = 2;

select * from score5400;
SELECT * from score5425;
-- 清空表数据 将表中的数据都清空,表还在
TRUNCATE TABLE score5425;

-- 删除整个表, 表删除之后就不存在了

DROP TABLE score5400;
  1. 创建表 员工表 emp54xx ```sql
  • id int 主键 自增 — id
  • name varchar(255) not null — 姓名
  • salary int not null — 薪水
  • work varchar not null — 职位
  • workyear int not null — 工作年限 ```
  1. 表中添加 20条数据
  2. 将 id = 3 的员工 薪资 更改为 19000
  3. 查询最高的薪水是多少?
  4. 请问公司一个月共需要支付多少薪水?
  5. 删除 工资 大于 20000的员工

请把sql语句写出来;