SQL语言基础

SQL全称:

sql的意思是:结构化查询语言。
SQL是用来访问和处理数据库的标准的计算机语言。


SQL的特点:

  • 具有综合统一性,不同数据库支持的sql稍有不同
    非过程话语言
    语言简捷,用户容易接受
    以一种语言结构提供两种使用方式

SQL对关键字的大小写不敏感

  • 建议:关键字大写,表名,字段名小写;

SQL语句可以单行或多行书写,以分号;符结束
SQL的注释:

  • 单行注释 -- 空格#
  • 多行注释 /* 文本 */

MYSQL语法示例:

--  查询有哪些数据库:
show databases;

--  指定操作数据库:
use 数据库名字;

--  查看数据库中有哪些表:
show tables;

--  查看表结构:
desc 表名;

--  查看表数据库:
select * from 表名;

mysql需要掌握的知识点

  • 基本操作
    • 单表操作
    • 多表操作
  • 窗口函数
  • 视图
  • 索引
  • 存储过程
  • 触发器
  • 事务
  • 索引
  • 锁机制
  • 日志
  • 存储引擎
  • SQL优化
  • JDBC
  • Pymysql

一.为什么要使用数据库

    1. 为了方便查询数据
    1. 为了持久保存数据

二.数据库的相关概念

  • DB 数据库,保存数据的容器
  • DBMS 数据管理系统.
    • 银行业一般使用Oracle和DB2.
    • DB2 是IBM的数据库产品.

关系型数据库中的关系是什么意思

数据库关系就是个二维表


什么是表?

就是
里的每一行就是实体(实例化)
字段就是
记录就是
实体还是


实体有多少个属性?

https://www.formysql.com/wenti/lanwei-shuxing.html


三.数据库存储数据的特点

一个系统有多个数据库,一个数据库里有多张
是放在数据库里面的;
数据是存放在里面的;
一个数据库里面的表名唯一的;
数据里面列名称之为字段;
表中数据是以的形式存放;


数据类型:

https://www.jianshu.com/p/672049b65691
数据类型的区别就是取值范围.
支付类项目必须关注小数点精确度.
普通支付项目中float 类型就可以了.

定义数据类型可以过大,但不能过小,
在选择数据类型时应当考虑冗余.
实际项目中手机号码使用VARCHAR(M) 类型;

示例:

字段名称数据类型备注
姓名varchar(20) 或char(16)可变字符串–20位
地址varchar(200)可变字符串–200位
电话号码varchar(11)可变字符串–11位
年龄int(3)整数–3位
出生日期date日期
照片image二进制数据
薪水moneydecimal/numeric(12,2)普通项目用flot类型;
DECIMAL定点小数类型 ;
numeric精确数字数据类型,指定精确到多少位
# id 整数
# name 名字 字符串16位
# age 年龄  整数
# gender 性别 字符串10位
# birthday 生日 日期
# city 城市 16位
create table user(id int,name char(16), age int, gender char(10), birthday date, city varchar(16));

DECIMAL定点小数类型

参考:https://www.yiibai.com/mysql/decimal.html

-- 精确
-- DECIMAL(P,D)表示列可以存储D位小数的P位数。十进制列的实际范围取决于精度和刻度。
DEC(P,D)
amount DECIMAL(有效数字位数,小数位数);

数字类型:有符号和无符号

MySQL中,数字类型默认类型有符号的。
无符号数字:不能是负数

MySQL中,数字类型可以是有符号无符号的。有符号数字类型可以表示正数负数,而无符号数字类型只能表示非负数

下面是MySQL中常用的数字数据类型及其表示范围

数字类型有符号的范围无符号的范围
TINYINT-1281270255
SMALLINT-3276832767065535
MEDIUMINT-83886088388607016777215
INT-2147483648214748364704294967295
BIGINT-92233720368547758089223372036854775807018446744073709551615

创建一个有符号的 INT 列:

当您创建表时,必须指定数字列的数据类型和是否为有符号或无符号。例如,

CREATE TABLE mytable (
  id INT SIGNED
);

创建一个无符号的 BIGINT 列:

当您创建表时,必须指定数字列的数据类型和是否为有符号或无符号。例如,

CREATE TABLE mytable (
  id BIGINT UNSIGNED
);

数据库引擎

MYSQL默认的数据库引擎就是InnoDB;

https://blog.csdn.net/omaidb/article/details/130206111


数据库的标识符

数据库中所有涉及到人工命名的都是标识符
比如: 数据库名表名索引名列名别名视图名存储过程名分区名表空间名、都是标识符

  1. 数据库名表名列名不能空格结束
  2. 标识符可以使用引号引起来,也可以不用引起来,但是如果包含特殊字符关键字必须使用引号引起来,标识符的引用符是反引号('')`
-- 创建一个名为select的表
-- select是系统默认关键字,向创建这个表,需要使用双引号因起来
CREATE TABLE "select"(id INT, name VARCHAR(10));

-- 向select表中插入数据
-- select是系统默认关键字,使用这个表名要使用反引号引起来
insert into `select` values(1,'a');

数据库schema和catalog简介

数据库 schemacatalog 是数据库中两个不同但相关的概念。

  • Schema:指数据库中包含的一组对象的集合,用于将数据库中的不同数据部分进行逻辑上的分组。一个数据库可以包含多个 schema,每个 schema 可以包含多个视图存储过程等。
  • MySQL8中,Catalog 是用来存储数据库元数据(metadata)的地方,也就是说,Catalog 是一个信息库,它存储了关于整个数据库(包括其中的 schema)的信息,如表的数量列的数量索引的数量以及其他统计信息等。
  • MySQL8中,每个 schema 都有一个相应的 Catalog,用于存储其元数据

在简单的术语中,schema 就像一个文件夹,其中包含许多文件(即);而 catalog 就像一个目录,其中包含有关这些文件(即对象)的详细信息

从概念上来说:
一个数据库系统包含多个Catalog,每个Catalog又包含多个Schema,而每个Schema又包含多个数据库对象(视图字段等),反过来讲一个数据库必然属于一个Schema,而该Schema又必然属于一个Catalog,这样我们就可以得到该数据库对象的完全限定名称,从而解决命名冲突等问题了,例如数据库对象的完全限定名称就可以表示为:

  • Catalog名称.Schema名称.表名称

注意:SQL标准并不要求每个数据库对象的完全限定名称是唯一的,就像一个IP可以绑定多个域名。
从实现的角度来看,各种数据库系统对CatalogSchema的支持和实现方式千差万别,针对具体问题需要参考具体的产品说明书,比较简单而常用的方式是使用数据库名作为Catalog名,使用用户名作为Schema名,具体可参见下表:

产品名Catalog支持Schema支持
Oracle不支持Oracle User ID
MySQL不支持数据库名
MS SQL Server数据库名对象属性名,2005版开始有变
DB2指定数据库对象时,Catalog部分省略Catalog属主名
Sybase数据库名数据库属主名
Infomix不支持不需要
PointBase不支持数据库名
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

识途老码

赞赏是第一生产力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值