【MySQL】:利用DDL操作数据库、表

一、DDL操作数据库

关键字理应大写,为便于记忆,本篇都采用小写形式。

DDL(DATA Definition Language):数据定义语言,用于定义数据库对象。

1、创建数据库

create database db1;	#创建一个数据库,名字叫mydb
create database if not exists db2;	#如果db2不存在,则创建数据库db2
create database db3 character set gbk;	#创建数据库db3并制定字符集为gbk

-- 综合:如果db4不存在,就创建它,并且设置字符集为utf8(!不是utf-8)
create database if not exists db4 character set utf8;

2、查看数据库

show databases;			# 查询所有数据库的名称
show create database db1; #查询已创建数据库db1的字符集

3、修改数据库

alter database db2 character set utf8;	#修改数据库db2字符集为utf8

4、删除数据库

drop database db4;		#删除数据库db4
drop database if exists db3;	#判断是否存在并删除db3

5、使用数据库

use db1;	# 使用数据库db1
select database(); #查看正在使用的数据库

二、DDL操作数据表

在使用某个数据库的前提下,才可以操作库里面的表结构。

1、创建表

建表格式

create table 表名(
    列名1 数据类型1,## 此处可添加字段注释
    列名2 数据类型2,## 此处可添加字段注释
    ...
    列名n 数据类型n  ## 此处可添加字段注释
); ## 最后一列列不需要加逗号

如:

create table student (
	id int,-- 编号
	NAME varchar(20),-- 姓名
	gender char(8),-- 性别
	birthday date 	  -- 生日
);

MySQL数据类型

数据类型有许多,以下为几个比较基础重要的。

文本相关

  • varchar(m):可变长度字符串 ,使用几个字符就占用几个,m为0-65535之间。
  • char(m):定长字符串,无论使用几个字符都将占满全部,多余的以空字符补充,m为0-255之间。

关于char和varchar推荐看这篇:char与varchar类型区别的深度剖析

数相关

  • int:整数类型。
  • double:双精度浮点数类型。
  • float:单精度浮点数类型。

时间相关

  • date:日期类型,只包含年月日:yyyy-MM-dd

  • time:时间类型,只包含时分秒:HH:mm:ss

  • datetime:日期和时间类型都有,包含年月日时分秒:yyyy-MM-dd HH:mm:ss

  • timestamp:时间戳 格式和上相同,如果不给这个字段赋值,则自动用系统默认时间赋值。

复制表

create table new_stu like old_stu;      # 复制表的操作

2、查看表

show tables;   # 查询该数据库中所有的表名称
desc student;	  # 查询表student的结构

在这里插入图片描述

show create table student; #查看student的创建表 SQL 语句

3、删除表

drop table student;				#删除表student
drop table if exists student;	#判断student是否存在,并删除

4、修改表

修改表名

alter table student rename to stu;  # 把student表改名为stu
rename table student to stu;

修改字符集

alter table stu character set gbk;   # 修改字符集为gbk

添加表列

alter table stu add address varchar(20);  # 增加一列,列名为address,数据类型varchar

修改列类型

alter table stu modify address char(10);  # 修改address的数据类型,改为char

修改列名

alter table stu change address addr char(10);  #修改列名为addr,数据类型改为char

删除列

alter table stu drop addr; 		# 删除addr列

相关文章

在正式开始之前,我们先来看下 MySQL 服务器的配置和版本号信...
> [合辑地址:MySQL全面瓦解](https://www.cnblogs.c...
物理服务机的CPU、内存、存储设备、连接数等资源有限,某个时...
1 回顾 上一节我们详细讲解了如何对数据库进行分区操作,包括...
navicat查看某个表的所有字段的详细信息 navicat设计表只能一...
文章浏览阅读4.3k次。转载请把头部出处链接和尾部二维码一起...