SQL学习记录

前言

背景知识(技术术语总结)

在这里插入图片描述

  • 数据库是一个软件,安装在os(windows、linux)上面

  • 何为结构化查询
    SQL 是用于访问和处理数据库的结构化查询语言
    结构化是指数据是有结构的,比如Mysql是分字段的,每个字段还有类型,查询的时候是针对这些字段的。
    非结构化是指数据是没有结构的文本或者二进制。比如全文搜索就是非结构化的查询

  • DBA:数据库管理员

  • Java Web:是用Java技术来解决相关web互联网领域的技术总和。web包括:web服务器和web客户端两部分。Java在客户端的应用有java
    applet,不过使用得很少,Java在服务器端的应用非常的丰富,比如Servlet,JSP和第三方框架等等。 JSP、JS、JAVA

  • java—servlet—jsp
    (曾经风光无限的jsp,为什么现在很少有人用了呢?)(有实例可以帮助更好的理解这几个技术)
    servlet教程
    servlet本质上就是java类,是用Java语言编写的服务器端程序。主要功能是和浏览器进行交互,生成页面展示(读取客户端(浏览器)发送数据 处理数据并生成结果发送显式的数据(即文档)到客户端(浏览器) )。
    而为了能够更好的显示HTML页面,于是抽象出了jsp(用初始的servlet的话显示动态页面很麻烦要更改非常多的代码)
    jsp本质是servlet,jsp只是servlet的一种特殊形式,每一个jsp页面就是一个servlet实例,通俗一点的话来说:jsp就是servlet,只不过servlet把一些业务功能剥离开来交给了或者是形成了jsp。
    在这里插入图片描述

Jsp和JS
最主要的区别是运行位置不同。

  • JSP全称是java server page,.jsp是服务器端运行的JSP网页代码文件,JSP运行在后台服务器上,混合在HTML中的java程序段用于控制HTML的动态生成,并且通常负责调用后台数据库中的数据,形成能够根据使用情况的变化的,具有丰富数据交互效果的页面。
  • JS全称是javaScript 是一种页面脚本语言,运行在前台.js文件一般是以javascript为语法写的一些为html元素服务的函数\方法的库文件,可以通过HTML文件调用直接在本机客户端运行,即运行于用户浏览器的,通常不需要服务器的后台支持(AJAX交互例外),混合在HTML中的JavaScript脚本程序直接被浏览器解释执行,以提高页面的美观性和UI操作响应速度为基本目标。
  • JSP在HTML中用<%%>里面实现。 JS在html中用<Script</Script实现

数据库

常用数据库

  • 数据库共有3种类型,为关系数据库(表)、非关系型数据库和键值数据库;
    非关系数据库分为:列储存(Column-oriedted)数据库;面向文本文档数据库;图型数据库。
  • 常用关系数据库有mysql、oracle、sqlserver、sqlite、postgreSQL等oracle数据库适合大型数据库,mysql和sqlserver适合中小型数据库,一般使用mysql就可以,比较轻量,而且性能较好

关系型数据库管理系统(RDBMS)

RDBMS 是 SQL 的基础,同样也是所有现代数据库系统的基础,比如 MS SQL Server, IBM DB2, Oracle, MySQL 以及 Microsoft Access。
在这里插入图片描述
在这里插入图片描述

SQL基础语法

一些最重要的 SQL 命令

  • SQL 对大小写不敏感:SELECT 与 select 是相同的
  • 某些数据库系统要求在每条 SQL 语句的末端使用分号
SELECT - 从数据库中提取数据
UPDATE - 更新数据库中的数据
DELETE - 从数据库中删除数据
INSERT INTO - 向数据库中插入新数据
CREATE DATABASE - 创建新数据库
ALTER DATABASE - 修改数据库
CREATE TABLE - 创建新表
ALTER TABLE - 变更(改变)数据库表
DROP TABLE - 删除表
CREATE INDEX - 创建索引(搜索键)
DROP INDEX - 删除索引

SELECT

关键字:from 、destinct、where、andor、order by、
SELECT * FROM Websites;
//下面的 SQL 语句从 "Websites" 表中选取所有记录(所有列)
SELECT name,country FROM Websites;
//从 "Websites" 表中选取 "name" 和 "country" 列(显示这两列)
SELECT DISTINCT country FROM Websites;
//显示的是country这一列,并且是去掉重复值的这一列
SELECT * FROM Websites WHERE country='CN';
//"Websites" 表中选取国家为 "CN" 的所有部分
//WHERE 子句中的运算符 <>不等于 > < BETWEEN
SELECT * FROM Websites WHERE country='CN' AND alexa > 50;

