Mysql 基础使用总结

本文详细介绍了MySQL数据库的基本操作,包括创建、查看、删除数据库,选择数据库,建立和删除数据表,查看表格信息,插入、更新和删除数据,以及数据排序、限制和查找。还涉及了数据类型、聚合函数、子查询、连接查询等高级操作,适合数据库初学者和进阶者参考。
摘要由CSDN通过智能技术生成

1. 创建数据库

CREATE DATABASE `json`;

// 语法: 
CREATE DATABASE `数据库名`;

2. 查看现有数据库

SHOW DATABASES;

3. 删除数据库

drop database json;

// 语法
drop database 数据库名;

4.选择数据库

use json;

语法
use 数据库名;

5. 建立数据表

CREATE TABLE `STUDENT`;

语法
CREATE TABLE `表名`;

6. 删除数据表

DROP TABLE STUDENT;

语法
DROP TABLE 数据表名;

7. 查看表格样式

describe `STUDENT`;

语法
describe `数据表名`; 

8. 查看数据表

select * from STUDENT;

语法
select * from 数据表名;

9. 填写数据表信息

(1)
INSERT INTO `student`
VALUES(2,'小黄','computer',NOW());

(2)
INSERT INTO `student`
(`student_id` , `name` , `major` , `submission_date`) -- 加入这个括号可以设置填写顺序
VALUES(3,'小率','computer',NOW());


语法
INSERT INTO `数据表`
VALUES(数据);

10. 插入为数据表属性

ALTER TABLE `student` ADD gpa DECIMAL(3,2); -- 给表格添加属性

ALTER TABLE `student` DROP COLUMN gpa; -- 给表格删除属性

 创建数据表的其他关键字

CREATE TABLE `student1` ( -- 创建表格
	`student_id` INT PRIMARY KEY auto_increment, 

    -- 设置 PRIMARY KEY 后这个值不能重复 
    --  AUTO_INCREMENT 增加自动加 1

    `name` VARCHAR(20) NOT NULL, -- 这个值不能为空  ( constraints 限制 约束 )
    `major` VARCHAR(20) ,
    `score` INT NOT NULL ,
    `submission_date` timestamp
    );


数据类型:

类型大小范围范围用途
TINYINT1 BYTES(-128,127)(0,255)小整数值
SMALLINT​​​​​​​2 BYTES(-32 768,32 767)(0,65 535)大整数值
MEDIUMINT​​​​​​​3 BYTES(-8 388 608,8 388 607)(0,16 777 215)大整数值
INT或INTEGER​​​​​​​4 BYTES(-2 147 483 648,2 147 483 647)(0,4 294 967 295)大整数值
BIGINT​​​​​​​8 BYTES(-9,223,372,036,854,775,808,9 223 372 036 854 775 807)(0,18 446 744 073 709 551 615)极大整数值
FLOAT​​​​​​​4 BYTES(-3.402 823 466 E+38,-1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38)0,(1.175 494 351 E-38,3.402 823 466 E+38)单精度
浮点数值
DOUBLE8 BYTES(-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)双精度
浮点数值
DECIMAL对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2依赖于M和D的值依赖于M和D的值小数值

日期

字符串 

 

 

UPDATE 和 DELETE
// 使用前 将预设的更新模式关闭 防止出错
SET SQL_SAFE_UPDATES = 0;

-- 刷新资料
UPDATE `student1`
SET `score`=99
WHERE `student_id`=1;

-- 删除资料
DELETE FROM `student1`
WHERE `student_id` = 3;

-- 可以使用判断条件来筛选符合条件的删除 
--  >  <  >=  <=  =      <> : 不等于

-- 删除资料
DELETE FROM `student1`
WHERE `student_id` > 3;

排序

-- order by 排序  按照成绩排序  后面加一个 DESC 是从高到低的意思
SELECT * FROM `student1` ORDER BY `score` DESC;


-- order by 排序  按照成绩排序 默认从低到高的意思
SELECT * FROM `student1` ORDER BY `score`;
LIMIT 限制
-- LIMIT 限制 下面这个是限制回传前 2 位置 的资料 
SELECT * FROM `student1`
LIMIT 2;

查找

-- 在所有 name 中 找 guibin 和 老6
SELECT * FROM `student1`
WHERE `name` IN('guibin' , '老6');
例子:

