Mysql笔记(3)【DDL】

本文详细介绍了MySQL数据库中的表定义、数据类型、创建、修改和删除表的操作,包括char、varchar、int、bigint等类型的应用,以及如何设置默认值和复制表。此外,还涉及了如何通过SQL语句插入查询结果和表结构的调整。
摘要由CSDN通过智能技术生成

目录

十四、表


十四、表

1)定义:表(table)是数据库最基本的组成单元,数据库是用来存储数据的,数据库中有很多表,每一个表都是一个独立的单元,表也是一个结构化的文件;

    由行和列组成,行称为数据或记录,列称为字段;

    字段又包含:字段名称、字段类型、长度、约束。

2)创建表

1.语法格式:create table 表名称(字段名 类型(长度) 约束);

2.MySQL常用数据类型

数据类型

占用字节数

描述

char

char(*)

定长字符串,存储空间大小固定;

varchar

varchar(*)

变长字符串,存储空间等于实际数据空间;

int

4个字节

表示整型;

比如自增ID和表示数量

bigint

8个字节

表示长整型;

比如自增ID(数量比较大的情况下)

float

数值型(有效数字,小数位)

double

数值型(有效数字,小数位)

text

最大长度为64k字符的变长文本

date

8个字节

表示日期和时间

BLOB

Binary Large Object(二进制大对象)

CLOB

Charact Large Object(字符大对象)

其他… …

2.1 char:定长字符串

        char(3) 表示存储的数据长度不能超过3个字节长度,无论用多少都是3个字节的空间;

2.2 varchar:可变长字符串

        varchar(3) 表示存储数据长度不能超过3个字节长度,用多少占多少的字节;

2.3 int:整数型

        int(3) 表示存储任意3个字节的数值

2.4 bigint:长整型

        对应java中的Long类型

2.5 float:浮点型单精度

        float(7,2) 表示7个有效数字,2个有效小数位

2.6 double:浮点型双精度

        double(7,2) 表示7个有效数字,2个有效小数位

2.7 date:日期类型

        实际开发中,常用字符串代替日期类型

2.8 blob:二进制大对象

        专门存储图片、视频、声音等数据

        数据库存储图片是很常见,但存储大视频是很少的,一般都是存储视频地址

2.9 clob:字符大对象

        可存储超大文本,可存储4G+字符串

2.10 varchar char 对比:

        a)都是字符串;

        b)varchar比较智能,可以根据实际的数据大小来分配空间,比较节省空间;但是在分配的时候需要相关判断,效率低;

        c)char不需要动态分配空间,所以执行效率高,但是可能会导致空间浪费;

        d)若字段中数据不具备伸缩性,建议使用char类型储存;

        e)若字段中数据具备很强伸缩性,建议使用varchar类型储存;

3)创建表,删除表,修改表

        1. 创建表:(create)

        语法格式:create table 表名称(字段名 类型(长度) 约束);

        学生信息表字段包括:

        学号:no int(10);

        姓名:name varchar(32);

        性别:sex char(3);

        出生日期:birth date;

        邮箱:email varchar(128);

注:多个字段用,号分隔

1.2创建语句,如下:

        create table t_student(

        no int(10),

        name varchar(32),

        sex char(3),

        birth date,

        emaile varchar(128)

        );

        

注:表格名称最好以 t_ 或 tbl_ 开始,增强可读性;

varchar长度最好是2的倍数,方便存储中文

2.删除表:(drop)

        语法格式:drop table 表名称;

                drop table if exists 表名称;

2.1删除t_student表

        drop table t_student;

        drop table if exists t_student;

        最好采用第二种方法删除表,但这是MySQL特色其他数据库不能使用

        

3.增/删/改表结构:(alter)

        语法格式:

        1.新增:alter table 表名 add 字段名 字段类型(长度)

        2.修改:alter table 表名 modify 字段名 字段类型(长度)

        3.删除:alter table 表名 drop 字段名;

1.【新增】给 t_student 表添加一个电话字段

        alter table t_student add tel varchar(11);

        

2.【修改】将字段tel长度扩展到20长度

        alter table t_student modify tel varchar(20);

        

3.【删除】将t_student表中的tel字段删除

        alter table t_student drop tel;

        

4)创建表格时给字段设置默认值:default 默认值

                        

联想知识点:

        n 该文件是一个普通的文本文件,以.sql后缀结尾的文件我们称为SQL脚本;

        n 在SQL脚本中包含了大量的SQL诧句,我们可以通过直接使用source执行这个大批量脚本;

        n 在项目中期入职,数据库环境都已完善,PM可能会给程序员SQL脚本完成数据库的初始化;

        n 如果脚本过大,我们可以使用Sublime Text这个软件;

小知识点:获取数据库系统当前时间

        1.使用now()函数

        2.通过java的Date对象也可获取

        

5)表的复制

        定义:将查询结果当作一张表创建

        语法结构:create table 表名 as select查询语句;

1.完全复制emp表到emp1

        create table emp1 as select * from emp;

   

2.选择emp表中的员工编号,姓名,工资复制到表emp2;

        create table emp2 as select empno,ename,sal from emp;

        

6)将查询结果插入到某张表中

        语法结构:insert into 表名 select查询语句;

        1.从emp2表中查询出员工工资为3000的,同时将查询结果插入到emp2表中

        insert into emp2 select * from emp2 where sal=3000;

        

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

相得益彰.

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值