数据库基础总结



数据库基础总结

基础学习达到的目标

01.如何使用MySQL数据库

02.如何设计数据库

数据库概述

01.什么是数据库

数据库就是用来存储和管理数据的仓库!

数据库存储数据的优先:

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

03.常见的数据库

l Oracle:甲骨文;

l DB2:IBM;

l SQL Server:微软;

l Sybase:赛尔斯;

l MySQL:甲骨文;

Sql分类

l DDL(Data Definition Language):数据定义语言,用来定义数据库对象:库、表、列等;

l DML(Data Manipulation Language):数据操作语言,用来定义数据库记录(数据);

l DCL(Data Control Language):数据控制语言,用来定义访问权限和安全级别;

l DQL(Data Query Language):数据查询语言,用来查询记录(数据)。

数据库操作

01.创建数据库

Create database db_name;

02.查看数据库

Show databases;

03.查看数据库创建语句

Show create database db_name;

04.删除数据库

Drop database db_name;

05.修改数据库信息

Alter database db_name [修改指令]:修改指令一般是数据库属性的修改(比如字符集)

Alter database db_name character set utf-8;

06.修改数据库名称

将当前数据库进行备份,删除之前的数据库,并创建新的数据库,恢复原来数据库的数据。

表操作

01.创建表

CREATE TABLE 表名(

列名 列类型,

列名 列类型,

......

);

02.查看数据表

Show tables;

Show tables like ‘xxx_%’;

Show create table tb_name;

Show create table tb_name\G

Desc tb_name;

03.删除数据库

Drop table if exists tb_name;

04.修改表

01)重命名

Rename table old_tb to new_tb;

02)修改列定义

增加一个新列:alter table tb_name add 列定义(name int);

删除一个列:alter table tb_name drop 列名;

修改一个列定义:alter table tb_name modify 列名 varchar(40);

重命名一个列:alter table tb_name change 旧列名 新列定义;

修改表选项:alter table tb_name character set utf-8;

crud操作

01.插入数据

INSERT INTO 表名(列名1,列名2, …) VALUES(值1, 值2)

语法:

INSERT INTO 表名 VALUES(值1,值2,…)

因为没有指定要插入的列,表示按创建表时列的顺序插入所有列的值:

02.获取数据

Select * from 表名 [查询条件];

Select 字段名列表 from 表名 [查询条件];

03.删除数据

语法:

DELETE FROM 表名 [WHERE 条件]

04.修改数据

语法:

UPDATE 表名 SET 列名1=值1, … 列名n=值n [WHERE 条件]

索引操作

01.创建索引

Create unique index Stusno on student(Sno);

Create unique index SCno on Sc(sno ASC,Cno DESC);

Unique:表示每个索引值只对应唯一的数据记录

Cluster:表示简历聚簇索引。

02.修改索引

Alter index <old_Index_name> rename to <new_Index_name>;

03.删除索引

Drop index <index_name>;

mysql的数值类型


整数型

例:tinyint:一个字节(8位)

有符号(-128——127)  无符号(0——255)

其他整型类似

01.符号问题

可以在定义时,使用unsigned标识没有符号,如果不写,则有符号。

02.定义当前的显示宽度

Alter table tb_name add c tinyint(2):

2表示显示的最小宽度,当宽度不够,需要使用前导0填充,在数据库中叫做zerofill

03.MySQL中没有bool

bool,其实就是tinyint(1)的别名

小数型

浮点数:

小数位可以移动,分为float和double

对于123.456,存储的时候存的是123456和3(因为0.123456*10^3)

对于float,默认情况下,有效数位是6-7位,double的默认有效数位是16位左右,比如:同样存储123456789.10283637,float表示出来可能就是123456700,double表示出来可能就是123456789.102836

同样浮点数也支持控制数值范围,Type(M,D):M表示所有数值位数(不包括小数点和符号位),D:表示有效的小数位数。

定点数

不管怎样浮点数肯定有精度丢失的 问题,如果必须要求精度,可以采用定点数DECIMAL,在存储的时候采用小数整数分开,每9位为一组采用4字节存储(同样也做了优化,当不足9位的时候,适当采用合适的字节存储)

日期时间型

注意:

01)datetime(年月日时分秒)、timestamp(时间戳),这两个表现形式一样,但是存储格式不同(timestamp储存的时候是整型),因为储存的格式不同,所以表示的范围也就不相同。

02)支持任意分隔符的日期,但是容易出现歧义。

03)支持2位的年份

70-69(1970-2069)

70-99(1970-1999)

0-69(2000-2069)

04)MySQL支持0值,比如0000年00月00日 00:00:00

2004-04-00:表示4月份整个月

05)time可以表示一天中的时间,也可以表示时间间隔(两个时间点相差了多少小时)。

字符串类型

这里的最大长度是物理最大长度

01.char和varchar

02.字段的长度(65535,65533,65532)

可以看出不一样的编码,字段长度是不一样的(Latin一个字符等于一个字节)

注意:字段的最大长度,除了类型本身限制之外,记录的总长度也有限制

这个图可以看出,65532可以创建成功,65533创建不成功;但是当65533加上not null之后,可以创建成功,如下图:

原因是:

这个sql也创建不成功,因为a,b都有可能为null,varchar不够存储,所以会报错。

03.text

类型选择原则

MySQL的列属性

01.是否为空

规定一个字段是否为空:null|not null

(空值和空字符串不一样,null的话一定有一个表示空间,在整个记录上某个地方记录null,所有会有一定的储存空间)

02.默认值属性

Default value来声明

03.主键|唯一索引

关系模型的实体完整性在create table中用primary key定义。对单属性构成的码有两种说明方法,一种是定义为表级约束条件,另一种是列级约束条件。对于多个属性构成的码只有一种说明方法,即定义为表级约束条件。

