数据库入门学习(7.17)

根据b站视频学习,自用

sql(structured query language)

 table and key

 

 sql语法

 关键字大小写都可以,但习惯用大写来写关键字

数据类型

 

1.创建资料库 

CREATE DATABASE `名字`;

反引号是为了避免名字与关键字冲突,这样就可以命名为database而不报错

2.列出所有资料库

SHOW DATABASES;

3.删除资料库

DROP DATABASE `名字`;

4.创建表格(首先要选择资料库)

USE `name`;
CREATE TABLE `student`(
`student_id` INT PRIMARY KEY,//主键不可重复
`name` VARCHAR(20),
`major` VARCHAR(20)
);

5.显示表格

DESCRIBE `name`;

6.删除表格

DROP TABLE `name`;

7.新增表格属性(删除表格属性)

ALTER TABLE `name` ADD shuxing DECIMAL(3,2);//删除就是把ADD换成DROP COLUMN shuxing

8.新增表格里面的资料

INSERT INTO `student` VALUES(1,'小白','历史');//没有就填NULL

9.列出表格中所有资料

SELECT * FROM `student`;

10.constraints 限制

USE `name`;
CREATE TABLE `student`(
`student_id` INT PRIMARY KEY,
`name` VARCHAR(20) NOT NULL//UNIQUE,//DEFAULT 'LISHI'//不写name就直接变成预设的lishi
`major` VARCHAR(20)
);
AUTO_INCREMENT//自动增加

10.修改,删除资料

UPDATA `student`
SET `major` = '英语文学', `major` = '物理'
where `major` = '英语' OR `major` = '化学';
DELETE FROM `student`
WHERE `student_id` = 4 AND `major` = '物理';//WHERE `score` < 60
//不加WHERE就把student表格所有资料删除

11.取得资料

SELECT `name`,`major` FROM `student`;//全都要写*

想要有顺序(descending 降序的 ascending 升序的)

SELECT *
FROM `student`
ORDER BY `score` //DESC 从高到低,默认是ASC,从低到高
//ORDER BY `score`,`student_id`;//要是score一样就用student_id排序

想要少许资料

SELECT *
FROM `student`
ORDER BY `score` DESC
LIMIT 3;//可以和order by一起用

 

 where限制

SELECT *
FROM `student`
WHERE `major` = '英语' OR `score` <> 70;//不等于
LIMIT 2;
//WHERE `major` IN('历史','英语','生物');//相当于or

 实践(公司)

 

 

 

 

 

 

 只能先新增branch,因为employee有外键在branch

 

 

 后面的不想看了qwq,有机会再学

练习

 1.取得所有员工资料

SELECT * FROM `employee`;

 2.按薪水低到高取得员工资料

SELECT * FROM `employee` ORDER BY `salary`;

 3.取得所有员工名字

SELECT `name` FROM `employee`;
//SELECT DINTINCT `sex` FROM `employee`;//就会只有一个f与m,不会有多个

聚合函数

1.取得员工人数

SELECT COUNT(*) FROM `employee`;//用*就是直接知道资料个数,把*换成属性就是看有这个属性的资料个数,因为NULL就不算有

2.取得所有出生在某时间后的女性员工人数

SELECT COUNT(*) `employee` WHERE `birth_data` > '1970-01-01' AND `sex` = 'F';

3.取得所有员工的平均薪水

SELECT AVG(`salary`) FROM `employee`;

4.取得所有员工薪水的总和

SELECT SUM(`salary`) FROM `employee`;

5.取得薪水最高的员工,最低就是换成MIN

SELECT MAX(`salary`) FROM `employee`;

万用字元

%代表多个字元, _代表一个字元

1.取得电话号码尾数是335的客户

SELECT *
FROM `client`
WHERE `phone` LIKE '%335';//开头就是'335%',中间就是'%335%'

2.取得生日在12月的员工

SELECT *
FROM `employee`
WHERE `birth_data` LIKE '_____12%';//5个_是因为是2022-

union 并集

1.员工名字 union 客户名字

SELECT `name`
FROM `employee`
UNION
SELECT `client_name`
FROM `client`
UNION
SELECT `branch_name`
FROM `branch`;//数目要对应,类型要对应

2.员工id加名字union客户id加名字 偷个懒截图啦

3.员工薪水 union 销售金额 

  

 join 连接

 1.取得所有部门经理的名字

SELECT *
FROM `employee`
JOIN `branch`
ON `emp_id` = `manager_id`;

 子查询 subquery

 1.找出研发部门的经理名字

 3小时的课看到了18号下午捏

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值