数据库学习2-操作表、修改列


上一节 链接: 数据库学习1-操作数据库表


一、操作表

在这里插入图片描述

mysql> use abc001; -- 使用一个数据库
Database changed
mysql> select database();  -- 查案当前数据库
+------------+
| database() |
+------------+
| abc001     |
+------------+
1 row in set (0.00 sec)
mysql> show tables; -- 查看表 默认一个新的数据库下面的表是空的
Empty set (0.00 sec)
mysql> create table student(id int,name varchar(37),age int); -- 创建一个表
Query OK, 0 rows affected (0.00 sec)
mysql> show tables; -- 查看表
+------------------+
| Tables_in_abc0
+------------------+
| student          |
+------------------+
2 rows in set (0.00 s
mysql> desc student; -- 查看列
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(11)     | YES  |     | NULL    |       |
| name  | varchar(37) | YES  |     | NULL    |       |
| age   | int(11)     | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

1.C(Create):创建

  • 语法;
create table 表名(
列名1 数据类型1,
列名2 数据类型2...
列名n 数据类型n
);-- 在创建一个数据表的时候,必须加上列名和数据类型,不然会报错;

create table stu6(id int(100) PRIMARY key,name VARCHAR(255)); 创建带有主键的表;
  • 注意:最后一列,不需要加逗号(,)

数据类型:

1.int:整数类型

age int-- 用的最多的 默认字符是11个,可以自己手动添加 age int(99); 最大 255

2.double:小数类型

score duoble(73-- 前面大于等于后面
ERROR 1427 (42000): For float(M,D), double(M,D) or decimal(M,D), M must be >= D (column 'score').

3.date:日期

只包含年月日,yyyy-MM-dd

4.datatime:日期

包含年月日时分秒 ,yyyy-MM-dd HH:mm;ss

5.timestamp:时间类型

包含年月日时分秒 yyyy-MM-dd HH:mm;ss

如果将来不给这个字段赋值,或赋值为null,则默认使用当前的系统时间,来自动赋值

6.varchar:字符串

name varchar(20):姓名最大20的字符 -- varchar后必须定义字符长度,不然会报错
cainiao 7个字符 张三 2个字符
char 
  • 创建表
create table student(
id int,
name varchar(37),
age int,
score double(4,1),
birthday date,
insert_time timestamp
);

create table student(id int(99),name varchar(37),score double(4,1),birthday date,insert_time timestamp);
  • 复制表:
create table 表名 like 被复制的表名
mysql> create table abc004 like abc; -- like 复制表,会把表中的数据完整复制下来;
Query OK, 0 rows affected (0.15 sec)
mysql> show tables;
+------------------+
| Tables_in_abc001 |
+------------------+
| ab001            |
| abc              |
| abc004           |
+------------------+
3 rows in set (0.00 sec)

2.R(Retrieve):查询

(1) 查询某个数据库中所有的表名称

show tables-- 查询表

在这里插入图片描述

(2)查询表结构

desc 表名;-- 查询表中的列结构

在这里插入图片描述

3.U(Update):修改

(1).修改表名

alter table 表名 rename to 新的表名;
mysql> alter table abc rename to abc002; -- 修改表名
Query OK, 0 rows affected (0.12 sec)

mysql> show tables;
+------------------+
| Tables_in_abc001 |
+------------------+
| ab001            |
| abc002           |
| abc004           |
+------------------+
3 rows in set (0.00 sec)

(2).修改表的字符集

alter table 表名 character set 字符集名称;

4.D(Delete):删除

drop table 表名;
drop table if exists 表名;//先判断再删除
mysql> drop table abc002; -- drop 删除表
Query OK, 0 rows affected (0.01 sec)
mysql> show tables;
+------------------+
| Tables_in_abc001 |
+------------------+
| ab001            |
| abc004           |
+------------------+
2 rows in set (0.00 sec)

二、修改列

在这里插入图片描述

1.添加一列

alter table 表名 add 列名 数据类型;
mysql> alter table abc01 add l varchar(49); -- 在表中新添加一列;
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0

2.修改列名称 类型

alter table 表名 change 列名 新列名 新数据类型;
alter table 表名 modify 列名 新数据类型;
mysql> alter table abc01 change name name varchar(99); -- 这里使用change修改列的数据类型,列名可以和新列名相同
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql> alter table abc01 modify password varchar(89); -- 使用modify去修改列名;
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc abc01;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(11)     | NO   |     | NULL    |       |
| name     | varchar(99) | YES  |     | NULL    |       |
| password | varchar(89) | YES  |     | NULL    |       |
| l        | varchar(49) | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)

3.删除列

alter table 表名 drop 列名;
mysql> alter table abc01 drop id; -- 删除表中的一列数据
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0
desc stu;  -- 查看列信息

4.查看列

desc stu -- 查看列

  • 17
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值