学习操作数据数据库

Mysql学习之创建和操作数据库及表DDL大全小白篇

数据库教程 2021-11-29 13:29:50 22

导读

1.操作数据库 1.1创建数据库 create+database+数据库名称 当然如果我们不知道数据库是否存在,如果存在就不创建,不存在就创建可以用以下语句 create+database+ifnotexists+数据库名称 我们还可以在创建数据库的时候指定字符集 create+dabase+ifnote……

1.操作数据库

 1.1创建数据库

create + database + 数据库名称

当然如果我们不知道数据库是否存在,如果存在就不创建,不存在就创建可以用以下语句

create + database + if not exists + 数据库名称

我们还可以在创建数据库的时候指定字符集

create + dabase + if not exists + 数据库名 +character set + 字符集名

1.2查询数据库

查询所有已经存在的数据库

show databases

查询某个数据库的创建语句和所使用的字符集

show create database + 数据库名称

1.3修改数据库

修改数据库字符集

alter database + 数据库名称 + character set + 字符集名称

1.4删除数据库

drop database +数据库名

同样的,也可以加上 if not exists

drop database + if exists + 数据库名称

1.5使用数据库

使用数据库

use + 数据库名称

查询当前正在使用数据库的名称

select database()

2.操作表

2.1MySQL数据类型

数据类型 介绍
tinyint 存储1字节8位的整数
int/integer 存储4字节32位的整数
float 存储单精度浮点数
double 存储双精度浮点数
char(n) 存储字符
varchar(n) 存储字符
date 存储日期,只包含年月日格式:yyyy-MM–dd
datetime 存储日期,包含年月日时分秒,格式:yyyy-MM-dd HH:mm:ss
timestamp 存储日期,包含年月日时分秒,格式:yyyy-MM-dd HH:mm:ss

问题1:varchar和char的特点和区别

char的特点:

1.char表示定长字符串,长度是固定的(比如char(5)即使不够5个字符也是按5个字符存储)
个字符也会按照5个字符存储);
2.如果插入数据的长度小于char的固定长度时,则用空格填充;
3.因为长度固定,所以存取速度要比varchar快很多,甚至能快50%,但正因为其长度固定,所以会占据多余的空间,是空间换时间的做法;
4.对于char来说,最多能存放的字符个数为255,和编码无关

varchar的特点:

1.varchar表示可变长字符串,长度是可变的(比如varchar(5)不够5个字符,比如3个那么就按照三个字符存储);
2.插入的数据是多长,就按照多长来存储;
3.varchar在存取方面与char相反,它存取慢,因为长度不固定,但正因如此,不占据多余的空间,是时间换空间的做法;
4.对于varchar来说,最多能存放的字符个数为65532

两者的区别:

结合性能角度(char更快)和节省磁盘空间角度(varchar更小)

还有一个点两者都存储字符

张三:代表两个字符
zhangsan:代表八个字符

问题2:int(20)中20的涵义

是指显示字符的长度。20表示最大显示宽度为20,但仍占4字节存储,存储范围不变;

不影响内部存储,只是影响带 zerofill 定义的 int 时,前面补多少个 0,易于报表展示

问题3:float和double的区别是什么?

1.float类型数据可以存储至多8位十进制数,并在内存中占4字节。
2.double类型数据可以存储至多18位十进制数,并在内存中占8字节。

问题4:datetime和timestamp的区别?

对于类型为timestamp的字段来说,不给这个字段赋值或者给这个字段赋空值那么都会默认使用当前系统时间

2.2创建表

create table +表名(
列 数据类型,
列 数据类型,
.........
列 数据类型
)

有时候我们想 复制一个表的结构:

create table + 复制的新表名 + like + 被复制的表

有时候我们想 复制表的所有内容:

create table + 复制的新表名 + select * from 要复制的表名
注意没有like

有时候我们 只复制部分内容:

create table + 复制的新表名 + select语句

有时候我们 只复制部分表的字段结构

create table + 复制的新表名 + select 需要复制的字段 +from 要复制的表 + where + 一个恒不成立的条件(如0=1)

2.3查询表

查询数据库中所有的表的名称

show tables

查询表结构

desc + 表名

2.4删除表

drop table + if exists + 表名

2.5修改表

修改表名

alter table + 表名 + rename to + 新表名

修改表的字符集

alter table + 表名 + character set + 字符集名称

添加一列

alter table + 表名 + add + (column) + 列 数据类型

修改列名称

alter table + 表名 + change + (column) + 列名 新列名 数据类型

修改列类型

alter table 表名 modify + (column) + 列名 新的数据类型

删除列

alter table + 表名 + drop 列名

1253067 TFnetwork_cn