数据表的操作

创建库
mysql> create database test01;
Query OK, 1 row affected (0.00 sec)
切换至新库
mysql> use test01;
Database changed
创建一个带有主键约束的表
mysql> create table t1(
-> id int(10),
-> name varchar(10) primary key,
-> sex varchar(5),
-> info varchar(200)
-> );
Query OK, 0 rows affected (0.35 sec)
确定创建是否为主键
mysql> desc t1;
+-------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| id | int(10) | YES | | NULL | |
| name | varchar(10) | NO | PRI | NULL | |
| sex | varchar(5) | YES | | NULL | |
| info | varchar(200) | YES | | NULL | |
+-------+--------------+------+-----+---------+-------+
4 rows in set (0.48 sec)
使用主键约束
mysql> create table t2(
-> id int(10),
-> name varchar(10),
-> sex varchar(5),
-> primary key(id)
-> );
Query OK, 0 rows affected (0.00 sec)
确定是否有主键
mysql> desc t2;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(10) | NO | PRI | NULL | |
| name | varchar(10) | YES | | NULL | |
| sex | varchar(5) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
非空约束
mysql> create table t3(
-> id int(6) not null,
-> name varchar(10)
-> );
Query OK, 0 rows affected (0.01 sec)
查看表信息确认
mysql> desc t3;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(6) | NO | | NULL | |
| name | varchar(10) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)
设置值的唯一性
mysql> create table t7(
-> id int not null unique,
-> name varchar(20)
-> );
Query OK, 0 rows affected (0.00 sec)
查看其表结构
mysql> desc t7;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(11) | NO | PRI | NULL | |
| name | varchar(20) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)
设置列的默认值
mysql> create table t4(
-> id int(2) not null,
-> name varchar(20),
-> project varchar(20) default ‘mysql‘
-> );
Query OK, 0 rows affected (0.00 sec)
查看确认
mysql> desc t4;
+---------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| id | int(2) | NO | | NULL | |
| name | varchar(20) | YES | | NULL | |
| project | varchar(20) | YES | | mysql | |
+---------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
设置自新增
mysql> create table t5(
-> id int not null primary key auto_increment,
-> name varchar(20)
-> );
Query OK, 0 rows affected (0.01 sec)
查看表结构进行确认
mysql> desc t5;
+-------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(20) | YES | | NULL | |
+-------+-------------+------+-----+---------+----------------+
2 rows in set (0.00 sec)
测试其自增效果
Mysql> insert into t5(name)values(‘zhangsan’),(‘lisi’);
mysql> select from t5;
+----+----------+
| id | name |
+----+----------+
| 1 | zhangsan |
| 2 | lisi |
+----+----------+
2 rows in set (0.00 sec)
设置自增的起始值
mysql> create table t6(
-> id int primary key auto_increment,
-> name varchar(20)
-> ) auto_increment=5;
Query OK, 0 rows affected (0.01 sec)
插入数据进行测试
mysql> insert into t6(name) values(‘zhangsan‘),(‘lisi‘);
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0
验证其自增值:
mysql> select
from t6;
+----+----------+
| id | name |
+----+----------+
| 5 | zhangsan |
| 6 | lisi |
+----+----------+
2 rows in set (0.00 sec)
ALTER指令的使用
修改列值的数据长度
mysql> desc t1;
+-------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| id | int(10) | YES | | NULL | |
| name | varchar(10) | NO | PRI | NULL | |
| sex | varchar(5) | YES | | NULL | |
| info | varchar(200) | YES | | NULL | |
+-------+--------------+------+-----+---------+-------+
4 rows in set (0.00 sec)
mysql> alter table t1 modify name varchar(20);
Query OK, 0 rows affected (0.01 sec)
Records: 0 Duplicates: 0 Warnings: 0 修改name字段的长度为20

确认修改后的表结构
mysql> desc t1;
+-------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| id | int(10) | YES | | NULL | |
| name | varchar(20) | NO | PRI | NULL | |
| sex | varchar(5) | YES | | NULL | |
| info | varchar(200) | YES | | NULL | |
+-------+--------------+------+-----+---------+-------+
4 rows in set (0.00 sec)
修改字段名

mysql> desc t1;
+-------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| id | int(10) | YES | | NULL | |
| name | varchar(20) | NO | PRI | NULL | |
| sex | varchar(5) | YES | | NULL | |
| info | varchar(200) | YES | | NULL | |
+-------+--------------+------+-----+---------+-------+
4 rows in set (0.00 sec)
mysql> alter table t1 change info infofo char(20); 修改info列的名字及数据类型
Query OK, 0 rows affected (0.01 sec)
Records: 0 Duplicates: 0 Warnings: 0
验证修改后的结果
mysql> desc t1;
+--------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id | int(10) | YES | | NULL | |
| name | varchar(20) | NO | PRI | NULL | |
| sex | varchar(5) | YES | | NULL | |
| infofo | char(20) | YES | | NULL | |
+--------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)
向表中插入一个新的字段
在最后一列插入新列
mysql> desc t3; 确认t3列当前字段
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(6) | NO | | NULL | |
| name | varchar(10) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)
mysql> alter table t3 add tel int(13); 插入一个tel列
Query OK, 0 rows affected (0.11 sec)
Records: 0 Duplicates: 0 Warnings: 0
查看插入后的列

