129 MySQL表操作

目录

  • 一、表介绍
  • 二、创建表
    • 2.1 语法
    • 2.2建表
  • 三、表中插入数据
    • 3.1 语法
    • 3.2 插数据
  • 四、查看表的结构
    • 4.1 语法
    • 4.2 使用desc/show create table
  • 五、修改表的结构
    • 5.1 语法
    • 5.2 使用
  • 六、删除表

一、表介绍

表就相当于时文件,表中的一条记录就相当于文件的一行内容,不同的是表中的一条记录有对应的标题,称之为表的字段

例子:有一个名为student的文件

id,name,age,sex , course

1 , 张三,17,男,语文

2,李四,18,男,英语

3,王二,19,女,数学

4 刘一 ,18 ,女, 化学

现在我们把上面的文件改为一个表的话,应该是下面的样子

id name age sex course
1 张三 17 语文
2 李四 18 英语
3 王二 19 数学
4 刘一 18 化学

id,name,age,sex,course 称之为上面表的字段,其余的一行内容称之为是一条记录

二、创建表

2.1 语法

create table [数据库名.]表名(字段名1 类型[(宽度) 约束条件],字段名2 类型[(宽度) 约束条件],字段名1 类型[(宽度) 约束条件]);
  • 在同一表中,不能有相同的字段名
  • 宽度和约束条件是可选的
  • 字段名和类型是必须要有的

2.2建表

1.先建一个库mydb
create database mydb; 使用默认字符编码的

2.打开这个mydb数据库,在这个库里创建表t1
use mydb;
create table tb1(id int(1),name varchar(10),age int(2),sex varchar(2),course varchar(8))

# 2.可以不打开表直接在mydb这个库里直接创建表t1
# create table mydb.tb1(id int,name varchar,age int,sex   char,course char);

3.创建表以后显示mydb库里面的所有表
show tables;

4.查看表t1的结构
desc t1;

5.查看表t1中的所有记录
select * from [数据库名.]t1;

6.查看表t1中某个字段的数据
select id,name,age,sex,course from t1;

##################################  cmd终端运行  ##########################################
mysql> create database mydb;
Query OK, 1 row affected (0.00 sec)

mysql> use mydb;
Database changed
mysql> create table t1 (id int(1),name varchar(10),age int(2),sex varchar(2),course varchar(8));
Query OK, 0 rows affected (0.37 sec)

mysql> show tables;
+----------------+
| Tables_in_mydb |
+----------------+
| t1             |
+----------------+
1 row in set (0.00 sec)

mysql> desc t1;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id     | int(1)      | YES  |     | NULL    |       |
| name   | varchar(10) | YES  |     | NULL    |       |
| age    | int(2)      | YES  |     | NULL    |       |
| sex    | varchar(2)  | YES  |     | NULL    |       |
| course | varchar(8)  | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
5 rows in set (0.02 sec)

mysql> select * from t1;
Empty set (0.00 sec)

mysql> select id,name,age,sex,course from t1;
Empty set (0.00 sec)

########################################## end ########################################

三、表中插入数据

3.1 语法

insert [into] [数据库名.]表名[(字段名1,字段名2,字段名3····)] values(字段对应的值)
  • 插入数据时,一条数据的每一个字段都要和最开始创建表时的字段对应
  • 并且输入的数据要和字段的约束类型一致
  • 中括号的字段名是可选的

3.2 插数据

1.在当前数据库时后表插入一条数据,加中括号带字段名的(可省略数据库名.)
use mydb;
insert into t1 (id,name,age,sex,course) values(1,'xichen',18,'女','语文');

2.不在当前数据库的时候,t1表插入一条数据(记录)
insert into mydb.t1(id,name,age,sex,course) values(2,'chen',19,'女','数学');

3.省略字段名,向表t1中添加一条数据
insert into t1 values(3,'xixi',19,'男','数学');

