mysql数据库-表的基本操作【初学版笔记】

it2024-01-18  64

文章目录

表1.创建2.查看查看信息查看结构通过命令提示符创建表3.修改修改表选项修改结构1.修改字段名2.修改字段类型3.修改字段位置4.新增字段5.删除字段 4.删除命令提示窗口中删除数据表

1.创建
create [temporary] table [if not exists] 表名 (字段名 字符类型 [字段属性]...)[表选项] temporary-表示临时表,仅在此会话中出现,关闭就会自动删除字段名-就是数据表的列名字符类型就是字段中保存的数据类型字段属性-就是约束条件

创建MySQL数据表需要以下信息:

表名表字段名定义每个表字段

以下为创建MySQL数据表的SQL通用语法:

CREATE TABLE table_name (column_name column_type);

实例:

以下例子中我们将在 RUNOOB 数据库中创建数据表runoob_tbl:

CREATE TABLE IF NOT EXISTS `runoob_tbl`( `runoob_id` INT UNSIGNED AUTO_INCREMENT, `runoob_title` VARCHAR(100) NOT NULL, `runoob_author` VARCHAR(40) NOT NULL, `submission_date` DATE, PRIMARY KEY ( `runoob_id` ) )ENGINE=InnoDB DEFAULT CHARSET=utf8;

实例解析:

如果你不想字段为 NULL 可以设置字段的属性为 NOT NULL, 在操作数据库时如果输入该字段的数据为NULL ,就会报错。AUTO_INCREMENT定义列为自增的属性,一般用于主键,数值会自动加1。PRIMARY KEY关键字用于定义列为主键。 您可以使用多列来定义主键,列间以逗号分隔。ENGINE 设置存储引擎,CHARSET 设置编码。
2.查看
语法: SHOW TABLES [ LIKE 匹配模式];

匹配模式符:

1. “%” -----匹配一个或多个,任意长度字符串 2. “_” -----只能匹配一个字符 注意:匹配模式必须用单引号和双引号包裹 # 为一个叫mydb数据库再添加一张数据表new_goods CREATE TABLE new_goods ( id INT COMMENT '编号', name VARCHAR(32) COMMENT '商品名', price INT COMMENT '价格', description VARCHAR(255) COMMENT '商品描述' ); # ①查看所有数据表 SHOW TABLES; # ② 查看名称中含有new的数据表 SHOW TABLES LIKE '%new%';
查看信息
# 查看叫mydb数据库下含有new的数据表的详细信息 SHOW TABLE STATUS FROM mydb LIKE '%new%'\G

注意:\G 在MySQL中才有用哦

查看结构

1.查看字段

语法1查看所有字段: DESC 数据表名; 语法2查看所选字段: DESC 数据表名 字段名; # ① 所有字段 DESC my_goods; # ② name字段 DESC my_goods name;

2.查看表的创建语句

语法: SHOW CREATE TABLE 表名; # 查看my_goods数据表的创建语句 SHOW CREATE TABLE my_goods \G

3.查看表的结构

语法1SHOW [ FULL] COLUMNS FROM 数据表名 [FROM 数据库名]; 语法2SHOW [ FULL] COLUMNS FROM 数据库名.数据表名; # 查看my_goods数据表结构的详细信息 SHOW FULL COLUMNS FROM my_goods;

可选项FULL表示显示详细内容,添加后可以看到DESC语句所查看的也可以查看到字段权限、COMMENT字段的注释信息等。

通过命令提示符创建表

通过 mysql> 命令窗口可以很简单的创建MySQL数据表。你可以使用 SQL 语句 CREATE TABLE 来创建数据表。

实例 以下为创建数据表 runoob_tb1实例:

root@host# mysql -u root -p Enter password:******* mysql> use RUNOOB; Database changed mysql> CREATE TABLE runoob_tbl( runoob_id INT NOT NULL AUTO_INCREMENT, runoob_title VARCHAR(100) NOT NULL, runoob_author VARCHAR(40) NOT NULL, submission_date DATE, PRIMARY KEY ( runoob_id ) )ENGINE=InnoDB DEFAULT CHARSET=utf8; Query OK, 0 rows affected (0.16 sec) mysql>

