1.数据库表的创建

逻辑库

1)创建逻辑库:CREATE DATABASE 逻辑库名称;
2)显示逻辑库:SHOW DATABASES;
3)删除逻辑库:DROP DATABASE 逻辑库名称;

数据表

1)显示逻辑库有哪些表:SHOW TABLES;
2)查看student表具体信息:DESC student;
3)查看当时创建student表的SQL:SHOW CREATE TABLE student;
4)删除student表:DROP TABLE student;
5)创建数据表(中括号内容非必须项):
CREATE TABLE 数据表(
列名1 数据类型 【约束】 【COMMENT 注释】,
列名2 数据类型 【约束】 【COMMENT 注释】,
......
)【COMMENT=注释】; #实例:
#UNSIGNED :不带-号的整数; PRIMARY KEY 主键
use test;
CREATE TABLE student(
id INT UNSIGNED PRIMARY KEY,
name VARCHAR(20) NOT NULL,
sex CHAR(1) NOT NULL,
birthday DATE NOT NULL,
tel CHAR(11) NOT NULL,
remark VARCHAR(200)
); #插入数据校验
INSERT INTO student VALUES(1,'张三','男','2000-02-22','11111111111',NULL);
6)数据表添加字段:
ALTER TABLE 表名称
ADD 列1 数据类型 【约束】 【COMMENT 注释】,
ADD 列1 数据类型 【约束】 【COMMENT 注释】,
……;

#实例:
ALTER TABLE student
ADD address VARCHAR(200) NOT NULL,
ADD home_tel CHAR(11) NOT NULL;
7)修改表字段类型和约束
ALTER TABLE 表名称
MODIFY 列1 数据类型 【约束】【COMMENT 注释】,
MODIFY 列2 数据类型 【约束】【COMMENT 注释】,
……;

#实例
ALTER TABLE student
MODIFY home_tel VARCHAR(20) NOT NULL; DESC student;#查看表信息,核对字段是否已修改过来
8)修改表字段名称
ALTER TABLE 表名称
CHANGE 列1 新列名1 数据类型 【约束】【COMMENT 注释】,
CHANGE 列2 新列名2 数据类型 【约束】【COMMENT 注释】,
……;

#实例
ALTER TABLE student
CHANGE address home_address VARCHAR(200) NOT NULL; DESC student;#查看表信息,核对字段是否已修改过来
9)表删除字段
ALTER TABLE 表名称
DROP 列1,
DROP 列2,
……; #实例
ALTER TABLE student
DROP home_address,
DROP home_tel; DESC student;#查看表信息,核对字段是否已修改过来

2.不同的数据类型


3.数据库表字段约束

前置知识

设计数据表要符合第三范式,下面是字段约束的讲解

