zoukankan      html  css  js  c++  java
  • SQL基础查询

    1、虚拟机上进行操作的时候,最好吧防火墙常闭,systemctl disable firewalld

    2、客户端(windows电脑上的浏览器) - 应用服务器(虚拟机tomcat上面部署的war包,提供网页访问功能) -> 数据服务器(同一台虚拟机上,完成和web服务的连接,进行数据存储管理)

    3、shell脚本最开始的一句#!/bin/bash 表示使用bash (bourne again shell) ,如果不加或者写错,都是默认调用sh模式执行shell脚本,没什么问题。可写可不写,如果有些模式执行不了的时候,再尝试改bash。

    4、expr 进行四则运算的时候,运算数和运算符之间必须空格。 echo -n 取消显示换行。

    5、sh 和./的区别是,./就是表示 当前目录下的层级去调用文件执行,一定需要文件有x权限。

    6、数据库配置文件:
    linux中是 /etc/my.cnf
    windows中是my.ini

    如果忘了数据库密码,可以在配置文件中加上一行 skip-grant-tables,然后重启数据库服务,就可以无密码登录。

    windows上启动服务的时候, 可以net 命令,也可以电脑上右键->管理->服务和应用程序中进行服务管理。

    7、sql structure query language 结构化查询语言。
    关系型数据库基本组成:
    数据库
    数据表
    最上面的一行 元组信息 -列名-字段
    行-元组-数据记录
    列-数据

    非关系型数据库,以键值对的形式进行数据存储,结构没有那么复杂的关联。
    查询速度相应较快,但是结构化不如关系型清晰,更多时候会被用作缓存数据库,存储一些频繁调用的数据。

    8、 主键:
    能够唯一的确定一个表中的一条数据记录的字段或者字段组合。主键一定不能重复,并且不能为空。主键一般会设置自动递增。

    外键:如果一个表A中的某个字段,其中所有的记录都与另一个表B中的主键的记录相同,那么这个字段可以成为一个外键。这个时候A表中的外键会对A表进行操作时,形成一定的限制,约束规则是在建立外键的时候指定的。

    9、数据库基本操作:
    命令行中,分号;代表一条语句的结束,并且可以去执行了。
    注意navicat中数据库操作之后,F5刷新才能把最新变化显示出来。
    建议,在输入数据库名、表名、列名的时候,都可以加上`(1旁边的按键),而数据查询内容,用'(单引号)括起来。

    显示所有库: show databases;
    使用一个库:use dbname;
    创建数据库:create database dbname [数据库参数,如:字符集、排序规则] ;
    删除数据库:drop


    x显示所有表: show tables;
    创建数据表:
    create table tableName ( `列名` 类型(长度) 设置,`列名` 类型(长度) 设置 )
    CREATE TABLE `teacher` (`tid` int(8) UNSIGNED NOT NULL COMMENT '老师号' ,`Tname` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '老师名字' ,PRIMARY KEY (`tid`)) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci ROW_FORMAT=DYNAMIC;
    删除 drop

    增:insert
    insert INTO teacher VALUES(0,'will') 需要字段的顺序和个数完全匹配上
    如果要完成数据的主键自动递增,用0或者null。
    insert Into teacher(`tname`,`tid`) values ('卡卡',0),('卡卡西',0) 指定插入的字段的顺序和值
    insert into teacher SET tid=5,tname='琦琦'


    删: delete
    DELETE FROM teacher where tname='卡卡'

    truncate 清空表,只能直接删除表中所有数据。

    改: update
    update teacher set tname='肉一老师' where tname='roy'

    update teacher set tid=tid+10 所有的tid在原有基础上+10

    查: select
    select * from xxx


    条件语句:
    where: 语句后面跟上查询的条件限制表达式
    like 进行模糊查询, %通配符,代替任意字符
    查询包含 一 的老师名。
    SELECT * FROM `teacher` where tname like '%一%';

    运算符:
    不等于:两种方案: != 以及 <>(大于小于)


    limit 语句: limit start,count 表示从第start+1个记录开始,一共显示count个记录。

    avg 平均值 max 最大值 min 最小值 count 个数 sum 求和 等运算是聚合函数,通常和group by 分组配合使用。

    order by 字段(sage) 默认升序排序也就是asc,如果要降序,那么使用 desc

    group by 按照某个字段来进行分组,使用的时候注意,如果在only full group by 规则下,那么查询的内容只能是group的字段或者聚合函数计算的字段。
    可以通过修改sqlmode来减小对于语句的规范限制,根据自己情况调整sql-mode
    在/etc/my.cnf下增加 sql-mode=NO_ENGINE_SUBSTITUTION
    sql_mode=NO_ENGINE_SUBSTITUTION

    查询每个同学的总成绩
    select sid,sum(score) from score group by sid

    查询第二位老师:
    SELECT * FROM `teacher` limit 2,2

    查询年龄大于平均年龄的人的信息:
    先算平均值:
    avg 计算平均值
    select * from student where sage>(SELECT avg(sage) FROM `student`)

    查询年龄大于20的人数:
    select count(*) from student where sage >20

    查询年龄小于20的人的年龄总和:
    select sum(sage) from student where sage <20


    查询年龄第二大的学生:
    根据年龄来进行排序:
    SELECT * FROM `student` ORDER BY sage desc limit 1,1

  • 相关阅读:
    【CF1528D】It's a bird! No, it's a plane! No, it's AaParsa!
    【CF1528C】Trees of Tranquillity
    【CF1528B】Kavi on Pairing Duty
    【洛谷P5443】桥梁
    【CF gym102759I】Query On A Tree 17
    ansible-playbook批量修改密码
    kubernetes集群简单实例搭建
    UiPath屏幕抓取Screen Scraping的介绍和使用
    学习廖雪峰的Git教程3--从远程库克隆以及分支管理
    学习廖雪峰的Git教程2--远程仓库
  • 原文地址:https://www.cnblogs.com/wendy-0901/p/12978577.html
Copyright © 2011-2022 走看看