MySQL数据库应用(11)DML之表和字段

一、删除表中数据

    1、实践删除表中的数据

        1)命令语法:delete from 表名 where 表达式

          a.实践,例如:删除表test中编号为1的记录

mysql> use oldboy
Database changed
mysql> select * from test;
+----+-----------+
| id | name      |
+----+-----------+
|  1 | oldboy    |
|  2 | oldgirl   |
|  3 | inca      |
|  4 | zuma      |
|  5 | kaka      |
|  6 | xiaozhang |
+----+-----------+
6 rows in set (0.00 sec)

mysql> delete from test where id=1;
Query OK, 1 row affected (0.01 sec)

mysql> select * from test;
+----+-----------+
| id | name      |
+----+-----------+
|  2 | oldgirl   |
|  3 | inca      |
|  4 | zuma      |
|  5 | kaka      |
|  6 | xiaozhang |
+----+-----------+
5 rows in set (0.00 sec)

mysql> delete from test where id>3;
Query OK, 3 rows affected (0.00 sec)

mysql> select * from test;
+----+---------+
| id | name    |
+----+---------+
|  2 | oldgirl |
|  3 | inca    |
+----+---------+
2 rows in set (0.00 sec)

提示:不加条件就是全部删除,也是非常危险的操作,delete from test

        命令:truncate table 表名

        truncate table test;#清空表中所有内容

mysql> select * from test;
+----+---------+
| id | name    |
+----+---------+
|  2 | oldgirl |
|  3 | inca    |
+----+---------+
2 rows in set (0.00 sec)

mysql> truncate table test;
Query OK, 0 rows affected (0.00 sec)

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

mysql> 

        truncate table test;和delete from test;区别

        1、truncate table test;更快。清空物理文件。

        2、delete from test;逻辑清除,按行删。

二、增删改表的字段

    1、命令语法及默认添加演示

        1)命令语法:alter table 表名 add 字段 类型 其他

        2)测试表数据

mysql> desc test;
+-------+----------+------+-----+---------+----------------+
| Field | Type     | Null | Key | Default | Extra          |
+-------+----------+------+-----+---------+----------------+
| id    | int(4)   | NO   | PRI | NULL    | auto_increment |
| name  | char(20) | NO   |     | NULL    |                |
| sex   | char(4)  | YES  |     | NULL    |                |
+-------+----------+------+-----+---------+----------------+
3 rows in set (0.00 sec)

默认添加到末尾

mysql> alter table test add age int(4) after name;
Query OK, 0 rows affected (0.00 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc test;
+-------+----------+------+-----+---------+----------------+
| Field | Type     | Null | Key | Default | Extra          |
+-------+----------+------+-----+---------+----------------+
| id    | int(4)   | NO   | PRI | NULL    | auto_increment |
| name  | char(20) | NO   |     | NULL    |                |
| age   | int(4)   | YES  |     | NULL    |                |
| sex   | char(4)  | YES  |     | NULL    |                |
+-------+----------+------+-----+---------+----------------+
4 rows in set (0.00 sec)

这里只有俩种思想:1、添加到开头用参数 first          2、添加到中间或末尾 after  没有before

三、更改表名

    1、rename 法

        1)命令语法:rename table 原表名 to 新表名;

mysql> show tables
    -> ;
+------------------+
| Tables_in_oldboy |
+------------------+
| SC               |
| course           |
| student          |
| test             |
+------------------+
4 rows in set (0.00 sec)

mysql> rename table test to test1;
Query OK, 0 rows affected (0.01 sec)

mysql> show tables;
+------------------+
| Tables_in_oldboy |
+------------------+
| SC               |
| course           |
| student          |
| test1            |
+------------------+
4 rows in set (0.00 sec)

mysql> 

    2、alter法

mysql> show tables;
+------------------+
| Tables_in_oldboy |
+------------------+
| SC               |
| course           |
| student          |
| test1            |
+------------------+
4 rows in set (0.00 sec)

mysql> alter table test1 rename to test;
Query OK, 0 rows affected (0.00 sec)

mysql> show tables;
+------------------+
| Tables_in_oldboy |
+------------------+
| SC               |
| course           |
| student          |
| test             |
+------------------+
4 rows in set (0.00 sec)

mysql> 

原文地址:https://www.cnblogs.com/cnxy168/p/11637771.html

时间: 2024-10-12 21:48:21

MySQL数据库应用(11)DML之表和字段的相关文章

mysql数据库同步可以针对单张表同步吗?解决办法

