欢迎光临
我们一直在努力

SQL数据库(MySQL)基础学习笔记

SQL数据库学习笔记

  • 学习视频链接:【【SQL数据库】SQL两小时半快速入门到精通 建议反复观看 学不会自我反省】 https://www.bilibili.com/video/BV1yw4m1S7Be/?share_source=copy_web&vd_source=fb850db820b823205dfea926dc8f484d
  • github笔记地址:https://github.com/anwei85/study_note

视频里用到的表格代码也敲了放到github里了

一、基础知识

  • rdbms关联式资料库:mysql,SQLserver,oracle,postgresql
  • nrdbms其他非关联资料库:mogodb,Redis,dynamodb,elaticsearch
  • 通过外键对应另一张表的主键,从而进行关联
  • 视频网站–>sql链接<–管理系统–>关联式资料库

二、软件命令

1.基础命令

ctrl +/ 注释
ctrl +shfit+k 快速删除
ctrl +enter 不断行回车
shift +alt +向下箭头 向下复制一行(向上复制同理)
<> 不等于
add 添加
not null 非空
unique 唯一,不允许相同

2.标准命令

命令不区分大小写

  • 基础命令
  • 创建数据库/表格:create database/TABLES `` ( );
  • eg.create table client(
    client_id int primary key,
    client_name varchar(20),
    phone varchar(20));

    电话号码选用字符串而非整数,用于数值计算时才用INT,不然以0开头的电话号码的0会被吞掉

  • 使用数据库/表格:use ``;
  • 呈现所有数据库/表格:SHOW database/TABLES;
  • 删除数据库:drop database ``;
  • 分类代码
    整数 int
    图片/视频 blob
    日期 date
    时间 timestamp
    有小数点的数 decimal(x,x)
    字串 varchar(x)
  • 创建命令
  • 增加数据:
    向表格存入数据
    insert into `` values(‘数据’,‘数据2’,‘数据3’);
  • 可以进行属性顺序的调整–insert into ``(属性,属性3,属性2) values(‘数据’,‘数据3’,‘数据2’);

  • 默认赋值反点给前面属性:default ``
  • 查找替换命令
  • select * from `` 搜寻反点表格中的全部资料
  • (*号)可以换成单个属性
    (*号)前面加distinct,可以让结果不重复

  • 查看表的结构:describe ``;
  • 替换
    update student
    set name=‘小灰’,major = ‘物理’
    where student_id = 1;
    将student表中的name属性小灰,major属性的物理对应的student_id属性换成1
  • 删除表格
    delete from student
    where student_id = 1;
  • 没用条件(where)删所有,有条件按条件,如本例删除表中的student_id属性对应的1

    where筛选条件时可以使用in
    where xx=‘a’ or xx=‘b’;
    ——>where xx in (‘a’,‘b’)

  • 搜索排序
    order by ``【属性】
  • 默认由低到高,后面加dese换成由高到低
    linit x 只要前x笔资料

  • 主键外键命令
  • 添加xx,yy为表格的复合主键
    ALTER TABLE ``【表格】
    ADD PRIMARY KEY (xx, yy);【属性】
  • 添加外键约束
    ALTER TABLE ``【表格】
    ADD FOREIGN KEY (bb) 【属性】
    REFERENCES xx【表格】(zz) 【属性】
    ON DELETE CASCADE;
  • 主键没有设置,外键的值无法录入

    当该键同时为主键和外键时,将不能set null
    cascade 直接删掉外键资料;set null 如果主键被删了,外键就设null

    三、进阶命令

  • 聚合函数
    aggregate functions
    select 【量词】 (*) from ``【属性】;

    量词代码
    数量 count
    平均 avg
    最大 max
    最小 min
    总和 sum

    同上*代表所有,可以单独设置属性

  • 万用字元
    wildcards
    %代表多个字元,_代表一个字元
    例子:
    – 1.取得电话尾数是335的客户
    select * from client where phone like ‘%335’;
    – 2.取得姓艾的客户
    select * from client where client_name like ‘艾%’;
    – 3.取得生日在十二月的员工
    select * from empioyee where birth_date like ‘_____12%’;

    where 属性 like 要求——包含要求的数据
    where 属性 = 要求——等于要求的数据

  • 子查询
    subquery
    例子:
    – 找出研发部门的经理名字
    select name from empioyee
    where emp_id = (
    select manager_id
    from branch
    where branch_name = ‘研发’);
    – 找出对单一位客户销售金额超50000的员工的名字
    select name from empioyee where emp_id in(
    select emp_id
    from works_with
    where total_sales > 50000);

    = 单个搜索,in 多个搜索

  • join
    join链接两个表格,可以在两个表格内搜寻
    例子:
    – 取得所有部门经理的名字
    select * from empioyee join branch on emp_id = manager_id;

  • left join 不论条件满不满足,都回传左边表的数据
  • right join 不论条件满不满足,都回传右边表的数据
  • union
    union操作符用于连接两个以上的 SELECT 语句的结果组合到一个结果集合,并去除重复的行。
    union操作符必须由两个或多个 SELECT 语句组成
    例子:
    –员工id + 员工名字 union 客户id + 客户名字
    select emp_id,name from empioyee
    union
    select client_id,client_name from client;
  • 赞(0)
    未经允许不得转载:171主机测评 » SQL数据库(MySQL)基础学习笔记
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址