-- 建立 employee 表
CREATE TABLE `employee`(
`emp_id` INT PRIMARY KEY, 
							-- PRIMARY KEY 约束唯一标识数据库表中的每条记录。
							-- 主键必须包含唯一的值。
							-- 主键列不能包含 NULL 值。
							-- 每个表都应该有一个主键,并且每个表只能有一个主键。
`name` VARCHAR(20),
`birth_date` DATE,
`sex` VARCHAR(1),
`salary` INT,
`branch_id` INT,
`sup_id` INT);

-- 删除 数据表中所有数据
delete from `employee`;

-- 查找数据表中所有数据
SELECT * FROM `employee`;

ALTER TABLE `employee` DROP COLUMN branch_id; -- 给表格删除属性
ALTER TABLE `employee` DROP COLUMN sup_id; -- 给表格删除属性

-- BRANCH
CREATE TABLE `branch`(
    `branch_id` INT PRIMARY KEY,
    `branch_name` VARCHAR(20),
    `manager_id` INT,
    FOREIGN KEY (`manager_id`) REFERENCES `employee`(`emp_id`) ON DELETE SET NULL 
-- 一个表中的 FOREIGN KEY 指向另一个表中的 UNIQUE KEY(唯一约束的键)。

-- on delete null 
-- 如果emp_id 删除 就会将 manager_id 设置为 NULL
-- 注意 当这个属性被设置为 PRIMARY KEY 时候就不可以设置这个属性会出错

-- on delete  cascade
-- 如果emp_id 删除 就会将 manager_id 的所有资料一起删除

REFERENCES  这里意思是将manager_id 与 emp_id 绑定
);

-- aggregate function 聚合函数


-- 1 取得员工人数
SELECT COUNT(*) FROM `employee`;
-- 查看有 sup_id 这个属性的有多少个人 
SELECT COUNT(`sup_id`) FROM `employee`;

-- 2 取得所有出生 1970-01-01 之后的女性员工数量
SELECT COUNT(*) FROM `employee` WHERE `birth_date` > '1970-01-01' AND `sex` = 'F';

-- 3 取得所有员工的平均薪资
SELECT AVG(`salary`) FROM `employee`; 
SELECT SUM(`salary`) FROM `employee`;  -- 总和
SELECT MAX(`salary`) FROM `employee`; -- 最大
SELECT MIN(`salary`) FROM `employee`; -- 最小

-- wildcards 万用字元 % 代表多个字元 , _ 代表一个字元

-- 1 取得电话号码位数是 33 的客户
SELECT * FROM `client` WHERE `phone` LIKE '%33';
-- 2 取得姓艾的客户 
SELECT * FROM `client` WHERE `client_name` LIKE '旺%';
SELECT* FROM `client`;
-- 3 取得生日在12 月的 员工
SELECT * FROM `employee` WHERE `birth_date` LIKE '_____12-%';

-- UNION 联集

-- 1 员工名字 union 客户名字
SELECT `name`
FROM `employee`
UNION
SELECT `client_name`
FROM `client`;
-- 联集 上下两个搜寻的值 类型要对应,且 数量要相同

-- 2 员工id + 员工名字 union 客户id + 客户名字
SELECT `emp_id` AS `total_id`, `name` AS `total_name` -- AS 替换原有的名字显示
FROM `employee`
UNION
SELECT `client_id`, `client_name`
FROM `client`;
-- 3 员工薪水 union 销售金额
SELECT `salary`
FROM `employee`
UNION 
SELECT `total_sales`
FROM `works_with`;

-- join 连接


-- 取得所有部门经理的名字

SELECT *
FROM `employee` LEFT JOIN `branch` 
-- LEFT 意思是左边的表格不用条件不用成立也可以回传资料,但右边的符合条件才行

-- FROM `employee` RIGHT JOIN `branch`  
-- RIGHT 意思是右边的表格不用条件不用成立也可以回传资料,但左边的符合条件才行

ON `emp_id` = `manager_name`;   

--   subquery 子查询

-- 1 找出研发部门的经理名字
SELECT `name`
FROM `employee`
WHERE `emp_id` =(
	SELECT `manager_id`
    FROM `branch`
    WHERE `branch_name` = '研发'
);

-- 2 找出对单一位客户销售金额超过 50000 的员工名字

SELECT `name` 
FROM `employee`
WHERE `emp_id` IN( -- 使用 IN 是因为结果不止一个
	SELECT `emp_id`
    FROM `works_with`
    WHERE `total_sales` > 50000); 

参考:Josn.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值