注意: MySQL命令终止符为分号 ; 。 注意: -> 是换行符标识,不要复制。


实例:

#1.创建mydb库 create database mydb; #2.选择数据库 use mydb; #3.创建goods数据表 create table goods( id int comment'编号', name varchar(32) comment '商品名', price int comment '价格', description varchar(255) comment '商品属性' );

注意

使用数据表时可以用 use 库名 指定操作的数据库,否则抛出No database selected的错误(不是必须使用use 库名)当然也可以使用库名.表名的形式。 # 省略②,修改③创建goods数据表 CREATE TABLE mydb.goods ( id INT COMMENT '编号', name VARCHAR(32) COMMENT '商品名', price INT COMMENT '价格', description VARCHAR(255) COMMENT '商品描述' ); 为避免一库多用造成的数据表重复,给数据表添加一个前缀吧,例如goods------mydb_goods等
3.修改
语法1ALTER TABLE 旧表名 RENAME [ TO|AS ] 新表名; 语法2RENAME TABLE 旧表名 1 TO 新表名 1[,旧表名 2 TO 新表名 2 ]... # 将new_goods表的名称修改为my_goods RENAME TABLE new_goods TO my_goods; # 查看所有数据表 SHOW TABLES;
修改表选项
语法: ALTER TABLE 表名 表选项 [=]; # ① 将my_goods数据表的字符集改为utf8 ALTER TABLE my_goods CHARSET = utf8; # ② 查看修改结果 SHOW CREATE TABLE my_goods \G
修改结构
1.修改字段名
语法:ALTER TABLE 数据表名 CHANGE[COLUMN] 旧字段名 新字段名 字段类型 [字段属性]; # ① 将my_goods数据表中名为description的字段修改为des ALTER TABLE my_goods CHANGE description des VARCHAR(255); # ② 查看字段名的修改情况 DESC my_goods;
2.修改字段类型
语法:ALTER TABLE 数据表名 MODIFY [COLUMN] 字段名 新类型 [字段属性]; ALTER TABLE my_goods MODIFY des CHAR(255); # ② 查看字段类型的修改情况 DESC my_goods des;
3.修改字段位置
语法:ALTER TABLE 数据表名 MODIFY [COLUMN] 字段名1 数据类型 [字段属性] [FIRST | AFTER 字段名2]; # ① 将my_goods表中最后一个字段des移动到name字段后 ALTER TABLE my_goods MODIFY des VARCHAR(255) AFTER name; # ② 查看字段位置的修改结果 DESC my_goods;
4.新增字段
语法: ALTER TABLE 数据表名 ADD [COLUMN] (新字段名1 字段类型1,新字段名2 字段类型2...) # ① 在my_goods数据表中字段name后新增一个num字段,表示商品的数量 ALTER TABLE my_goods ADD num INT AFTER name; # ② 查看新增的字段 DESC my_goods;
5.删除字段
ALTER TABLE 数据表名 DROP [COLUMN] 字段名; # ① 删除my_goods数据表中num字段 ALTER TABLE my_goods DROP num; # ② 看删除num字段后数据表中的字段 DESC my_goods;
4.删除
语法:DROP [TEMPORARY] TABLE [IF EXISTS] 数据表1 [, 数据表2] ...; # 删除数据表my_goods DROP TABLE IF EXISTS my_goods;

删除数据表是非常容易操作的, 但是你在进行删除表操作时要非常小心,因为执行删除命令后所有数据都会消失。


命令提示窗口中删除数据表

在mysql>命令提示窗口中删除数据表SQL语句为 DROP TABLE :

以下实例删除了数据表runoob_tbl:

mysql> use RUNOOB; Database changed mysql> DROP TABLE runoob_tbl Query OK, 0 rows affected (0.8 sec) mysql>
最新回复(0)