MySQL学习——有关表的操作语句

MySQL学习——有关表的操作语句

摘要:本文主要学习了使用DDL语句对表进行操作的方法。

创建表

语法

1 create table 表名 [表定义选项] [表选项] [分区选项];

表定义选项

用来创建定义表的结构,由列名(col_name)、列的定义(column_definition)以及可能的空值说明、完整性约束或表索引组成。

实例

1 create table test (
2   id int(11) not null comment ‘编号‘,
3   name varchar(50) default null comment ‘姓名‘,
4   address varchar(50) default null comment ‘地址‘,
5   status int(2) default null comment ‘状态‘,
6   createtime date default null comment ‘创建时间‘,
7   updatetime date default null comment ‘修改时间‘,
8   primary key (id)
9 ) engine=innodb default charset=utf8mb4 comment=‘测试‘;

查看表结构

语法

1 describe 表名;

实例

 1 mysql> describe test;
 2 +------------+-------------+------+-----+---------+-------+
 3 | Field      | Type        | Null | Key | Default | Extra |
 4 +------------+-------------+------+-----+---------+-------+
 5 | id         | int(11)     | NO   | PRI | NULL    |       |
 6 | name       | varchar(50) | YES  |     | NULL    |       |
 7 | address    | varchar(50) | YES  |     | NULL    |       |
 8 | status     | int(2)      | YES  |     | NULL    |       |
 9 | createtime | date        | YES  |     | NULL    |       |
10 | updatetime | date        | YES  |     | NULL    |       |
11 +------------+-------------+------+-----+---------+-------+
12 6 rows in set (0.00 sec)
13
14 mysql> 

说明

Null:表示该列是否可以存储NULL值。

Key:表示该列是否已编制索引。PRI表示该列是表主键的一部分,UNI表示该列是UNIQUE索引的一部分,MUL表示在列中某个给定值允许出现多次。

Default:表示该列是否有默认值,如果有,值是多少。

Extra:表示可以获取的与给定列有关的附加信息,如:AUTO_INCREMENT等。

查询所有的表

语法

1 show tables;

实例

1 mysql> show tables;
2 +----------------+
3 | Tables_in_demo |
4 +----------------+
5 | test           |
6 +----------------+
7 1 row in set (0.00 sec)
8
9 mysql> 

查看表的创建

语法

1 show create table 表名 \G;

