创建表
-- 查看数据库
show databases;
-- 删除数据库
DROP DATABASE fanmao5400;
-- 创建数据库;
create database fanmao5400;
-- 使用数据库
use fanmao5400;
-- 查看数据库中的表
show tables;
create table student ( -- create table 创建表 student 表的名字
id int, -- id 字段名 int 表示整数
name varchar(255), -- name 字段名 varchar(255) 表示字符长度,最大是 255
age int -- 每个字段之间使用逗号分开,最后一个字段不用加 逗号
);
-- 创建成绩表 score
-- 表中的字段
-- id int -- 成绩id
-- s_id int 学生id
-- s_name varchar 语文,数学 课程名
-- s_score int 成绩
使用工具直接创建表
-- 插入一条数据
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;
- 创建表 员工表 emp54xx ```sql
- id int 主键 自增 — id
- name varchar(255) not null — 姓名
- salary int not null — 薪水
- work varchar not null — 职位
- workyear int not null — 工作年限 ```
- 表中添加 20条数据
- 将 id = 3 的员工 薪资 更改为 19000
- 查询最高的薪水是多少?
- 请问公司一个月共需要支付多少薪水?
- 删除 工资 大于 20000的员工
请把sql语句写出来;