ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

MySQL创建表和管理表

2022-01-01 18:00:00  阅读:127  来源: 互联网

标签:管理 创建 数据库 MySQL 数据类型 数据表 表名 TABLE


文章目录

基础知识

一条数据存储的过程:

创建数据据—>确认字段—>创建数据表—>插入数据

MySQL数据库系统从大到小依次是:数据库服务器数据库数据表行与列

标识符的命名规则

  • 数据库名、表名不得超过30个字符,变量名限制为29个
  • 必须只能包含 a-z,A-Z,0-9,’_’
  • 数据库名、表名、字段名等对象名中间不要包含空格
  • 同一个MySQL软件中、数据库不能同名;同一个库中,表不能重名;同一个表中,字段不能重名
  • 必须保证你的字段没有和保留字、数据库系统或常用方法冲突。如果坚持使用,请在SQL语句中使用`(着重号)引起来
  • 保持字段名和类型的一致性:在命名字段并为其指定数据类型的时候一定要保证一致性,假如数据类型在一个表里是整数,那在另一个表里可就别变成字符型了

MySQL中的常用数据类型

数据类型描述
INT从-231到231-1的整型数据。存储大小为 4个字节
CHAR(size)定长字符数据。若未指定,默认为1个字符,最大长度255
VARCHAR(size)可变长字符数据,根据字符串实际长度保存,必须指定长度
FLOAT(M,D)单精度,占用4个字节,M=整数位+小数位,D=小数位。 D<=M<=255,0<=D<=30,默认M+D<=6
DOUBLE(M,D)双精度,占用8个字节,D<=M<=255,0<=D<=30,默认M+D<=15
DECIMAL(M,D)高精度小数,占用M+2个字节,D<=M<=65,0<=D<=30,最大取值范围与DOUBLE相同。
DATE日期型数据,格式’YYYY-MM-DD’
BLOB二进制形式的长文本数据,最大可达4G
TEXT长文本数据,最大可达4G

创建和修改数据库

创建数据库

  • 判断数据库是否已经存在,不存在则创建数据库(推荐
#如果不存在同名的数据库则创建,有同名的则不创建

CREATE DATABASE IF NOT EXISTS 数据库名; 

#也可以指定数据库的字符集

CREATE DATABASE IF NOT EXISTS 数据库名 CHARACTER SET 字符集;

注意:数据库不能改名

使用数据库

使用某数据库

USE 数据库名;

查看所有数据库

SHOW DATABASES;

查看当前正在使用的数据库

#DATABASE()为一个函数
SELECT DATABASE();

查看指定库下的所有表

SHOW TABLES FROM 数据库名;

查看数据库的创建信息

#不难发现查看的是创建数据库的信息
SHOW CREATE DATABASE 数据库名;

注意:如果要对每个数据库中的表进行操作,则需要先使用这个表,就是USE这张表,如果要使用别的库中的表,可以在表名前面加上数据库名。

修改数据库

上面说过数据库的名不能更改,修改数据库的字符集

 # 比如:gbk、utf8等
ALTER DATABASE 数据库名 CHARACTER SET 字符集; 

删除数据库

删除指定的数据库

#如果数据库存在则删除
DROP DATABASE IF EXISTS 数据库名;

创建表

方式一

  • 手动添加字段

语法格式:

[约束条件] [默认值] [表约束条件] 可以不加。

#如果表不存在则创建表 
CREATE TABLE IF NOT EXISTS 表名(
	字段1, 数据类型 [约束条件] [默认值],
	字段2, 数据类型 [约束条件] [默认值],
	字段3, 数据类型 [约束条件] [默认值],
	……
	[表约束条件]
);

方式二

  • 使用 AS subquery 选项,将创建表和插入数据结合起来

  • 需要注意的是:指定的列和子查询的列要一 一对应

  • 通过列名和默认值定义列

#将查询的结果 作为新表的字段和数据
CREATE TABLE emp1 
AS 
SELECT * FROM employees;
#创建的是空表,因为查询的内容为空,但字段保留
CREATE TABLE emp2 
AS 
SELECT * FROM employees WHERE 1=2; -- 创建的emp2是空表

查看表结构

查看表的结构组成;

DESC 表名;
SHOW CREATE TABLE 表名\G

使用SHOW CREATE TABLE 语句不仅可以查看表创建时的详细语句,还可以查看存储引擎和字符编码。

修改表

修改表是指修改数据库中已经存在的数据表的结构

使用 ALTER TABLE 语句可以实现:

  • 向已有的表中添加列
  • 修改现有表中的列
  • 删除现有表中的列
  • 重命名现有表中的列

添加列

【FIRST|AFTER 字段名】指定所添加的列在那个字段的前面或者后面

ALTER TABLE 表名 ADD 【COLUMN】 字段名 字段类型 【FIRST|AFTER 字段名】;

修改列

可以修改列的数据类型,长度、默认值和位置

ALTER TABLE 表名 
MODIFY 【COLUMN】 字段名1 字段类型 【DEFAULT 默认值】【FIRST|AFTER 字段名2】;

重命名列

ALTER TABLE 表名 
CHANGE 【column】 列名 新列名 新数据类型;

删除列

需要注意的是如果列和其他的表有关联,则不能删除。

ALTER TABLE 表名 DROP 【COLUMN】字段名

重命名表

方式一

RENAME TABLE 表名
TO 新表名;

方式二

ALTER table 表名
RENAME [TO] 新表名;  -- [TO]可以省略

删除表

注意:

  • 在MySQL中,当一张数据表没有与其他任何数据表形成关联关系时,可以将当前数据表直接删除。

  • 数据和结构都被删除

  • 所有正在运行的相关事务被提交

  • 所有相关索引被删除

    语法格式:

DROP TABLE [IF EXISTS] 数据表1 [, 数据表2, …, 数据表n];

清空表

TRUNCATE TABLE语句:

  • 删除表中所有的数据,保留表结构
  • 释放表的存储空间
TRUNCATE TABLE 表名;
DELETE FROM 表名; 

TRUNCAT 不能回滚数据,DELETE再设只不自动提交的前提下可以回滚数据。

所以建议使用DELETE,防止发生事故。

标签:管理,创建,数据库,MySQL,数据类型,数据表,表名,TABLE
来源: https://blog.csdn.net/qq_45795744/article/details/122269339

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有