MySQL学习——操作表
MySQL学习——操作表
摘要:本文主要学习了使用DDL语句操作表的方法。
创建表
语法
create table 表名 [表定义选项] [表选项];
表定义选项
用来创建定义表的结构,由列名(col_name)、列的定义(column_definition)以及可能的空值说明、完整性约束或表索引组成。
实例
mysql> create table test (
-> id int(11) not null comment '编号',
-> name varchar(50) default null comment '姓名',
-> address varchar(50) default null comment '地址',
-> status int(2) default null comment '状态',
-> createtime date default null comment '创建时间',
-> updatetime date default null comment '修改时间',
-> primary key (id)
-> ) engine=innodb default charset=utf8mb4 comment='测试';
Query OK, 0 rows affected (0.01 sec) mysql>
复制表
语法
create table 新表名 as select * from 旧表名;
实例
Database changed
mysql> create table grade as select * from score;
Query OK, 12 rows affected (0.01 sec)
Records: 12 Duplicates: 0 Warnings: 0 mysql>
查看表的列
语法
show columns from 表名;
实例
mysql> show columns from test;
+------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+-------+
| id | int(11) | NO | PRI | NULL | |
| name | varchar(50) | YES | | NULL | |
| address | varchar(50) | YES | | NULL | |
| status | int(2) | YES | | NULL | |
| createtime | date | YES | | NULL | |
| updatetime | date | YES | | NULL | |
+------------+-------------+------+-----+---------+-------+
6 rows in set (0.00 sec) mysql>
说明
Field:列名。
Type:类型。
Null:表示该列是否可以存储NULL值。
Key:表示该列是否已编制索引。PRI表示该列是主键的一部分,UNI表示该列是UNIQUE索引的一部分,MUL表示在列中某个给定值允许出现多次。
Default:表示该列是否有默认值,如果有,值是多少。
Extra:表示可以获取的与给定列有关的附加信息,如:AUTO_INCREMENT等。
查看表结构
语法
desc 表名;
实例
mysql> desc test;
+------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+-------+
| id | int(11) | NO | PRI | NULL | |
| name | varchar(50) | YES | | NULL | |
| address | varchar(50) | YES | | NULL | |
| status | int(2) | YES | | NULL | |
| createtime | date | YES | | NULL | |
| updatetime | date | YES | | NULL | |
+------------+-------------+------+-----+---------+-------+
6 rows in set (0.00 sec) mysql>
说明
Filed:列名。
Type:类型。
Null:表示该列是否可以存储NULL值。
Key:表示该列是否已编制索引。PRI表示该列是表主键的一部分,UNI表示该列是UNIQUE索引的一部分,MUL表示在列中某个给定值允许出现多次。
Default:表示该列是否有默认值,如果有,值是多少。
Extra:表示可以获取的与给定列有关的附加信息,如:AUTO_INCREMENT等。
查询所有的表
语法
show tables;
实例
mysql> show tables;
+----------------+
| Tables_in_demo |
+----------------+
| test |
+----------------+
1 row in set (0.00 sec) mysql>
查看表的创建
语法
show create table 表名 \G;
实例
mysql> show create table test \G;
*************************** 1. row ***************************
Table: test
Create Table: CREATE TABLE `test` (
`id` int(11) NOT NULL COMMENT '编号',
`name` varchar(50) DEFAULT NULL COMMENT '姓名',
`address` varchar(50) DEFAULT NULL COMMENT '地址',
`status` int(2) DEFAULT NULL COMMENT '状态',
`createtime` date DEFAULT NULL COMMENT '创建时间',
`updatetime` date DEFAULT NULL COMMENT '修改时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='测试'
1 row in set (0.00 sec) ERROR:
No query specified mysql>
查看表的状态
语法
show table status like from 数据库 [like '模糊查询表名'] \G;
实例
mysql> show table status from demo \G ;
*************************** 1. row ***************************
Name: test
Engine: InnoDB
Version: 10
Row_format: Compact
Rows: 0
Avg_row_length: 0
Data_length: 16384
Max_data_length: 0
Index_length: 0
Data_free: 0
Auto_increment: NULL
Create_time: 2019-09-02 17:21:06
Update_time: NULL
Check_time: NULL
Collation: utf8mb4_general_ci
Checksum: NULL
Create_options:
Comment: 测试
1 row in set (0.00 sec) ERROR:
No query specified mysql>
查看表索引
语法
show index from 表名;
示例
mysql> show index from user;
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| user | 0 | PRIMARY | 1 | Host | A | NULL | NULL | NULL | | BTREE | | |
| user | 0 | PRIMARY | 2 | User | A | 3 | NULL | NULL | | BTREE | | |
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
2 rows in set (0.00 sec) mysql>
修改表
添加列
alter table 表名 add column 新列名 [数据类型] [约束条件] [first | after 已存在的列名];
实例
mysql> alter table test add column age int(3) null comment '年龄' after name;
Query OK, 0 rows affected (0.01 sec)
Records: 0 Duplicates: 0 Warnings: 0 mysql>
修改列
alter table 表名 change column 旧列名 新列名 [新数据类型];
实例
mysql> alter table test change column username name varchar(30) not null default 'none' comment '姓名';
Query OK, 0 rows affected (0.01 sec)
Records: 0 Duplicates: 0 Warnings: 0 mysql>
删除列
alter table 表名 drop 列名;
实例
mysql> alter table test drop age;
Query OK, 0 rows affected (0.01 sec)
Records: 0 Duplicates: 0 Warnings: 0 mysql>
删除表
语法
drop table [if exists] 表名;
实例
mysql> drop table demo;
Query OK, 0 rows affected (0.01 sec) mysql>
清空表
语法
truncate table 表名;
实例
mysql> truncate table demo;
Query OK, 0 rows affected (0.01 sec) mysql>
MySQL学习——操作表的更多相关文章
- MySQL学习笔记一
MySQL 学习笔记 一 一.数据库简单介绍 1. 按照数据库的发展时间顺序,主要出现了以下类型数据库系统: Ø 网状型数据库 Ø 层次型数据库 Ø 关系型数据库 Ø 面向对象数据库 上面4中数据库系 ...
- Mysql 学习1
Mysql学习 一.数据库 1 数据库概念(了解) 1.1 什么是数据库 数据库就是用来存储和管理数据的仓库! 数据库存储数据的优先: 可存储大量数据: 方便检索: 保持数据的一致性.完整 ...
- 数据库MySQL学习笔记高级篇
数据库MySQL学习笔记高级篇 写在前面 学习链接:数据库 MySQL 视频教程全集 1. mysql的架构介绍 mysql简介 概述 高级Mysql 完整的mysql优化需要很深的功底,大公司甚至有 ...
- 我的MYSQL学习心得(一) 简单语法
我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...
- 我的MYSQL学习心得(二) 数据类型宽度
我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...
- 我的MYSQL学习心得(三) 查看字段长度
我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...
- 我的MYSQL学习心得(四) 数据类型
我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(五) 运 ...
- 我的MYSQL学习心得(五) 运算符
我的MYSQL学习心得(五) 运算符 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据 ...
- 我的MYSQL学习心得(六) 函数
我的MYSQL学习心得(六) 函数 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类 ...
随机推荐
- kaldi简介及安装
操作系统 : Ubuntu18.04_x64 gcc版本 :7.4.0 简介 Kaldi诞生于2009年的JohnsHopkins University,刚开始项目重点是子空间高斯模型(SGMM)建模 ...
- js 生成32位随机数,可用于微信支付流水号(前端生成)
$(function () { /*生成32位随机流水号*/ /*默认去掉了容易混淆的字符oOLl,9gq,Vv,Uu,I1*/ var $chars = 'ABCDEFGHJKMNPQRSTWXYZ ...
- Jedis & spring-data-redis
当我们了解了redis的五大数据类型,手动去敲一敲每个数据类型对应的命令,无论是再来看jedis,还是spring-data-redis都是很轻松的,他们提供的API都是基于原生的redis命令,可读 ...
- 简单的PHP上传图片实例
分享一个简单的PHP上传图片实例,本实例主要介绍了上传图片的一些限制判断和上传图片的方法. 首先我们在form表单加上上传附件#file,上传按钮#imgbut,记得给form 表单加上multipa ...
- Inherit from the Business Class Library Class 继承自Business类(EF)
In this lesson, you will learn how to implement business classes for your application using the Busi ...
- Node.js操作Mysql的简单示例
API的封装:封装为系统可用的工具,分为线上和线上的数据库. 使用:让API直接操作数据库,不再使用假数据. DEMO代码: const mysql = require('mysql'); // 创建 ...
- Linux 释放cache
sysc 将所有未写的系统缓冲区写到磁盘中,包含已修改的 i-node.已延迟的块 I/O 和读写映射文件 echo 3 > /proc/sys/vm/drop_caches To free p ...
- Xcode更新到10.0之后遇到的那些坑:
1.之前不在一个文件里的图片可以重新,更新之后图片不能重名了. 2.之前的双击.h.m文件不能重新开出个界面了 3. 4. ...... 未完待续
- Transportable tablespace on standby (Doc ID 788176.1)
APPLIES TO: Oracle Database - Enterprise Edition - Version 10.2.0.1 to 10.2.0.4 [Release 10.2]Oracle ...
- mysql8之坑
一.具体"坑" 1.修改密码和修改加密方式 mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码' PASSWORD ...