4.一次性向表中添加多条数据
insert into t1 values(4,'haha',19,'女','语文'),
                     (5,'lele',19,'男','英语'),
                     (6,'dada',20,'男','数学');

##################################### cmd ############################################### 

mysql> use mydb;
Database changed
mysql> insert into t1(id,name,age,sex,course) values(1,'xichen',18,'女','语文');
Query OK, 1 row affected, 2 warnings (0.06 sec)

mysql> insert into mydb.t1(id,name,age,sex,course) values (2,'chen',19,'女','数学');
Query OK, 1 row affected, 2 warnings (0.13 sec)

mysql> insert into t1 values(3,'xixi',19,'男','数学');
Query OK, 1 row affected, 2 warnings (0.13 sec)

mysql> insert into t1 values(4,'haha',19,'女','英语'),(5,'lele',19,'男','语文'),(6,'dada',20,'男','数学');
Query OK, 3 rows affected, 6 warnings (0.13 sec)
Records: 3  Duplicates: 0  Warnings: 6
mysql> select * from t1;
+------+--------+------+------+--------+
| id   | name   | age  | sex  | course |
+------+--------+------+------+--------+
|    1 | xichen |   18 | 女   | 语文   |
|    2 | chen   |   19 | 女   | 数学   |
|    3 | xixi   |   19 | 男   | 数学   |
|    4 | haha   |   19 | 女   | 语文   |
|    5 | lele   |   19 | 男   | 英文   |
|    6 | dada   |   20 | 男   | 数学   |
+------+--------+------+------+--------+
6 rows in set (0.00 sec)
######################################  end #############################################

四、查看表的结构

4.1 语法

1. desc [tablename]; 可以查看当前表的结构
虽然desc 方法可以查看当前表的结构,但是他输出的信息还不够全面
2.show creat table 表名[\G];
得到更全面的表定义信息,除了可以看到表定义之外,还可以看到engine(存储引擎)和charset(字符集)等信息。(\G选项的含义是是的记录能够竖向排列,以便更好的显示内容较长的记录。)

4.2 使用desc/show create table

1.显示t1表的结构(desc t1;)
2.显示创建表定义的表结构(show create table t1;)
3.以树状形式显示表的机构(show create table t1\G;)
######################################### cmd ###########################################
mysql> desc t1;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id     | int(1)      | YES  |     | NULL    |       |
| name   | varchar(10) | YES  |     | NULL    |       |
| age    | int(2)      | YES  |     | NULL    |       |
| sex    | char(2)     | YES  |     | NULL    |       |
| course | char(10)    | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
5 rows in set (0.02 sec)