mysql数据库同步可以针对单张表同步吗?第一个问题:mysql数据库同步可以针对单张表同步吗? 也就是说1.数据库A里面有a1,a2,a3三张表,数据库B里面只有一张a1表(A与B的a1的表结构式一样的)2.数据库B只同步数据库A中的a1表3.数据库A也要同步B的a1表 注:其实可以认为是数据库A与数据库B的a1表双向同步,即A数据库a1数据有改变,,B数据库a1也要相应改变,同理B数据库a1有改变,A数据库a1也要改变(Aa1<=>Ba1) 第二个问题:配置数据库同步linux与windo

获取sqlserver数据库中所有库、表、字段名的方法

1.获取所有数据库名: SELECT Name from Master..SysDatabases ORDER BY Name 2.获取所有表名: SELECT Name from DatabaseName..SysObjects Where XType='U' ORDER BY Name XType='U':表示所有用户表; XType='S':表示所有系统表; 3.获取所有字段名: SELECT Name from SysColumns WHERE id=Object_Id('TableNa

mysql数据库导入导出 查询 修改表记录

mysql数据导入导出: 导入: 把系统的文件的内容,保存到数据库的表里 导入数据的基本格式:mysql> load data infile "文件名" into table 表名 fields terminated by '分隔符' lines terminated by '\n'; 实例:把系统用户信息保存到hydra01库下的userinfo表里 mysql> create table userinfo(name char(20),password char(1),u

mysql数据库---同时插入两个表以上的数据

mysql数据库问题,如何同一个操作添加两个表(a表,b表),并把b表的id添加到a表字段中,b表id自动增长 在数据库中创建存储过程,比如存储过程的名字叫做 test在java中和正常使用sql的方法一样, sql = "call test(B1,B2)", B1和B2是假设你将要插入b表中的数据 假设b表的结构是(ID int auto_incremet, B1 int, B2 int)假设a表的结构是(ID int) CREATE test(B1 int, B2 int) #假设

Mysql数据库常用分库和分表方式

1 分库 1.1 按照功能分库 按照功能进行分库.常见的分成6大库: 1 用户类库:用于保存了用户的相关信息.例如:db_user,db_system,db_company等. 2 业务类库:用于保存主要业务的信息.比如主要业务是笑话,用这个库保存笑话业务.例如:db_joke,db_temp_joke等. 3 内存类库:主要用Mysql的内存引擎.前台的数据从内存库中查找,速度快.例如:heap. 4 图片类库:主要保存图片的索引以及关联.例如:db_img_index,db_img_res.

MySQL 数据库中如何把A表的数据插入到B表?

web开发中,我们经常需要将一个表的数据插入到另外一个表,有时还需要指定导入字段,设置只需要导入目标表中不存在的记录,虽然这些都可以在程序中拆分成简单sql来实现,但是用一个sql的话,会节省大量代码. 以mysql数据库为例分情况一一说明: 两张表:insertTest和insertTest2,前者中有测试数据 create table insertTest(id int(4),name varchar(12));insert into insertTest values(100,'tom')

MySQL数据库篇之完整性约束和表关系

主要内容: 一.完整性约束 二.表关系 1?? 完整性约束 (1)何为完整性约束? 约束条件与数据类型的宽度一样,都是可选参数. 作用:用于保证数据的完整性和一致性 (2)分类主要有以下五类: 1.not null 与 default 2.unique 3.primary key 4.auto_increment 5.foreign key PRIMARY KEY (PK) 标识该字段为该表的主键,可以唯一的标识记录 FOREIGN KEY (FK) 标识该字段为该表的外键 NOT NULL 标

Django使用Mysql数据库已经存在的数据表方法

源地址:https://www.jb51.net/article/140939.htm 使用scrapy爬取了网上的一些数据,存储在了mysql数据库中,想使用Django将数据展示出来,在网上看到都是使用Django的models和makemigration,migrate命令来创建新表,并使用. 可是我的数据已经存在了已经创建好,并且已经存储有数据了,不能再重新创建新表了. 了解Django的表明和models名称的映射关系就可以让Django使用已经存在的表. 假如在Django存在mod

MySQL数据库 外键,级联, 修改表的操作

1.外键: 用来建立两张表之间的关系 - 一对多 - 多对多 - 一对一 研究表与表之间的关系: 1.定义一张 员工部门表 id, name, gender, dep_name, dep_desc - 将所有数据存放在一张表中的弊端: 1.结构不清晰 ---> 不致命 2.浪费空间 ---> 不致命 3.可扩展性极差 ---> 不可忽视的弊端 - 类似于将所有python代码存放在一个py文件中,强耦合到一起了----> 解耦合 ----> 拆分表 - 拆分表解决以上问题.