【LittleXi】sql学习笔记

数据类型

INT 整数型

VARCHAR 字符串

DECIMAL(a,b) 浮点型(a代表位数,b代表小数位位数)

BLOB 图片、影片、档案

DATA 日期 XXXX-MM-DD

TIMESTAMP 记录时间 XXXX-MM-DD HH-MM-SS

创建数据库

CREATE DATABASE sql_tutorial;

查看数据库

SHOW DATABASES;

移除数据库

DROP DATABASE sql_tutorial;

使用数据库

USE sql_tutorial;

创建表单

CREATE TABLE student(`student_id` INT auto_increment, --auto_increment指可以自动修改键的值`name` varchar(20) not null,`major` varchar(20) unique,primary key(`student_id`) --primary key 指索引关键字
);

删除表单

drop table student;

显示表单

describe student;

插入表单内容

alter table student add gpa decimal(3,2);

删除表单内容

alter table student drop column gpa;

显示表单具体内容

select * from student;

插入表单具体内容的三种方式

insert into `student` values(1,"小夕","家妻修养指南");insert into `student` values(2,"德克萨斯","剑雨");insert into `student` (`name`,`major`) values("羽毛笔","卖萌"); --仅限primary key有自动自增的时候

更新表单中的内容

update`student`
set `major` = "近战"
where `major` = "术士";
update `student`
set `major` = "近战"
where `student_id` =  1;

删除表单

delete from `student`
where `student_id` in (1,3);
delete from `student`
where `student_id` % 2 = 1;

从表单中取得资料(三种方法)

-- 取得资料
select `name` , `major` from `student`;select * from `student`
order by `student_id` desc  -- 默认asc由低到高,desc由高到低
limit 2; -- 限制取回的资料的数目select * from `student`
order by `student_id` , 'score' desc; -- 先根据student_id排序,如果student_id 一样的话,就按照score进行排序

aggregate functions 聚合函数

– 1、取得员工人数
select count(*) from `employee`;

– 2、取得所有出生日1970-01-01之后的女性员工人数
select count(*) from `employee` where `birth_data` > "1970-01-01" and `sex`='F';

– 3、取得所有员工的平均薪水
select avg(`salary`) from `employee`;

– 4、取得所有员工薪水的总和
select sum(`salary`) from `employee`;

– 5、取得薪水最高的员工
select max(`salary`) from `employee`;

– 6、取得薪水最低的员工
elect min(`salary`) from `employee`;

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

1、取得电话号码位数是114514的客户

select *
from `client`
where `phone` like "%114514";

2、取得姓小的用户

select *
from `client`
where `client_name` like "小%";

3、取得生日在12月的员工

select *
from `employee`
where "birth_data" like "_____12%";  -- 2000-12-19

union 联集

1、员工名字 union 客户名字

select `name`
from `employee`
union
select `client_name`
from `client`
union
select `branch_name`
from `branch`;

2、员工id + 员工名字 union 客户id + 客户名字

select `emp_id` as `changed_id`, `name` as `changed_name`
from `employee`
union
select `client_id`,`client_name`
from `client`;

3、员工薪水 union 销售金额

select `salary` as `changed_salary`
from `employee`
union
select `total_sales`
from `work_with`;

join 连接:可以帮助我们把两个表格连接在一起

取得所有部门经理的名字

  • left : 条件成不成立都会传回左边的表格
  • right ;条件成不成立都会传回右边的表格
select `emp_id`,`name`,`branch_name`
from `employee` left join `branch`
on `employee`.`emp_id` = `branch`.`manager_id`;

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 (select `emp_id`from `works_with`where `total_sales` > 50000
);

on delete

删除之后把联系的table设置为null

create table `branch`(`brach_id` int primary key,`branch_name` varchar (20),`manager_id` int ,foreign key(`manager_id`) references `employee`(`emp_id`) on delete set null
);

删除之后把联系的table对应元素也删除了

create table `works_with`(`brach_id` int primary key,`branch_name` varchar (20),`manager_id` int ,foreign key(`manager_id`) references `emp_id` on delete cascade,foreign key(`client_id`) references `emp_id` on delete cascade
);

