数据库基础(数据类型/DDL)【数据库笔记一】

目录

理解数据库

数据类型

DDL 数据定义语言 【操作表结构】

数据库的操作

数据表的操作


理解数据库

什么是数据库(Database):就是按照数据结构来组织、存储和管理数据的仓库

作用:①数据持久化保存 ②快速、安全、方便的存储和查询数据

           ③可以处理并发访问 ④更加安全的权限管理访问机制

RDBMS 关系型数据库管理系统

RDBMS = 管理员(manager)+ 仓库(database)

database = N个 table(表)

table :①表结构:定义表的列名和列类型

            ②表记录:一行一行的记录

SQL:结构化查询语言(Structured Query Language)

           作用:客户使用SQL来操作服务器

语句分类:①DDL(Data Definition Language)数据定义语言

                    【创建、删除、修改:库、表结构】

                  ②DML(Data Manipulation Language)数据库操作语言

                    【增、删、改:表记录】

                  ③DCL (Data Control Language)数据库控制语言

                    【定义访问权限和安全级别】

                  ④DQL  (Data Query Language)数据库查询语言

                    【查询数据】

类型分类:①关系型数据库 ②非关系型数据库

        关系型数据库:MySQL、Oracle、PostgreSQL、SQLserver、DB2、Vfp

        非关系型数据库:Redis内存数据库、MongoDB文档数据库、HBase

 

 

数据类型

一、字符串数据类型

char:固定长度字符串类型char(255)

varchar:可变长度字符串类型varchar(65535)

text:变长文本存储类型

 

二、数值类型

int:整型  4字节   -21亿~21亿;0~42亿

tinyint:1字节(8位)-128~127;0~255

double:浮点型 ,double(5,2)表示数值总共5位,小数占两位

decimal:浮点型,在钱方面使用,不会出现精度缺失问题

 

三、日期和时间类型

date:日期类型   格式为:yyyy-mm-dd

time:时间类型   格式为:hh:mm:ss

timestamp:时间戳类型(日期+时间)

 

四、二进制数据类型

二进制数据类型可以存储任何数据类型(甚至包括二进制信息),如图像、多媒体、字处理文档等

 

 

DDL 数据定义语言 【操作表结构】

数据库的操作

1、查看所有数据库

show databases;

2、创建数据库

-- 格式
create database 数据库名;

-- eg.
create database if not exist tlxy default charset=utf8;
-- 1. 数据库 tlxy 如果不存在则创建数据库,存在则不创建
-- 2. 创建 tlxy 数据库,并设置字符集为 utf8
-- 3. 无特殊情况都要求字符集为 utf8 或者 utf8mb4 的字符编码

3、打开/进入/选择/切换数据库

-- 格式
use 数据库名;

-- eg.
use test;

4、删除数据库

删库有风险,动手需谨慎

-- 格式
drop database 数据库名;

-- eg.
drop database test;

5、修改数据库编码

-- 格式
alter database 数据库名 character set 编码类型;

-- eg.
alter database test character set utf8;

-- 查看当前数据库的编码类型
show create database 数据库名;

 

数据表的操作

1、查看当前数据库中所有的表

show tables;

2、创建表

-- 格式
create table 表名(
	列名 列类型,
	列名 列类型,
	...
	列名 列类型
)搜索引擎  默认编码


-- 实例
create table users( 
	-- 创建ID字段,为正整数,不允许为空 主键,自动递增 
	id int unsigned not null primary key auto_increment, 
	-- 创建 存储 名字的字段,为字符串类型,最大长度 5个字符,不允许为空 
	username varchar(5) not null, 
	-- 创建存储 密码 的字段,固定长度 32位字符, 不允许为空 
	password char(32) not null, 
	-- 创建 年龄 字段,不允许为空,默认值为 20 
	age tinyint not null default 20 
)engine=innodb default charset=utf8;

创建表的基本原则:

·表明和字段名 尽可能的符合命名规范,并且最好能够‘见名之意’ ;

·表中字段所对应的类型设置合理,并限制合理长度;

·表引擎推荐使用innodb,并无特殊情况都要求为utf8或者utf8mb4的字符编码;

3、查看表结构

-- 查看表结构
-- (查看的是表中内容的结构)
desc 表名;

-- 查看表的创建语句
-- (除表结构还能看到搜索引擎和编码)
show create table 表名;

4、修改表结构

-- 格式
alter table 表名 (操作);

添加字段

-- 格式
alter table 表名 add (
	列名 列类型,
	列名 列类型,
	...
);

-- eg.
-- 在 users 表中 追加 一个 num 字段 
alter table users add num int not null; 
-- 在指定字段后面追加字段 在 users 表中 age字段后面 添加一个 email 字段 
alter table users add email varchar(50) after age; 
-- 在指定字段后面追加字段,在 users 表中 age字段后面 添加一个 phone 
alter table users add phone char(11) not null after age; 
-- 在表的最前面添加一个字段 
alter table users add aa int first;

删除字段

-- 格式
alter table 表名 drop 被删除的字段名;

-- eg. 
alter table users drop name;

修改字段

-- 格式
alter table 表名 change|modify 被修改的字段信息; 
-- change: 可以修改字段名(可修改列名)
-- modify: 不能修改字段名(不能修改列名)

--  修改表中的 num 字段类型,使用 modify 不修改字段名 
alter table users modify num tinyint not null default 12; 
-- 修改表中的 num 字段为 int 并且更改字段名为mm 
alter table users change num mm int; 
-- 注意:一般情况下,无特殊要求,不要轻易修改表结构
-- 字段名==列名 不同地方叫法不一

5、修改表名

-- 格式
alter table 原表名 rename as 新表名;

6、修改表中的自增

-- 修改默认自增的开始值
-- 在常规情况下,auto_increment 默认从1开始继续递增 
alter table users auto_increment = 1000;

-- 一般主键约束都带有 auto_increment 自增长
-- 如需删除主键约束,需先去除自增长
-- 用modify,只改变数据类型;用change,改变数据类型同时可改名列名
alter table 表名 modify 列名(带自增长字段) int(11);
alter table 表名 drop primary key;

7、修改表引擎

-- 推荐在定义表时,表引擎为 innodb。 
-- 通过查看建表语句获取当前的表引擎 
mysql> show create table users\G; 
*************************** 1. row *************************** 
		   Table: users 
	Create Table: CREATE TABLE `users` ( 
	PRIMARY KEY (`id`) 
) ENGINE=InnoDB AUTO_INCREMENT=1001 DEFAULT CHARSET=utf8 
1 row in set (0.00 sec) 

-- 直接查看当前表状态信息 
mysql> show table status from tlxy where name = 'users'\G; 
*************************** 1. row *************************** 
	  Name: users 
	Engine: InnoDB 

-- 修改表引擎语句 
alter table users engine = 'myisam';

8、删除表

-- 格式
drop table 表名;

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值