SELECT * FROM Websites WHERE alexa > 15 AND (country='CN' OR country='USA');

SELECT * FROM Websites 
ORDER BY alexa;//升序

SELECT * FROM Websites 
ORDER BY alexa DESC;//降序

SELECT * FROM Websites 
ORDER BY country,alexa;  //按照多参数排序

update

UPDATE Websites 
SET alexa='5000', country='USA' 
WHERE name='菜鸟教程';//改where的

UPDATE Websites
SET alexa='5000', country='USA' //改所有的

delete


DELETE FROM Websites
WHERE name='Facebook' AND country='USA';

DELETE * FROM table_name;

insert


INSERT INTO Websites (name, url, alexa, country)
VALUES ('百度','https://www.baidu.com/','4','CN');//插入一个新行

INSERT INTO table_name
VALUES (value1,value2,value3,...);
//没有指定要插入数据的列名的形式需要列出插入行的每一列数据



SQL函数

SQL Aggregate 函数计算从列中取得的值,返回一个单一的值。
有用的 Aggregate 函数:

AVG() - 返回平均值
COUNT() - 返回行数
FIRST() - 返回第一个记录的值
LAST() - 返回最后一个记录的值
MAX() - 返回最大值
MIN() - 返回最小值
SUM() - 返回总和

SQL Scalar 函数基于输入值,返回一个单一的值。
有用的 Scalar 函数:

UCASE() - 将某个字段转换为大写
LCASE() - 将某个字段转换为小写
MID() - 从某个文本字段提取字符,MySql 中使用
SubString(字段,1,end) - 从某个文本字段提取字符
LEN() - 返回某个文本字段的长度
ROUND() - 对某个数值字段进行指定小数位数的四舍五入
NOW() - 返回当前的系统日期和时间
FORMAT() - 格式化某个字段的显示方式

以MySQL为例描述一下数据库技术的应用

MySQL 数据库下载地址
MYSQL菜鸟教程

如何把sql、数据库、web搭建联系起来

在网站中使用 SQL 要创建发布数据库中数据的网站,需要以下要素:

  • RDBMS 数据库程序(比如 MS Access, SQLServer, MySQL)
  • 服务器端脚本语言(比如 PHP 或 ASP)
  • SQL
  • HTML / CSS/JS

总结

  • 数据库的处理其实就是先install一个数据库,这个数据库可以是MySQL、oracle等,然后根据下边以mysql为例的操作,下载新建一个数据库,可以导入数据
  • 在一个开发中,最开始的要定义这个数据库的格式,比如图书馆管理系统数据库应该包含书名、借书人、还书时间等等,并且要定义数据库的输入输出流程(图书馆管理系统数据库设计
  • 数据库怎么跟web连接呢,看到这个链接里面提到的操作方法(当然我没实践)java web与数据库相连,具体怎么做,发现web连接数据库也不是什么很神奇的事情,其实就是通过迁移文件来做到连接的hh。选择你要连的数据库,认准api,用你的数据库账户,密码登录,可以用jsp连接数据库,也可以在servlet中连接数据库(读到这句话的过程中花了好多时间了解了jsp和servlet,现在这句话可以读懂了)

mysql搭建过程一览

  • 下载数据库
  • 启动/关闭
    在 Windows 系统下,打开cmd,进入 MySQL 安装目录的 bin 目录。
    启动:
    cd c:/mysql/bin
    mysqld --console
    关闭:
    cd c:/mysql/bin
    mysqladmin -uroot shutdown
  • 用户设置
    在这里插入图片描述
  • 数据库连接
    在这里插入图片描述
  • 创建/删除/选择数据库
    [root@host]# mysql -u root -p
    Enter password:****** # 登录后进入终端
    mysql> create DATABASE RUNOOB;
    mysql>
    drop database RUNOOB;
    mysql>
    mysql> use RUNOOB;
    Database changed
    mysql>
  • 导入数据
    使用 mysql 命令
    mysql -u用户名 -p密码 < 要导入的数据库数据(runoob.sql)
    使用source 命令
    mysql> create database abc; # 创建数据库
    mysql> use abc; # 使用已创建的数据库
    mysql> set names utf8; # 设置编码
    mysql> source /home/abc/abc.sql # 导入备份数据库
  • 导出数据
    mysql> SELECT * FROM runoob_tbl
    -> INTO OUTFILE ‘/tmp/runoob.txt’;
    将数据表 runoob_tbl 数据导出到 /tmp/runoob.txt 文件中
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值