【LittleXi】sql学习笔记相关推荐

  1. 判断题:oracle自带的sql语言环境是pl/sql,Oracle之PL/SQL学习笔记之数据类型(三)

    Oracle之PL/SQL学习笔记之数据类型(三) 所有的编程语言中变量是使用最频繁的.PL/SQL作为一个面向过程的数据库编程语言同样少不了变量,利用变量可以把PL/SQL块需要的参数传递进来,做到 ...

  2. Spark学习笔记(7)---Spark SQL学习笔记

    Spark SQL学习笔记 Spark SQL学习笔记设计到很多代码操作,所以就放在github, https://github.com/yangtong123/RoadOfStudySpark/bl ...

  3. Oracle之PL/SQL学习笔记之有名块练习

    2019独角兽企业重金招聘Python工程师标准>>> Oracle之PL/SQL学习笔记之有名块练习 存储过程案例: 案例1: 根据雇员姓名跟新雇员工资,如果雇员不存在输出没有该雇 ...

  4. 探针一号的SQL学习笔记

    SQL学习笔记 文章目录 SQL学习笔记 1.问题 2.SQL基本语句 3.SQL基本数据查询 4.SQL复杂点的数据查询 5.DML操作 6.数据表操作 1.问题 什么是数据库? 是一个仓库,可以按 ...

  5. SQL学习笔记_Aliyun4

    SQL学习笔记_Aliyun4 本笔记为阿里云天池龙珠计划SQL训练营的学习内容,链接为:https://tianchi.aliyun.com/specials/promotion/aicampsql ...

  6. 简简单单 My SQL 学习笔记(2)——分组和简单数据的查询

    初始数据 创建表(要记得先选择好我们的数据库 use+数据库名) create table student( studentno int(4) primary key not null auto_in ...

  7. SQL学习笔记之二:QUOTENAME函数

    SQL学习笔记之二:QUOTENAME函数 --SQL学习笔记二 --函数QUOTENAME --功能:返回带有分隔符的Unicode 字符串,分隔符的加入可使输入的字符串成为有效的Microsoft ...

  8. SQL学习笔记 | 02 SQL语句结构

    SQL学习笔记 | 02 SQL语句结构 一.表的导入 1.表的命名 2.导入步骤 3.导入需注意 二.标准SQL语法 1.语句结构 2.数据表的其他关键词 3.SQL语句的分类 一.表的导入 1.表 ...

  9. SQL学习笔记(基础部分)

    SQL学习笔记 基础部分 SQL语法 数据库语言对大小写不敏感,用分号分隔每条数据库语言 SQL通用数据类型 SQL开发,在创建SQL表时要确定每个列要存储的数据类型,每一列都需要一个列名和确定的数据 ...

最新文章

  1. Spring Boot项目搭建易错注意事项
  2. 基于Redis的MQ中间件实现-目录
  3. 工作十余年,还是一直被问 委托和事件 有什么区别? 真是够了
  4. git提交代码到自己的分支,并合并到主分支的完整流程。
  5. 编写安全 PHP 应用程序的七个习惯
  6. 英语口语Week16 Wednesday
  7. blast2go mysql_Blast2go本地化教程
  8. 两个not exists_分享两个冷门但又超实用的 Vim 使用技巧!
  9. 自动的自动化:EvoSuite 自动生成JUnit的测试用例
  10. mac安装helm工具_适用于初学者的基本 kubectl 和 Helm 命令
  11. CSS3 Transform 变形
  12. ArcMap10.2 本地安装教程
  13. C语言根号作用,c语言中如何开根号运算
  14. 【SDOI2015】星际战争(网络流)
  15. 最新电脑cpu性能排行服务器,服务器cpu性能如何 服务器cpu性能排行榜介绍【详解】...
  16. 2021-09-23记录下wifi调试流程
  17. 第五天实验---MGRE环境下的OSPF实验
  18. 基础: 有效值、RMS、振幅、幅度概念
  19. Ubuntu下安装XAMPP
  20. Python for 循环遍历字符串

热门文章

  1. VIP网易邮箱,163VIP邮箱,新浪vip等邮箱的对比分析
  2. 如何把一张透明的图片做成不透明的
  3. F28335第七篇——新建项目之编程演示
  4. Android下拉列表显示
  5. WHQL 认证服务过程
  6. 五年北京,这个改变我命运的城市,终于要离开了(转)
  7. python的第三方库汇总
  8. 优秀课件笔记之计算机软件立法保护
  9. 502 问题怎么排查?
  10. 2023首届大学生算法大赛——补题