CREATE TABLE t_teacher(
id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT, #int类型,不能取负整数(UNSIGNED),约束条件:主键约束(PRIMARY KEY),id自增(AUTO_INCREMENT)
name VARCHAR(20) NOT NULL, #约束条件:非空约束(NOT NULL)
tel CHAR(11) NOT NULL UNIQUE, #约束条件:非空约束(NOT NULL),唯一约束(UNIQUE)
married BOOLEAN NOT NULL DEFAULT FALSE #约束条件:非空约束(NOT NULL),默认值为FALSE(DEFAULT FALSE)

#父表;
CREATE TABLE t_dept(
deptno INT UNSIGNED PRIMARY KEY,
dname VARCHAR(20) NOT NULL UNIQUE,
tel CHAR(4) UNIQUE
); #子表
CREATE TABLE t_emp(
empno INT UNSIGNED PRIMARY KEY,
ename VARCHAR(20) NOT NULL,
sex ENUM("男","女") NOT NULL,
deptno INT UNSIGNED,
hiredate DATE NOT NULL,
FOREIGN KEY (deptno) REFERENCES t_dept(deptno) #外键约束
);


4.数据库的索引机制

查看数据表有哪些索引

SHOW INDEX FROM 表名;

创建数据表同时创建索引

CREATE TABLE(
......,
INDEX [索引名称] (字段), #[索引名称]不填时,索引名称默认就是字段名称
......
); #实例
CREATE TABLE t_message(
id INT UNSIGNED PRIMARY KEY,
content VARCHAR(200) NOT NULL,
type ENUM("公告","通知","个人通知"),
create_time TIMESTAMP NOT NULL,
INDEX idx_type (type)
);

数据表已经存在,添加索引

#方式一
CREATE INDEX 索引名称 ON 表名(字段); #方式二
ALTER TABLE 表名称 ADD INDEX [索引名](字段);

数据表已经存在,删除索引

DROP INDEX 索引名称 ON 表名;
DROP INDEX idx_type ON t_message;
CREATE INDEX idx_type ON t_message(type);
SHOW INDEX FROM t_message;


5.MySQL中的相似方法

5.1.DESC和SHOW CREATE TABLE的区别

  • DESC 表名:用来显示表的状态,包括列名(column name),各个列的类型(Type),各个列的值类型,主外键(Key),默认值等;

  • SHOW CREATE TABLE 表名:显示创建表时的sql语句

5.2.MODIFY和CHANGE的区别

  • CHANGE可以重命名列名,也可以修改列的数据类型,而MODIFY只能修改列的数据类型。
  • 在使用CHANGE修改数据类型时,CHANGE语法要写原列名称和新列名称,即使原列名称和新列名称是一样的。这种情况下就可以使用MODIFY来改变列的数据类型,不需要重命名。

5.3.TIME和TIMESTAMP的区别

  • TIME是存储一天的时间:时分秒
  • TIMESTAMP既有日期也有时间,但是保存的时间只能是1970-1-1日之后的,在数据库中存储格式如下图所示:

5.4. CHAR和VARCHAR的区别

  • CHAR存储定长数据很方便,比如定义CHAR (10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间
  • VARCHAR存储变长数据,若一个字段值是不固定长度的,我们只知道它不可能超过10个字符,把它定义为 VARCHAR (10)是最合适的。VARCHAR类型的实际长度是它的值的实际长度+1。所加的1字节就是为了存储实际使用了多大的长度

MySQL(3) - 数据库表的相关操作的更多相关文章

  1. 对mysql数据库表的相关操作

    虫师博客(Python使用MySQL数据库(新)): https://www.cnblogs.com/fnng/p/3565912.html 1.更改表的结构,增加一个字段放置新增的属性 alter ...

  2. MySQL(三) 数据库表的查询操作【重要】

    序言 1.MySQL表操作(创建表,查询表结构,更改表字段等), 2.MySQL的数据类型(CHAR.VARCHAR.BLOB,等), 本节比较重要,对数据表数据进行查询操作,其中可能大家不熟悉的就对 ...

  3. MySQL创建数据库/表等基本命令操作

    前提:安装好MySQL并且配置好服务,能够正常使用 按住键盘上的Windows图标,通过搜索框找到MySQL5.7 Command Line Client,点击启动 输入安装时设置用户的密码 成功连接 ...

  4. day40数据库之表的相关操作

    数据库之表的相关操作1.表的操作: 1.创建表的语法:        create table 表名(              id   int(10)   primary key auto_inc ...

  5. mysql(三) 数据表的基本操作操作

    mysql(三) 数据表的基本操作操作 创建表,曾删改查,主键,外键,基本数据类型. 1. 创建表 create table 表名( 列名 类型 是否可以为空, 列名 类型 是否可以为空 )ENGIN ...

  6. MySQL更改数据库表的存储引擎

    MySQL更改数据库表的存储引擎 1.查看表的原存储引擎 show create table user; 'user', 'CREATE TABLE `user` (\n `id` int(11) N ...

  7. MySQL查看数据库表容量大小

    本文介绍MySQL查看数据库表容量大小的命令语句,提供完整查询语句及实例,方便大家学习使用. 1.查看所有数据库容量大小 select table_schema as '数据库', sum(table ...

  8. MySQL中将数据库表名修改成大写的存储过程

    原文:MySQL中将数据库表名修改成大写的存储过程 MySQL中将数据库表名修改成大写的存储过程 创建存储过程的代码: DROP PROCEDURE IF EXISTS uppercaseTablen ...

  9. MYSQL--表与表之间的关系、修改表的相关操作

    表与表之间的操作: 如果所有信息都在一张表中: 1.表的结构不清晰 2.浪费硬盘空间 3.表的扩展性变得极差(致命的缺点) 确立表与表之间的关系.一定要换位思考(必须在两者考虑清楚之后才能得出结论) ...

随机推荐

  1. 学习Apache(六)

    Apache 是一款使用量排名第一的 web 服务器,LAMP 中的 A 指的就是它.由于其开源.稳定.安全等特性而被广泛使用.下边记录了使用 Apache 以来经常用到的功能,做此梳理,作为日常运维 ...

  2. SCTF 2018_Simple PHP Web

    SCTF 2018_Simple PHP Web 进入环境注意观察url http://www.bmzclub.cn:23627/?f=login.php 有点像是文件读取我们尝试读一下/etc/pa ...

  3. flex布局中父容器属性部分演示效果

    如图可见flex的属性分为父容器和子容器的属性共12个.关于这些属性具体代表什么意思,网上有很多教程的文章,自觉不能写得比别人更好,所以这里主要写了一些例子关于父容器属性效果的演示,希望可以帮助大家理 ...

  4. 如何利用WebSocket实现网页版聊天室

    花了将近一周的时间终于完成了利用WebSocket完成网页版聊天室这个小demo,期间还走过了一段"看似弯曲"的道路,但是我想其实也不算是弯路吧,因为你走过的路必将留下你的足迹.这 ...

  5. 基 vue-element-admin升级的Vue3 +TS +Element-Plus 版本的后端管理前端解决方案 vue3-element-admin 正式对外发布,有来开源组织又一精心力作,毫无保留开放从0到1构建过程

    项目简介 vue3-element-admin 是基于 vue-element-admin 升级的 Vue3 + Element Plus 版本的后台管理前端解决方案,是 有来技术团队 继 youla ...

  6. Spark入门之环境搭建

    本教程是虚拟机搭建Spark环境和用idea编写脚本 一.前提准备 需要已经有搭建好的虚拟机环境,具体见教程大数据学习之路又之从小白到用sqoop导出数据 - 我试试这个昵称好使不 - 博客园 (cn ...

  7. java中的方法(method)到底怎么用?给个例子

    7.方法(method)   被调例子, int add(int x, int y){ return x+y; } 主调例子, for example: int result = add(5,3); ...

  8. CCF201909-2小明种苹果(续)

    解题思路:解题思路很简答,就是用数组将数据存起来然后再进行统计,具体思路就见代码注释,记录这道题的是为了警示自己好好审题啊...... 审题有问题,写题火葬场啊.......以为每棵树就疏一次果,把D ...

  9. js判断输入数字是否是整数,金额、数字

    function isIntNum(strNum){//js判断输入数字是否是整数 仅供学习思想 var strCheckNum = strNum+""; if(strCheckN ...

  10. vue中对element-ui框架中el-table的列的每一项数据进行操作

    vue中使用element table,表格参数格式化formatter 后台返回对应的数字, 那肯定不能直接显示数字,这时候就要对 表格进行数据操作 如图: 代码: methods: { //状态改 ...