zoukankan      html  css  js  c++  java
  • 数据库笔记(待完善,等到周末来弄)

    数据库4.6

    在设计属性的时候,,字段名,数据类型,空不空   默认值

    还有处理这个,插入操作;

    子啊插入的时候,对于null的字段必须写值

    查询问题:(大量实践,)

    3

    通配符(粗略查询)

    %d:多个字符;

    _ :一个字符

    SELECT *FROM student WHERE saname LIKE  ‘ 李梅‘;

    SELECT *FROM student WHERE saname LIKE  ‘ 李_‘;

    SELECT *FROM student WHERE saname NOTLIKE  ‘ 李_‘;

    注意ESCAPE的使用(后面的/后面的就i是一个字符而已)

    以DB_开头的信息:

    SELECT *FROM student WHERE cname LIKE  ‘ DB/_%’  ’‘ESCAPE ’/’;

    以DB_开头的信息(因为后面有一个通配符)

    注意:/ 不是翘n;

    ‘DB_&’  以DB+任意一个字符开头的后面有任意个字符的信息;问:任意个包括0不?

     -----------------------------------------------------------------------------------------------------------------------

    高级查询:

    单表查询:

    分组查询:(聚合函数,一般用于统计数据)

    对结果查询进行排序;

    限制查询结果数量:呈现信息条数等

    聚合函数作用:在信息分组之后,对信息进行操作,(最高分,分数众数,最低分,平均分) 

    SELECT ssex FROM student GROUP BY ssex:

    在分组查询中,分了几组就是显示几个,不受数据规模影响,重复就消掉;

    第一个和最后一个关键字后的字段一样,顺序对应;

    --------------------------------------------------------------------------------------------

    聚合函数

    SELECT ssex COUNT (ssex) FROM student GROUP BY ssex:   HAVING   COUNT>3

    SELECT ssex COUNT (ssex) FROM student GROUP BY ssex:   HAVING  SSEX=’女’;

    HAVING 限制这个数据范围,二级限制

    ---------------------------------------------------------------------------------------------------------

     在navicat下运行SQL文件

    1. 新建数据库:stu_coursedb
    2. 点击表格
    3. 直接运行SQL文件,直开始
    4. 关闭+刷新(美滋滋)
     -------------------------------------------------------------------------------

    对查询结果排序:

    原理:

    对于字符串排序(ASCII)

    SELECT * FROM student OEDER BY zno;

    处理这个字符串排序,默认就是升序;:

    点查询->新建查询(空,在升序里最小)

    汉字:拼音(首?)字母的ASCII码

    UTF-8:字符集存在转化,对于中文排序,都要转字符集,->gbk

    SELECT  sname  FROM student OEDER BY CONVERT(;using gbk)

     ---------------------------------------------------------------------------------------

    对查询结果排序:

    多个字段排序:

    SELECT * FROM student OEDER BY zno ASC,sno DESC;

    ASC:升序(默认),DESC:降序;

    当zno相同时,以sno的排序再来排序;

    限制查询结果(显示输出条数):

    SELECT * FROM student OEDER BY sno LIMIT 2,3;

    从第三名往后面数3位;

    注意,第一个是起始位置,第二个是步长,(注意是从0开始的)

    聚合函数:

    1.COUNT :

    SELECT COUNT (*)统计总行数

    SELECT COUNT (*)FROM student

    COUNT(列)用于计算列中非NULL的值

    SELECT COUNT(zno)FROM student

    紧跟字段(有空,空不计入)

    SELECT zno,COUNT(*) AS ‘专业人数‘   FROM student GROUP BY zno:

    这个AS就是好看弱于typedef  

     -------------------------------------------------------------------------

    4.

    SUM函数:

    SELECT sno  SUM ( grade) FROM sc  WHERE sno=’2019001’

    SELECT sno  SUM ( grade) FROM sc GROUP BY sno

    5.

    SELECT sno,COUNT(*) AS ‘专业人数‘   FROM student GROUP BY zno:

    6.

    AVG

    分母:有效信息条数(不为零的信息);

    SELECT AVG (grade )FROM sc;

    SELECT AVG (grade )FROM sc GROUP BY cno;;

    8.

    MAX函数,

    数字,字符串,汉字(转成拼音再ASCII)

    SELECT sno,MAX(grade)REOM sc DROUP BY ()

    9

    10.

    吧笔记补上;



    内连接:

    等值连接

    SELECT *FROM sc inner join course on sc.cno=ccourse.cno limit 4;
    把值相同的项直接连在一起;

    自然连接(去掉等值连接的重复)

    SELECT *FROM sc inner join course on sc.cno=ccourse.cno limit 4;

    不等值连接(没得卵用)

    SELECT *FROM sc inner join course on sc.cno!=ccourse.cno limit 4;

    多表连接---外连接;

    左外,右外  [ OUTER ]

    SELECT 字段表  FROM  表1 LEFT JOIN  表2  ON表1.字段=表2.字段‘

    强势:
    就算表2里面没有和表1对应的,那么表1就是空也要把位置给老子留到起 也会显示;

    导致数据丢失,表的规模;

    联合查询:

    SELECT usernameFROM  empioyee
    SELEC

    子查询:

    在前查询的结果上再查询;

    SELECT  student WHERE  sno  IN (SELECET  sno  FROM  sc)

    查询:选修过课程的student记录;

    .exists

    ANY

    查询

    先要有主表再是从非主键且有唯一性约束是否可以为空?

    可以的;

    注意数据库的实验都要好好弄一下;

    数据库的操作自己是有很多不懂的,注意;

    那个是逗号啊;这次的数据库实验要动脑子;

    数据库之前的PPT好好弄一下;然后4.6的数据库笔记在睡前进行整理(博客园)

  • 相关阅读:
    7.5_链表_链表中添加结点
    【链表】创建新结点
    【单链表】头插法 & 尾插法
    7.5_链表_添加元素_尾插法/头插法
    7.5_链表_创建链表
    7.4_结构体_返回结构体的函数
    通俗的理解一下生成式对抗网络(GAN)
    Linux中如何让进程(或正在运行的程序)到后台运行?
    anaconda搭建本地源(加速访问),内网源(无外网访问)
    Ubuntu18.04(16和14也可以) 安装独立显卡后开机黑屏
  • 原文地址:https://www.cnblogs.com/WAsbry/p/12650000.html
Copyright © 2011-2022 走看看