实例

 1 mysql> show create table test \G;
 2 *************************** 1. row ***************************
 3        Table: test
 4 Create Table: CREATE TABLE `test` (
 5   `id` int(11) NOT NULL COMMENT ‘编号‘,
 6   `name` varchar(50) DEFAULT NULL COMMENT ‘姓名‘,
 7   `address` varchar(50) DEFAULT NULL COMMENT ‘地址‘,
 8   `status` int(2) DEFAULT NULL COMMENT ‘状态‘,
 9   `createtime` date DEFAULT NULL COMMENT ‘创建时间‘,
10   `updatetime` date DEFAULT NULL COMMENT ‘修改时间‘,
11   PRIMARY KEY (`id`)
12 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT=‘测试‘
13 1 row in set (0.00 sec)
14
15 ERROR:
16 No query specified
17
18 mysql> 

查看表的状态

语法

1 show table status like from 数据库 [like ‘模糊查询表名‘] \G;

实例

 1 mysql> show table status from demo \G ;
 2 *************************** 1. row ***************************
 3            Name: test
 4          Engine: InnoDB
 5         Version: 10
 6      Row_format: Compact
 7            Rows: 0
 8  Avg_row_length: 0
 9     Data_length: 16384
10 Max_data_length: 0
11    Index_length: 0
12       Data_free: 0
13  Auto_increment: NULL
14     Create_time: 2019-09-02 17:21:06
15     Update_time: NULL
16      Check_time: NULL
17       Collation: utf8mb4_general_ci
18        Checksum: NULL
19  Create_options:
20         Comment: 测试
21 1 row in set (0.00 sec)
22
23 ERROR:
24 No query specified
25
26 mysql> 

修改表

添加字段

1 alter table 表名 add column 新字段名 [数据类型] [约束条件] [first | after 已存在的字段名];

实例

1 mysql> alter table test add column age int(3) null comment ‘年龄‘ after name;
2 Query OK, 0 rows affected (0.01 sec)
3 Records: 0  Duplicates: 0  Warnings: 0
4
5 mysql> 

修改字段

1 alter table 表名 change column 旧字段名 新字段名 [新数据类型];

实例

1 mysql> alter table test change column username name varchar(30) not null default ‘none‘ comment ‘姓名‘;
2 Query OK, 0 rows affected (0.01 sec)
3 Records: 0  Duplicates: 0  Warnings: 0
4
5 mysql> 

删除字段

1 alter table 表名 drop 字段名;

实例

1 mysql> alter table test drop age;
2 Query OK, 0 rows affected (0.01 sec)
3 Records: 0  Duplicates: 0  Warnings: 0
4
5 mysql> 

删除表

语法

1 drop table [if exists] 表名;

实例

1 mysql> drop table demo;
2 Query OK, 0 rows affected (0.01 sec)
3
4 mysql> 

原文地址:https://www.cnblogs.com/shamao/p/11451749.html

时间: 2024-10-10 02:01:49

MySQL学习——有关表的操作语句的相关文章

MySQL学习——有关数据库的操作语句

MySQL学习——有关数据库的操作语句 摘要:本文主要学习了使用DDL语句对数据库进行操作的方法. 创建数据库 语法 1 create database [if not exists] 数据库名 2 [default] character set 字符集名 3 [default] collate 校对规则名; 实例 1 mysql> create database if not exists demo 2 -> default character set utf8 3 -> defaul

MySql学习 (一) —— 基本数据库操作语句、三大列类型

在使用MySql的时候,基本都是用图形化工具,如navicat.最近发现连最基本的创建表的语法都快忘了... 所以,想要重新系统性的学习下MySql,为后面学习MySql的一些高级查询,MySql性能和SQL语句的优化等打个基础. 用博客来记录下学习的过程,方便以后查阅和加强记忆.有错误的地方还请指出! 一.MySql的基本操作命令 注: <>表示参数.[]表示可选项 连接数据库:mysql> mysql -u<username> -p<password>; 显示

MySQL数据库(3)_MySQL数据库表记录操作语句

附: MYSQL5.7版本sql_mode=only_full_group_by问题 1.查询当前sql_mode: select @@sql_mode 2.查询出来的值为: set @@sql_mode ='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'; 3.修改s

Mysql --库和表的操作

库的增删改查 系统数据库 创建数据库 数据库的相关操作 表的操作 存储引擎介绍(有点多 很啰唆) 表的介绍 表的操作 一.系统数据库 查看系统库: show databases; nformation_schema: 虚拟库,不占用磁盘空间,存储的是数据库启动后的一些参数,如用户表信息.列信息.权限信息.字符信息等performance_schema: MySQL 5.5开始新增一个数据库:主要用于收集数据库服务器性能参数,记录处理查询请求时发生的各种事件.锁等现象mysql: 授权库,主要存储

【PHP+MySQL学习笔记】php操作MySQL数据库中语句

1.连接 MYSQL 服务器的函数 mysql_connect();<?php $con = mysql_connect("localhost","root","123456");if (!$con){ die('Could not connect: ' . mysql_error());}?> 2.选择数据库 <?php mysql_select_db("david", $con);?> 3.执行SQ

mysql学习之内、外连接语句

名词: 内连接:自然连接,只有两个相匹配的行才能在结果集中显示 外连接:左外连接.右连接.全外连接 内连接,只显示满足where后条件的列  select   a.*,b.*   from   a   inner   join   b     on   a.id=b.parent_id 左外连接,select   a.*,b.*   from   a   left   join   b     on   a.id=b.parent_id     左列为主,右表为副表. 右外连接, select 

MySQL学习笔记_10_MySQL高级操作(下)

 MySQL高级操作(下) 五.MySQL预处理语句 1.设置预处理stmt,传递一个数据作为where的判断条件 prepare stmt from "select * from table_name where id > ?"; 2.设置一个变量 set @i = 1; 3.执行预处理语句 execute stmt using @i; 4.删除预处理指令 drop prepare stmt; 六.MySQL事务处理 [注意]MyISAM存储引擎对事务并不支持,应该使用In

MySQL学习笔记_9_MySQL高级操作(上)

 MySQL高级操作(上) 一.MySQL表复制 create table t2 like t1;               #复制表结构,t2可以学习到t1所有的表结构 insert into t2 select * from t1;    #复制表数据,但是这样还是会有缺陷,因为没有考虑到列的对应,因为t1与t2的表结构完全一致,所以此次操作才不会出错! 建议: insert into t3(name) select name from t1; #指定复制的列 二.MySQL索引 1.

在线ER模型设计:可视化MySQL数据库建表及操作

概述 ER模型使用可视化了实体存储的信息,以及直观的呈现了实体与实体的关系,在我们实际的应用系统开发过程中新建ER模型可以更好的理解业务模型,为以后的开发维护工作起到归纳总结的作用. [Freedgo Desgin]()是一款轻松.快速.协作地创建各种专业图表工具.让您在线创建流程图.系统部署图.软件架构图.UML.BPMN.ER模型,DFD,组织图,软件流程图,图表.免费试用.使用Freedgo Design创建数据库ER模型目前支持MySQL及基本的SQL语句建表.后期会进行功能拓展以支持S