首先我们先了解一下mysql的基本语句和关键词:
创建数据库
CREATE DATABASE IF NOT EXISTS company;
使用数据库
灵活使用insert/delete/update/select相关操作语句
整体sql语句如下:
USE company;
创建表CREATE TABLE IF NOT EXISTS employee (em_id INT PRIMARY KEY auto_increment,em_name VARCHAR(10) NOT NULL,em_phone VARCHAR(11) NOT NULL UNIQUE,em_depart VARCHAR(20) NOT NULL DEFAULT '研发一部');
CREATE TABLE IF NOT EXISTS salary (sa_salary FLOAT(8) NOT NULL,sa_em_id INT NOT NULL,sa_month TINYINT(2) NOT NULL);
CREATE TABLE IF NOT EXISTS hobby (ho_name VARCHAR(10), ho_em_id INT);
增删改查数据灵活使用insert/delete/update/select相关操作语句
整体sql语句如下:
-- 创建数据库
CREATE DATABASE IF NOT EXISTS company;
-- 使用数据库
USE company;
-- 创建员工表 employee
-- em_id 整型 主键 自增
-- em_name varchar(10) not null
-- em_phone varchar(11) not null unique
-- em_depart varchar(20) not null defalut '研发一部'
-- 年龄,邮箱,性别,家庭住址,身份证号,银行卡号
CREATE TABLE IF NOT EXISTS employee (em_id INT PRIMARY KEY auto_increment,em_name VARCHAR(10) NOT NULL,em_phone VARCHAR(11) NOT NULL UNIQUE,em_depart VARCHAR(20) NOT NULL DEFAULT '研发一部');
-- 创建薪水表 salary
-- sa_salary float(8) not null
-- sa_em_id int not null
-- sa_month TINYINT(2) not null
-- 基本工资+课时费+补贴+加班费-五险-个人所得税 = 薪水
CREATE TABLE IF NOT EXISTS salary (sa_salary FLOAT(8) NOT NULL,sa_em_id INT NOT NULL,sa_month TINYINT(2) NOT NULL);
-- 爱好表 hobby
-- ho_name varchar(10)
-- ho_em_id int
CREATE TABLE IF NOT EXISTS hobby (ho_name VARCHAR(10), ho_em_id INT);
-- INSERT INTO 表名 (字段名) value (字段对应的内容);
-- INSERT INTO 表名 (字段名) values (字段对应的内容),(字段对应的内容);
-- 如果插入字符串,需要用''括起来
-- 字段的位置要和内容的位置一一对应
-- 如果字段名表示所有字段,可省略
-- INSERT INTO hobby (ho_name, ho_em_id) value ('打篮球',1001);
-- INSERT INTO hobby value ('打篮球',1001);
-- 要求:查询所有员工的基本信息(爱好,薪资,姓名)
-- SELECT * from employee LEFT JOIN salary on employee.em_id=salary.sa_em_id LEFT JOIN hobby on employee.em_id=hobby.ho_em_id;
-- 要求:查询没有填写爱好的员工的基本信息
-- SELECT * from employee LEFT JOIN salary on employee.em_id=salary.sa_em_id LEFT JOIN hobby on employee.em_id=hobby.ho_em_id where hobby.ho_name IS NULL;
-- 要求:统计员工3月和4月工资总和
-- SELECT employee.em_name,SUM(salary.sa_salary) FROM salary INNER JOIN employee ON salary.sa_em_id=employee.em_id GROUP BY salary.sa_em_id;
-- 要求:统计员工3月和4月工资总和并且降序排列
-- SELECT employee.em_name,SUM(salary.sa_salary) AS 'sa' FROM salary INNER JOIN employee ON salary.sa_em_id=employee.em_id GROUP BY salary.sa_em_id ORDER BY sa;
-- 要求:统计每个员工的爱好个数
SELECT employee.em_name,COUNT(hobby.ho_name) FROM employee LEFT JOIN hobby ON employee.em_id=hobby.ho_em_id GROUP BY hobby.ho_em_id;