mysql> show create table t1;
+-------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table                                                                                                                                                                                                                                                |
+-------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| t1    | CREATE TABLE `t1` (
  `id` int(1) DEFAULT NULL,
  `name` varchar(10) DEFAULT NULL,
  `age` int(2) DEFAULT NULL,
  `sex` char(2) CHARACTER SET utf8 DEFAULT NULL,
  `course` char(10) CHARACTER SET utf8 DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
+-------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql> show create table t1\G;
*************************** 1. row ***************************
       Table: t1
Create Table: CREATE TABLE `t1` (
  `id` int(1) DEFAULT NULL,
  `name` varchar(10) DEFAULT NULL,
  `age` int(2) DEFAULT NULL,
  `sex` char(2) CHARACTER SET utf8 DEFAULT NULL,
  `course` char(10) CHARACTER SET utf8 DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
1 row in set (0.00 sec)

ERROR:
No query specified
###################################### end ##############################################

五、修改表的结构

5.1 语法

1. 修改表名
alter table 旧表名 rename 新表名;

2.增加表中字段
alter table 表名 add 字段名 数据类型[完整性约束条件····],add···

3.删除表中字段
alter table 表名 drop 字段名;

4.修改表中字段
alter table 表名 MODIFY  字段名 数据类型 [完整性约束条件…];
alter table 表名 change 旧字段名 新字段名 旧数据类型 [完整性约束条件…];
alter table 表名 change 旧字段名 新字段名 新数据类型 [完整性约束条件…];

5.修改字段在表中的排列顺序/在增加的时候指定位置
alter table 表名 add 字段名  数据类型 [完整性约束条件…]  frist;
alter table 表名 add 字段名  数据类型 [完整性约束条件…]  after 字段名;
alter table 表名 change 字段名  旧字段名 新字段名 新数据类型 [完整性约束条件…] frist;
alter table 表名 modify 字段名  数据类型 [完整性约束条件…]  after 字段名;

5.2 使用

1.将t1表名改为t2
alter table t1 rename t2;

2.向t2表中增加hobby字段
alter table t2 add hobby char(8);

3.删除t2表中的hobby字段
alter table t2 drop hobby;

4.把t2表中的course字段的宽度
alter table t2 modify course char(8);

5. 把t2表中的course字段改为class
alter table t2 change course class char(20)

6.把t2表的age字段放在sex字段后
alter table t2 modify age int(2) after sex;

########################################### cmd #########################################
mysql> alter table t1 rename t2;
Query OK, 0 rows affected (1.10 sec)
mysql> alter table t2 add hobby char(8) character set 'utf8';
Query OK, 0 rows affected (0.70 sec)
mysql> alter table t2 drop hobby;
Query OK, 0 rows affected (0.56 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql> alter table t2 modify course char(8);
Query OK, 5 rows affected, 5 warnings (0.97 sec)
Records: 5  Duplicates: 0  Warnings: 5
mysql> alter table t2 change course class char(20) character set 'utf8';
Query OK, 5 rows affected (0.94 sec)
Records: 5  Duplicates: 0  Warnings: 0
mysql> select * from t2;
+------+--------+------+------+-------+
| id   | name   | age  | sex  | class |
+------+--------+------+------+-------+
|    1 | xichen |   18 | 女   | ??    |
|    2 | chen   |   19 | 女   | ??    |
|    3 | xixi   |   19 | 男   | ??    |
|    4 | haha   |   19 | 女   | ??    |
|    6 | dada   |   20 | 男   | ??    |
+------+--------+------+------+-------+
5 rows in set (0.00 sec)
mysql> alter table t2 modify age int(2) after sex;
Query OK, 0 rows affected (0.69 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc t2;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(1)      | YES  |     | NULL    |       |
| name  | varchar(10) | YES  |     | NULL    |       |
| sex   | char(2)     | YES  |     | NULL    |       |
| age   | int(2)      | YES  |     | NULL    |       |
| class | char(20)    | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
5 rows in set (0.02 sec)
####################################### end #############################################

六、删除表

drop table 表名;

原文地址:https://www.cnblogs.com/xichenHome/p/11569143.html

时间: 2024-10-09 18:44:14

129 MySQL表操作的相关文章

Python/MySQL表操作以及连接

Python/MySQL表操作以及连接 mysql表操作: 主键:一个表只能有一个主键.主键可以由多列组成. mysql> create table yuan(id int auto_increment,yuangongname int,bumen_id int, primary key(id,yuangongname))engine=innodb default charset=utf8; Query OK, 0 rows affected (0.43 sec) 外键 :可以进行联合外键,操作

2.MySQL表操作

概览 MySQL数据操作: DML 在MySQL管理软件中,可以通过SQL语句中的DML语言来实现数据的操作,包括 使用INSERT实现数据的插入 UPDATE实现数据的更新 使用DELETE实现数据的删除 使用SELECT查询数据以及. 插入数据insert 1. 插入完整数据(顺序插入) 语法一: INSERT INTO 表名(字段1,字段2,字段3-字段n) VALUES(值1,值2,值3-值n); 语法二: INSERT INTO 表名 VALUES (值1,值2,值3-值n); 2.

MySQL 表操作 (Day40)

一.表介绍 表相当于文件,表中的一条记录就相当于文件的一行内容,不同的是,表中的一条记录有对应的标题,则称为表的字段. id, name, age, qq....称为字段.其余的,一行内容称为一条记录 二.创建表 语法: create table 表名(字段名1 类型,字段名2 类型,字段名3 类型): eg: use db1; #操作该表,需要用use切换到相应的数据库下 create table t1(id int, name char, age int); 语法: create table

mysql表操作( 基础篇)

1.数据库(Database,DB)是按照数据结构来组织.存储和管理数据的,并且是建立在计算机存储设备上的仓库 2.什么是数据库:(用来存储数据的仓库) 数据库: 数据库即存放数据的仓库,只不过这个仓库是在计算机存储设备上,而且数据是按一定的格式存放的 过去人们将数据存放在文件柜里,现在数据量庞大,已经不再适用 数据库是长期存放在计算机内.有组织.可共享的数据即可. 数据库中的数据按一定的数据模型组织.描述和储存,具有较小的冗余度.较高的数据独立性和易扩展性,并可为各种 用户共享 3. 数据库系

mysql表操作之数据操作

一.介绍 在MySQL管理软件中,可以通过SQL语句中的DML语言来实现数据的操作,包括 使用INSERT实现数据的插入 UPDATE实现数据的更新 使用DELETE实现数据的删除 使用SELECT查询数据以及. 二.插入数据INSERT 1. 插入完整数据(顺序插入) 语法一: INSERT INTO 表名(字段1,字段2,字段3-字段n) VALUES(值1,值2,值3-值n); 语法二: INSERT INTO 表名 VALUES (值1,值2,值3-值n); 2. 指定字段插入数据 语法

mysql表操作

表介绍 表相当于文件,表中的一条记录就相当于文件的一行内容,不同的是,表中的一条记录有对应的标题,称为表的字段 id,name,qq,age称为字段,其余的,一行内容称为一条记录 本节重点: 1 创建表 2 查看表结构 3 数据类型 4 表完整性约束 5 修改表 6 复制表 7 删除表 一 创建表 语法: create table 表名( 字段名1 类型[(宽度) 约束条件], 字段名2 类型[(宽度) 约束条件], 字段名3 类型[(宽度) 约束条件] ); 注意: 1. 在同一张表中,字段名

mysql表操作2

完整性约束 介绍 约束条件与数据类型的宽度一样,都是可选参数: 作用:用于保证数据的完整性和一致性: 主要分类: PRIMARY KEY (PK) 标识该字段为该表的主键,可以唯一的标识记录 FOREIGN KEY (FK) 标识该字段为该表的外键 NOT NULL 标识该字段不能为空 UNIQUE KEY (UK) 标识该字段的值是唯一的 AUTO_INCREMENT 标识该字段的值自动增长(整数类型,而且为主键) DEFAULT 为该字段设置默认值 UNSIGNED 无符号 ZEROFILL

mysql表操作之修改

一.修改表 语法: 1. 修改表名 ALTER TABLE 表名 RENAME 新表名; 2. 增加字段 ALTER TABLE 表名 ADD 字段名 数据类型 [完整性约束条件-], ADD 字段名 数据类型 [完整性约束条件-]; ALTER TABLE 表名 ADD 字段名 数据类型 [完整性约束条件-] FIRST; ALTER TABLE 表名 ADD 字段名 数据类型 [完整性约束条件-] AFTER 字段名; 3. 删除字段 ALTER TABLE 表名 DROP 字段名; 4.

mysql数据库从删库到跑路之mysql表操作

表介绍 表相当于文件,表中的一条记录就相当于文件的一行内容,不同的是,表中的一条记录有对应的标题,称为表的字段 id,name,qq,age称为字段,其余的,一行内容称为一条记录 内容: 1 创建表 2 查看表结构 3 数据类型 4 表完整性约束 5 修改表 6 复制表 7 删除表