数据库学习笔记Day01--

什么是数据库?

数据库是长期存储在计算机内部有结构,大量的,共享的数据集合。

长期存储:持久化存储

有结构:

        类型:不仅可以存放数据,而且存放的数据是有类型的。

        关系:存储数据与数据之间的关系

大量:大多数数据库都是文件系统的,也就是说存储在数据库中的数据实际上就是存储在磁盘文件

共享:多个应用程序可以通过数据库实现数据的共享

关系型数据库和非关系数据库

关系型数据库:采用了关系模型来组织数据的存储,以行和列的形式存储数据与数据的关系--将数据存储在表格中,可以通过建立表格与表格之间的关系来维护数据与数据之间的关系。

非关系数据库:采用键值对的模型来存储数据,只记录数据本身,不会记录数据与数据之间的关系·,在非关系型数据库中,利用其特点的存储结构来解决一些大数据应用的难题。

NoSQl(Not only SQL)代指非关系型数据库。

常见数据库产品

关系型数据库:

Mysql:MariaDB,Percona Server

PostgreSQL

Oracle数据库

SQL Server

Access

Sybase

达梦数据库

非关系型数据库:

        面向检索的列式存储:

                HaBase

                BigTable

        面向高并发的缓存存储Key-Value:

                Redis

                MemcacheDB

        面向海量数据访问的文档存储

                MongoDB

                CouchDB

专业术语:

数据库:存储数据的集合,提供数据存储的服务。

数据:实际上指的是描述事物的符号记录。

数据库管理系统:是位于人与操作系统之间一层数据管理软件。

数据库管理员:负责数据库创建,使用及维护的专门人员。

数据库系统:数据库管理员,数据库系统及数据库组成的整个单元。

数据库学习笔记Day01--

SQL语句

分类

DDL Data Definition Language 数据定义语言

        用于完成对数据库对象(数据库,表,视图,索引等)的创建修改删除

DML Data Manipulation Language 数据操作语言

        用于完成对数据表中的数据的添加,删除,修改操作

DQL Data Query Language 数据查询语言

        用于将数据表中的数据查询出来

DCL Data Control Language 数据控制语言

        用于完成事务管理等控制性操作

SQL基本语法

SQL指令不区分大小写

每条SQL表达式结束之后都以;结束

SQL关键词之前以空格进行分隔

SQL之间可以不限制换行(可以有空格的地方就可以有换行)

DDL操作

显示当前mysql中的数据库列表:

show databases

创建数据库:

create database xxx

创建前判断是否存在:

create database if not exists xxx

指定数据库编码:

create database xxx character set utf-8

显示指定数据库的创建语句

show create database xxx

修改数据库字符集:

alter database gyq character set gbk

删除数据库(同时会删除数据库中所有表和数据)

drop database if exists xxx

切换数据库:

use xxx

创建数据表:

CREATE TABLE students(
  stu_num CHAR(10) NOT NULL UNIQUE,
  stu_name VARCHAR(20) NOT NULL,
  stu_age INT NOT NULL,
  stu_gender CHAR(2) NOT NULL,
  stu_tel CHAR(11) NOT NULL UNIQUE,
  stu_qq VARCHAR(11) UNIQUE
); 

显示表

SHOW tables

查询表结构

DESC students

 删除表

DROP TABLE IF EXISTS xxx

修改数据表名

.ALTER TABLE students RENAME TO stus

修改数据表字符集

ALTER TABLE stus CHARACTER SET utf8

添加列

ALTER TABLE stus ADD stu_remark VARCHAR(200)

修改列名和类型
ALTER TABLE stus CHANGE stu_remark stu_info TEXT

修改列的数据类型

ALTER TABLE stus MODIFY stu_info VARCHAR(100) 

删除列

ALTER TABLE stus DROP stu_info        

MySQL数据类型

数值类型

        tinyint:占用一个字节,-128-127,无符号:0-255

        smallint:两个字节,-32768-32767,无符号:0-65535

        mediumint:三个字节,-2^23-2^23-1,无符号:2^24-1

        int :

        bigint:

        float:4字节,单精度

        double:8字节,双精度

        decimal:decimal(10,2)表示一共10位,小数位占两位

字符串类型

        char:0-255字节,定长字符串,最多可以占255个字节,内容少于指定时自动以空白补齐

        varchar:0-65535字节,可变字符串,指定最大长度()

        tinyblob:0-255字节,存储二进制字符串

        blob:0-65535字节,存储二进制字符串

        mediumblob:0-1677215

        longblob:0-4294967295

        tinytext:0-255字节,文本数据

        text:0-65535

        mediumtext:0-1677215

        longtext:0-4294967295

日期类型

在MySQL数据库中可以使用字符串来存储时间,但如果需要基于时间段进行查询操作,不方便

        date:只能存放年月日,2022-01-22

        time:只存时分秒,11:22:30

        year:年份,2022

        datetime:年月日时分秒,2022-06-66 11:22:55

        timestamp:时间戳,20220506 111022

字段约束

保证数据有效性,完整性,正确性的手段

常见约束:

        非空约束:not null 此列值必须提供

        唯一约束:unique 在多条数据中此列值不能重复

        主键约束:primary key 非空+唯一,唯一标识数据中的一条数据

                声明主键的两种方法在列后+primary key或在表最后一行+primary key(列名)

                在表创建之后添加主键约束:alter table xxx modify xxx primary key

                联合主键:将数据表中的多列组合在一起作为主键:在表最后一行+primary key(列名1,列名2)

                创建联合 组建

        外键约束:foreign key 建立不同表之间的关联关系

         

上一篇:QListWidget添加自定义的widget并自动排序


下一篇:基于AudioQueue实现音频的录制和播放