mysql数据库DDL数据定义需要_MySql DDL数据定义语言

本文详细介绍MySQL数据库的基础操作,包括数据库的创建、查看及使用方法,常用数据类型介绍,创建表的语法及其约束条件,以及如何进行表结构的维护与删除等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.数据库创建、查看以及使用/切换

直接创建数据库 db1

create database db1;

查看当前在哪个库里边

select database();

进入库的操作:use 库名;

use db1;

判断是否存在,如果不存在则创建数据库 db2

create database if not exists db2;

创建数据库db3,并指定字符集为 gbk

create database db3 default character set gbk;

查看某个库是什么字符集;

show create database db1;

查看当前 mysql 使用的字符集

show variables like 'character%';

2.常用数据类型

1)整数型

类型       大小       范围(有符号)           范围(无符号unsigned)     用途TINYINT    1 字节 (-128,127) (0,255) 小整数值SMALLINT 2 字节 (-32768,32767) (0,65535) 大整数值

MEDIUMINT3 字节 (-8388608,8388607) (0,16777215) 大整数值INT 4 字节 (-2147483648,2147483647) (0,4294967295) 大整数值BIGINT 8 字节 (0,2的64次方减1) 极大整数值

2)浮点型

FLOAT(m,d) 4字节 单精度浮点型 备注:m代表总个数,d代表小数位个数DOUBLE(m,d) 8 字节 双精度浮点型 备注:m代表总个数,d代表小数位个数

3)定点型

DECIMAL(m,d) 依赖于M和D的值 备注:m代表总个数,d代表小数位个数

4)字符串类型

类型        大小          用途CHAR 0-255字节 定长字符串VARCHAR 0-65535字节 变长字符串

TINYTEXT0-255字节        短文本字符串TEXT 0-65535字节 长文本数据

MEDIUMTEXT0-16777215字节 中等长度文本数据

LONGTEXT0-4294967295字节 极大文本数据

char 的优缺点:存取速度比 varchar 更快,但是比 varchar 更占用空间

varchar 的优缺点:比 char 省空间,但是存取速度没有 char 快

5)时间型

数据类型   字节数     格式                备注

date3       yyyy-MM-dd 存储日期值

time3HH:mm:ss 存储时分秒year     1yyyy 存储年datetime   8yyyy-MM-dd HH:mm:ss 存储日期+时间timestamp 4yyyy-MM-dd HH:mm:ss 存储日期+时间,可作时间戳

3.创建表

语法:

CREATE TABLE表名 (

字段名1 字段类型1 约束条件1 说明1,

字段名2 字段类型2 约束条件2 说明2,

字段名3 字段类型3 约束条件3 说明3

);create table 新表名 as select * from 旧表名 where 1=2;(注意:建议这种创建表的方式用于日常测试,因为可能索引什么的会复制不过来)create table 新表名 like 旧表名;

约束条件:

comment:说明解释not null:不为空default:默认值

unsigned:无符号(即正数)

auto_increment:自增

zerofill:自动填充unique key:唯一值

创建sql

CREATE TABLEstudent (

idtinyint(5) zerofill auto_increment not null comment '学生学号',

namevarchar(20) default null comment '学生姓名',

agetinyint default null comment '学生年龄',

classvarchar(20) default null comment '学生班级',

sexchar(5) not null comment '学生性别',unique key(id)

)engine=innodb charset=utf8;

​CREATE TABLEstudent (

idtinyint(5) auto_increment default null comment '学生学号',

namevarchar(20) default null comment '学生姓名',

agetinyint default null comment '学生年龄',

classvarchar(20) default null comment '学生班级',

sexchar(5) not null comment '学生性别',unique key(id)

)engine=innodb charset=utf8;

4.数据表查看

查看数据库中的所有表:

show tables;

查看表结构:desc 表名;

desc dept;

查看创建表的sql语句:show create table 表名;

\G :有结束sql语句的作用,还有把显示的数据纵向旋转90度

\g :有结束sql语句的作用

show create table dept;

5.数据表结构维护与删除

修改表名:rename table 旧表名 to 新表名;

rename table student to user;

给表添加一列:alter table 表名 add 列名 类型;

alter table user add addr varchar(50);

alter table add 列名 类型 comment '说明';

alter table user add famliy varchar(50) comment '学生父母';

给表最前面添加一列:alter table 表名 add 列名 类型 first;

alter table user add job varchar(10) first;

给表某个字段后添加一列:alter table 表名 add 列名 类型 after 字段名;  (注意:没有给表某个字段前添加一列的说法。)

alter table user add servnumber int(11) after id;​

修改列类型:alter table 表名 modify 列名 新类型;

alter table user modify servnumber varchar(20);

修改列名:alter table 表名 change 旧列名 新列名 类型;

alter table user change servnumber telephone varchar(20);

删除列:alter table 表名 drop 列名;

alter table user drop famliy;

修改字符集:alter table 表名 character set 字符集;

alter table user character set GBK;

表的删除:drop table 表名;

drop table user;

看表是否存在,若存在则删除表:drop table if exists 表名;

drop table if exists teacher;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值