mysql8.0:添加、修改、删除数据,修改表结构 · 大专栏

您所在的位置:网站首页 mysql如何编辑表 mysql8.0:添加、修改、删除数据,修改表结构 · 大专栏

mysql8.0:添加、修改、删除数据,修改表结构 · 大专栏

2023-07-11 01:09| 来源: 网络整理| 查看: 265

整理:房玉辉

博客:https://ElonJelinek.github.io

基于上一节中创建的 student 表,这一节中,来对 student 表进行进一步的增删改查。

MySQL 的数据类型

最常用的类型:int:整型double:浮点型char:固定长度字符串类型,中文汉字属于字符串类型varchar:可变长度字符串类型,中文汉字属于字符串类型text:字符串类型,存储超大文本date:日期类型,格式为:yyyy-MM-ddtime:时间类型,格式为:hh:mm:sstimestamp:时间戳

表的约束

这里的约束是指在创建表的时候,对表的字段所设置的约束条件,用来限制该列的数据类型和内容

default:默认值not null :非空约束,其值不能为空,不是 0,也不是空字符串””,也可以是 nullunique:唯一性约束,强调该字段所有的值都是唯一的,不允许重复,但允许空值,且可以有多个空值primary key:主键约束,要求该字段数值不能为空,而且数值唯一auto_increment:自增约束,要求该字段不能为空,数值唯一,类型为整型,并根据前一条数据自动加 1

添加数据:

先看一下表的结构:mysql> describe student;

123456789101112 mysql> describe student;+-------+-------------+------+-----+---------+----------------+| Field | Type | Null | Key | Default | Extra |+-------+-------------+------+-----+---------+----------------+| id | int(11) | NO | PRI | NULL | auto_increment || name | varchar(16) | NO | | NULL | || age | int(11) | YES | | NULL | || sex | char(1) | YES | | NULL | |+-------+-------------+------+-----+---------+----------------+4 rows in set (0.01 sec)mysql>

全列插入:

name 和 sex 字段为字符串类型,注意加双引号,英文符号。

插入一行数据:语法:insert into 表名 values(值1,值2,....);演示:insert into student values(9527,"jack",23,"男");

1234 mysql> insert into student values(9527,"jack",23,"男");Query OK, 1 row affected (0.01 sec)mysql>

全列插入的时候,每一列的数据都要填。查询数据:

123456789 mysql> select * from student;+------+------+------+------+| id | name | age | sex |+------+------+------+------+| 9527 | jack | 23 | 男 |+------+------+------+------+1 row in set (0.00 sec)mysql>

同时插入多条数据:语法:insert into 表名 values(值1, 值2,...), (值1, 值2,...),...;演示:insert into student value (9529,"Tom",22,"男"), (9555,"lucy",20,"女"), (0,"liiy",21,"女");value 和 values 均可,一行写不完,可以按回车,在下一行继续写,一般一条数据占一行,即一个括号占一行,以便整洁美观。

12345678910111213141516171819 mysql> insert into student value -> (9529,"Tom",22,"男"), -> (9555,"lucy",20,"女"), -> (0,"liiy",21,"女");Query OK, 3 rows affected (0.09 sec)Records: 3 Duplicates: 0 Warnings: 0mysql> select * from student;+------+------+------+------+| id | name | age | sex |+------+------+------+------+| 9527 | jack | 23 | 男 || 9529 | Tom | 22 | 男 || 9555 | lucy | 20 | 女 || 9556 | liiy | 21 | 女 |+------+------+------+------+4 rows in set (0.00 sec)mysql>

每一条数据用一个英文 () 括起来,两个括号之间,用逗号隔开,字符串类型的值,要加双引号,最后一个括号后面用分号结束。

其中 id 字段为自增长类型,0 用来对自增长的数据占位,表示前一个 id 加 1。

缺省插入

同时插入多条数据:语法:insert into 表名(列1, 列2, ...) values(值1, 值2, ...);演示:insert into student(name,age,sex) values ("梅长苏",28,"男"), ("穆霓凰",26,"女"), ("飞流",17,"男");

12345678910111213141516171819202122 mysql> insert into student(name,age,sex) values -> ("梅长苏",28,"男"), -> ("穆霓凰",26,"女"), -> ("飞流",17,"男");Query OK, 3 rows affected (0.10 sec)Records: 3 Duplicates: 0 Warnings: 0mysql> select * from student;+------+-----------+------+------+| id | name | age | sex |+------+-----------+------+------+| 9527 | jack | 23 | 男 || 9529 | Tom | 22 | 男 || 9555 | lucy | 20 | 女 || 9556 | liiy | 21 | 女 || 9559 | 梅长苏 | 28 | 男 || 9560 | 穆霓凰 | 26 | 女 || 9561 | 飞流 | 17 | 男 |+------+-----------+------+------+7 rows in set (0.00 sec)mysql>

not null和primary key字段必须赋值,其他字段可以省略。

修改数据