实体完整性检查和违约处理

01)检查主码值是否唯一,如果不唯一则拒绝插入或者修改数据。

02)检查主码的各个属性是否为空,只要有一个为空就拒绝插入或者修改。

常见的设计:

每个表都应该存在一个可以唯一标识的主键字段,最好与实体没有关系,不是实体属性字段。

04.自动增长

补:实体

01.一对一

02.一对多

03.多对多

利用一个中间表,表示实体之间的对应关系,即两个一对多

05.外键

概念:

如果一个实体(student)的某个字段(student:class_id),指向(引用)另外一个实体(class)的主键(class:class_id),就称student实体的class_id是外键。

时间: 2024-08-08 05:38:22

数据库基础总结的相关文章

MySQL数据库基础知识

day02 MySQL数据库基础知识 一.基础知识概述: 基础决定你这门课程的学习成败!只有学习好这些基础知识以后,你才能真正的运用自如.才能够对数据库有更深入的了解,道路才会越走越远. 二.基础知识: 1.数据库(database):数据库就好比是一个物理的文档柜,一个容器,把我们整理好的数据表等等归纳起来. 创建数据库命令:        create database 数据库名; 2.查看数据库         show databases; 3.打开指定的数据库         use 

数据库基础

1.数据库基本概念 (1)为什么使用数据库----数据库是用来储存数据的地方,是数据存储的仓库 (2)数据库的作用 a.数据存储方便 b.数据管理查询方便 2.时下流行的数据库 (1)关系型数据库:Oracle    Oracle公司,产品免费,服务收费 Mysql    开方源代码,网站应用广泛 SQLServer    版本多,使用方便 DB2    硬件要求必须是IBM产品 (2)非关系型数据库(NoSQL) Hadoop Google的BigTable 3.数据库的基本概念 数据库的数据

MYSQL数据库基础

MySQL数据库基础 本文的所有操作是基于CMD命令行操作方式,且可适当参考<打通MySQL的操作权限>中的内容,该文算是针对前期的环境配置问题提供了一个较为全面的解决方案,与本文是一个相(yao)辅(xiang)相(hu)成(ying)的关系. 一.连接相关 1. 启动MySQL服务器:net start mysql 2. 连接MySQL数据库:mysql -uroot -h127.0.0.1 -ppassword 3. 断开MySQL数据库:连接到MySQL服务器后,可通过在MySQL提示

1014下午 数据库基础

数据库基础 使用数据库时,一定先要把WAMPW SERVER软件开启,否则数据库无法使用. 如果要简历新的数据库,就在Navicat 8 for MySQL右侧单击右键,选择创建数据库.输入数据库的名称,字符集选择utf8--UTF-8-unicode,点击确定,就创建了新的数据库.双击数据库名称,打开数据库.数据库在存储数据时采用表格的形式存储. 双击数据库的名称会出来数据库的选项,把鼠标放在"表"上,单击右键选择创建表,点击后弹出对话框,在对话框中可以选择创建表.创建表后的时候要规

SQL数据库基础知识-巩固篇&lt;一&gt;

SQL数据库基础知识-巩固篇<一>... 首先展示两款我个人很喜欢的数据库-专用于平时个人SQL技术的练习<特点:体积小,好安装和好卸载,功能完全够用了> MySQL-57 DataBase MS-SQLServer-2000 DataBase SQL的含义:结构化查询语言(Structured Query Language)简称SQL 作用:SQL(Structured Query Language,结构化查询语言)是一种用于操作数据库的语言. 结构化查询语言包含6个部分:一:数

SQLSERVER 数据库基础操作

1.修改表中字段的长度,类型为varchar,从30改到50 语句执行(注:当前为30): alter table 表名 alter column 列名 varchar(50) 2.增加字段: alter table 表名 add 字段 varchar(50) SQLSERVER 数据库基础操作,布布扣,bubuko.com

oracle学习入门系列之二 数据库基础知识

oracle学习入门系列之二 数据库基础知识 本篇蛤蟆要梳理下那些被淡忘的数据库基础知识,也许根本就没被人记住过.不管是哪种情况,该记住的必须记住,记不住就把他记下来吧. 首先问几个问题如下: 数据库基础知识是什么? 好吧,蛤蟆直接吐后而不亡,看目录开始吧. 本人邮箱:[email protected] 微信公众号:HopToad 欢迎各界交流 1      基本概念 概念就是概念,大伙对这些名词不要死磕,但是对定义一定要理解,理解方能领悟,领悟方能运用自如后创新. 1.1      数据 数据

PHP移动互联网开发笔记(6)——MySQL数据库基础回顾

最近看了一些架构方面的资料,但是发现基础知识都不怎么牢固,接下来的一段时间,我会定期总结基础知识. 一.数据类型 1.整型 数据类型 存储空间 说明 取值范围 TINYINT 1字节 非常小的整数 带符号值:-128~127 无符号值:0~255 SMALLINT 2字节 较小的整数 带符号值:-32768~32767 无符号值:0~65535 MEDIUMNT 3字节 中等大小的整数 带符号值:-8388608~8388607 无符号值:0~16777215 INT 4字节 标准整数 带符号值

数据库基础与ADO.NET和C#中的异常处理

一.数据库基础 1.启动数据库服务--SQLServer(MSSQLSERVER) 方式1: 开始--程序--Microsoft SQL Server 2008 R2  --配置工具--SQL Server 配置管理器--SQLServer服务 方式2: 进入控制面板--管理工具--服务   --找到SQL Server (MSSQLSERVER) 方式3: 开始--运行--输入 services.msc 回车后    进入到 服务列表中,   找到SQL Server (MSSQLSERVER