mysql> desc t3;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(6) | NO | | NULL | |
| name | varchar(10) | YES | | NULL | |
| tel | int(13) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
在表格开头插入新列
mysql> alter table t3 add sex char(1)first;
Query OK, 0 rows affected (0.00 sec)
Records: 0 Duplicates: 0 Warnings: 0
在指定的列后面插入新列
mysql> alter table t3 add loc varchar(255) after name;
Query OK, 0 rows affected (0.01 sec)
Records: 0 Duplicates: 0 Warnings: 0
添加字段时添加约束
mysql> alter table t3 add hobyy varchar(255) default ‘work‘;
Query OK, 0 rows affected (0.01 sec)
Records: 0 Duplicates: 0 Warnings: 0
添加一个外键
T1表的结构
mysql> desc t1;
+--------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id | int(10) | YES | | NULL | |
| name | varchar(20) | NO | PRI | NULL | |
| sex | varchar(5) | YES | | NULL | |
| infofo | char(20) | YES | | NULL | |
+--------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)
T3表的结构
mysql> desc t3;
+-------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| sex | char(1) | YES | | NULL | |
| id | int(6) | NO | | NULL | |
| name | varchar(10) | YES | | NULL | |
| loc | varchar(255) | YES | | NULL | |
| tel | int(13) | YES | | NULL | |
| hobyy | varchar(255) | YES | | work | |
+-------+--------------+------+-----+---------+-------+
6 rows in set (0.00 sec)
将t3表的name列添加为t1表的name列的外键
mysql> alter table t3 add constraint t3_t1_name foreign key(name)references t1(name);
Query OK, 0 rows affected (0.01 sec)
Records: 0 Duplicates: 0 Warnings: 0
查看t3表的变化
mysql> desc t3;
+-------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| sex | char(1) | YES | | NULL | |
| id | int(6) | NO | | NULL | |
| name | varchar(10) | YES | MUL | NULL | |
| loc | varchar(255) | YES | | NULL | |
| tel | int(13) | YES | | NULL | |
| hobyy | varchar(255) | YES | | work | |
+-------+--------------+------+-----+---------+-------+
6 rows in set (0.00 sec)
删除外键
mysql> alter table t3 drop foreign key t3_t1_name;
Query OK, 0 rows affected (0.00 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> alter table t3 drop key t3_t1_name;
Query OK, 0 rows affected (0.00 sec)
Records: 0 Duplicates: 0 Warnings: 0
删除列
mysql> alter table t3 drop te1;
ERROR 1091 (42000): Can‘t DROP ‘te1‘; check that column/key exists
mysql> alter table t3 drop tel;
Query OK, 0 rows affected (0.00 sec)
Records: 0 Duplicates: 0 Warnings: 0
修改列的顺序
mysql> alter table t3 modify name varchar(10) first;
Query OK, 0 rows affected (0.00 sec)
Records: 0 Duplicates: 0 Warnings: 0
删除表
mysql> drop table t5; 直接删除
Query OK, 0 rows affected (0.00 sec)
mysql> drop table t5; 再次删除,由于已经删除了,所以表不存在会报错
ERROR 1051 (42S02): Unknown table ‘test01.t5‘
mysql> drop table if exists t5; 进行判断删除,if exists表示如果存在就删除
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> show warnings; 记录的信息时不知道test01库中的t5表
+-------+------+---------------------------+
| Level | Code | Message |
+-------+------+---------------------------+
| Note | 1051 | Unknown table ‘test01.t5‘ |
+-------+------+---------------------------+
1 row in set (0.00 sec)
如果存在关联关系,需先删除关联关系,在删除表。

原文地址:https://blog.51cto.com/14471717/2487271

时间: 04-15

数据表的操作的相关文章

ABAP数据表的操作

这几天对于数据标的操作表较多,自己从网上找资料和自己动手操作总结了一些数据表的增删改查操作,希望对一些初学者有所帮助,仅供参考. 开源的数据库操作都离不开INSERT.UPDATE.MODIFY和DELETE语句.其中当SY-DBCNT返回为0,则表示操作成功,此外还将返回实际操作的数据行数.需要指明的是Open SQL本身并不进行操作权限的检查,若需要进行设定,则要在系统中创建授权对象. 一.INSERT语句Open SQL中的INSERT语句用于向数据库中插入新条目.1.插入单行数据:dbt

Mysql入门到精通之数据表的操作

修改表 ALTER TABLE tb_name; 1.添加字段 ALTER TABLE tb_name ADD 字段名字 字段类型 约束条件 [FIRST/AFTER 字段名称] 1>添加用户名字段 ALTER TABLE test ADD username VARCHAR(20); 2>将字段test添加到表中第一个字段 ALTER TABLE test ADD test VARCHAR(20) FIRST; 3>在id之后添加年龄字段 ALTER TABLE test ADD age

MySQL第五个学习笔记 该数据表的操作

MySQL在创建表,创建.frm文件保存表和列定义.索引存储在一个.MYI(MYindex)且数据存储在有.MYD(MYData)扩展名的文件里.   一.用SHOW/ DESCRIBE语句显示数据表的信息 语法: SHOW TABLES [FROM db_name] [LIKE wild] or SHOW COLUMNS FROM tbl_name [FROM db_name] [LIKE wild] or SHOW INDEX FROM tbl_name [FROM db_name] or

mysql数据库和数据表的操作

1. cmd连接数据库 mysql -hlocalhost -uroot -p123 // mysql -uroot (因为我是本地,并且没有设置密码) 2. 重命名数据表和移动数据表 mysql里面有:数据库samp_db,其下有数据表students,teachers. 现在我要把表移动到school_db下面去,具体操作: 注意:重命名数据库的命令被去除了,rename database 命令被去除了.理由是丢失数据. // 具体原因官网有,但是不能理解 新建数据库:school_db;

T-SQL - 访问远程数据库并对其数据表进行操作

概述 很多时候我们需要在.NET应用程序中使用一条SQL语句来访问来自不同服务器.不同数据库中的不同的表,实现方法有很多.我们可以在.NET应用程序中建立数据访问层,使用ADO.NET Entity Framework将我们的数据库以及数据表抽象成应用程序对象,进而在程序里使用Code来对不同库当中的表进行连接或其他的操作:也可以在数据库级别使用T-SQL脚本直接对不同数据库中的表进行查询或其他操作,前一种方式在这里不做过多介绍,今天介绍一下后一种. 先介绍一下环境,我有2个数据库服务器Serv

MySQL学习3 - 数据表的操作

本节掌握 一.存储引擎(了解) 二.mysql支持的存储引擎 1.InnoDB 存储引擎 2.MyISAM 存储引擎 3.NDB 存储引擎 4.Memory 存储引擎 5.Infobright 存储引擎 6.NTSE 存储引擎 7.BLACKHOLE 8.指定表类型/存储引擎 三.表介绍 四.创建表 本节掌握 存储引擎介绍(了解) 表的增删改查 一.存储引擎(了解) 前几节我们知道mysql中建立的库=>文件夹,库中的表=>文件 现实生活中我们用来存储数据的文件有不同的类型,每种文件类型对应各

MySQL数据表查询操作

准语法结构:编写DQL时一定要严格按照此语法的顺序来实现!/* SELECT [ALL | DISTINCT] ALL表示查询出所有的内容 DISTINCT 去重 {* | 表名.* | 表名.字段名[ AS 别名][,...]} 指定查询出的字段的 FROM 表名[AS 别名][,表1... AS 别名] [INNER | [LEFT | RIGHT] [OUTER] JOIN 另一张表名 [AS 别名] ON 关联条件] [WHERE 条件] [GROUP BY 分组字段[,...]] [H

SQL Server 的数据表简单操作

--创建数据表--[use 要创建数据表的数据库名称go]create table 要创建的表名(字段名 数据类型[长度] [null | not null] [primary key],... ... ... ... ,字段名 数据类型[长度] [null | not null]) 例:use 商品管理数据库gocreate table 客户信息表(客户编号 nchar(8) not null,客户姓名 nvarchar(5) not null,联系电话 nvarchar(11) not nu

数据类型及数据表的操作

原则:选择最合适,而不是最大的数据格式 整形 浮点型 日期时间型 字符型 打开数据库:USE db_name; 查看数据库信息:SHOW DATABASE(); 创建数据表:CREATE TABLE [IF NOT EXISTS] table_name(column_name data_type, ...); 查看数据表:SHOW TABLES [WHER ... LIKE]; 查看数据表结构:SHOW COLUMNS FRON tb1;   DESC tb1; 记录的插入:INSERT [IN

My SQL随记 003 数据表基础操作语法

数据表 查看数据表 修改表名 修改字段名 修改字段数据类型 添加删除-字段 约束(主外键默认检查) 查看表结构: 语法:DESRIBE(描述) table_Name; DESC  table_Name; 语法:show create table table_Name; show create table table_Name \G; 修改表名: 语法:alter table table_Name rename to table_New;  修改字段名: 语法:alter table table_