语法:update 表名 set 列1=值1,列2=值2,... where 条件

演示:update student set name="Lily" where name="liiy";

123456789101112131415161718 mysql> update student set name="Lily" where name="liiy";Query OK, 1 row affected (0.04 sec)Rows matched: 1 Changed: 1 Warnings: 0mysql> select * from student; +------+-----------+------+------+| id | name | age | sex |+------+-----------+------+------+| 9527 | jack | 23 | 男 || 9529 | Tom | 22 | 男 || 9555 | lucy | 20 | 女 || 9556 | Lily | 21 | 女 || 9559 | 梅长苏 | 28 | 男 || 9560 | 穆霓凰 | 26 | 女 || 9561 | 飞流 | 17 | 男 |+------+-----------+------+------+7 rows in set (0.00 sec)mysql>

删除数据

语法:delete from 表名 where 条件演示:delete from student where id=9555;

1234 mysql> delete from student where id=9555;Query OK, 1 row affected (0.15 sec)mysql> 1234 mysql> delete from student where id=9527 or name="Tom";Query OK, 2 rows affected (0.01 sec)mysql>

修改表结构 添加字段

语法:alter table 表名 add 列名 列类型;演示:alter table student add username varchar(18) not null;演示:alter table student add password varchar(12) default "123456";

修改列类型

语法:alter table 表名 modify 列名 列类型;演示:alter table student modify password varchar(10) default "123456";

修改列名

语法:alter table 表名 change 原列名 新列名 列类型;演示:alter table student change id StudentID int(11) auto_increment;

修改表名称

语法:rename table 原表名 to 新表名;演示:rename table student to students;

演示结果:

1234567891011121314151617181920212223242526272829303132333435363738394041424344 mysql> alter table student add username varchar(18) not null;Query OK, 0 rows affected (0.12 sec)Records: 0 Duplicates: 0 Warnings: 0mysql> alter table student add password varchar(12) default "123456";Query OK, 0 rows affected (0.18 sec)Records: 0 Duplicates: 0 Warnings: 0mysql> alter table student modify password varchar(10) default "123456";Query OK, 4 rows affected (0.20 sec)Records: 4 Duplicates: 0 Warnings: 0mysql> alter table student change id StudentID int(11) auto_increment;Query OK, 4 rows affected (0.05 sec)Records: 4 Duplicates: 0 Warnings: 0mysql> rename table student to students;Query OK, 0 rows affected (0.04 sec)mysql> describe students;+-----------+-------------+------+-----+---------+----------------+| Field | Type | Null | Key | Default | Extra |+-----------+-------------+------+-----+---------+----------------+| StudentID | int(11) | NO | PRI | NULL | auto_increment || name | varchar(16) | NO | | NULL | || age | int(11) | YES | | NULL | || sex | char(1) | YES | | NULL | || username | varchar(18) | NO | | NULL | || password | varchar(10) | YES | | 123456 | |+-----------+-------------+------+-----+---------+----------------+6 rows in set (0.00 sec)mysql> select * from students;+-----------+-----------+------+------+----------+----------+| StudentID | name | age | sex | username | password |+-----------+-----------+------+------+----------+----------+| 9556 | Lily | 21 | 女 | | 123456 || 9559 | 梅长苏 | 28 | 男 | | 123456 || 9560 | 穆霓凰 | 26 | 女 | | 123456 || 9561 | 飞流 | 17 | 男 | | 123456 |+-----------+-----------+------+------+----------+----------+4 rows in set (0.00 sec)mysql>

注意 add 添加列不会影响数据,更改表的名称也不会影响到数据,而 modify 修改列类型,change 修改列名都会影响到数据,所以当表中有数据的时候,修改列名和列类型的时候要格外注意。

补充内容 删除字段

语法:alter table 表名 drop 列名;演示:alter table userinfo drop age;

1234567 mysql> alter table userinfo drop telephone;Query OK, 0 rows affected (0.15 sec)Records: 0 Duplicates: 0 Warnings: 0mysql> alter table userinfo drop age;Query OK, 0 rows affected (0.30 sec)Records: 0 Duplicates: 0 Warnings: 0

删除主键 12345 mysql> alter table userinfo drop primary key;Query OK, 1 row affected (0.16 sec)Records: 1 Duplicates: 0 Warnings: 0mysql> 添加主键 12345 mysql> alter table userinfo add primary key(name,username);Query OK, 0 rows affected (0.52 sec)Records: 0 Duplicates: 0 Warnings: 0mysql>

删除表

123456789101112131415161718 show tables;+------------------+| Tables_in_myblog |+------------------+| album || article || userinfo || users |+------------------+4 rows in set (0.05 sec) drop table album;Query OK, 0 rows affected (0.13 sec) drop table users;Query OK, 0 rows affected (0.10 sec)

版权声明:博客中的文章版权归博主所有,未经授权,禁止转载,转载请注明出处,合作请点击 “关于我”,扫码添加微信



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3