创建数据库
基础语法:CREATE DATABASE data_name;
data_name: 数据库名称
例:
查看已有的库
SHOW DATABASES;
删除数据库
语法:DROP DATABASE data_name;
data_name: 数据库名称
创建表
选择数据库 : use test;
创建表 : CREATE TABLE table_name(column_name column_type)
CREATE TABLE IF NOT EXISTS
order_info(
idINT UNSIGNED AUTO_INCREMENT COMMENT "主键",
order_nameVARCHAR(50) NOT NULL COMMENT "商品名称",
create_timedatetime DEFAULT NULL COMMENT "创建时间", PRIMARY KEY(
id) )ENGINE=INNODB DEFAULT CHARSET=utf8 COMMENT "测试表";
说明:
AUTO_INCREMENT:自增属性,一般用于主键,数值会自动加1。
NULL: 代表字段的值可以为null,若不想字段为null可以设置为 NOT NULL。
PRIMARY KEY:定义某一列为主键,多个可以用逗号隔开
ENGINE:设置存储引擎
CHARSET: 设置字符集
COMMENT:注释
查看已创建的表:SHOW TABLES;
修改表名
语法:ALTER TABLE <old_name> RENAME [TO] <new_name>;
TO 为可选参数,使用与否均不影响结果。
ALTER TABLE order_info RENAME TO
order;``
修改表的字符集
语法:ALTER TABLE 表名 [DEFAULT] CHARACTER SET <字符集名> [DEFAULT] COLLATE <校对规则名>;
将order 表的字符集修改为utf8mb4 规则修改为utf8mb4_general_ci;
例如:ALTER TABLE
orderCHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_general_ci;
查看是否已修改:SHOW CREATE TABLE
order;
表添加字段
查看表结构
DESC table_name;
在最后一列添加字段
语法:ALTER TABLE <表名> ADD <新字段名><数据类型>[约束条件];
ALTER TABLE
orderADD price DECIMAL(5,2) COMMENT "价格";
在第一列添加字段
语法:ALTER TABLE <表名> ADD <新字段名> <数据类型> [约束条件] FIRST;
ALTER TABLE
orderADD order_id INT COMMENT "id" FIRST;
在指定的字段后添加字段
语法:ALTER TABLE <表名> ADD <新字段名> <数据类型> [约束条件] AFTER <已经存在的字段名>;
注意: 只能在某个已有字段的后面添加新字段,不能在它的前面添加新字段。
ALTER TABLE
orderADD status CHAR AFTER order_name;
修改字段名称
语法:ALTER TABLE <table_name> CHANGE <旧字段名> <新字段名> <新数据类型>;
- 旧字段名称 修改前的字段名
- 新字段名称:修改后的字段名
- 新数据类型: 指修改后的数据类型,如果不需要修改字段的数据类型,可以将新数据类型设置与原来一样,但数据类型不能为空
ALTER TABLE
orderCHANGE order_id orderId INT;
修改字段数据类型
语法:ALTER TABLE <表名> MODIFY <字段名> <数据类型>
字段名:指需要修改的字段;
数据类型:指修改后字段的新数据类型。
ALTER TABLE
orderMODIFY orderId BIGINT;
删除字段
ALTER TABLE <表名> DROP <字段名>;
ALTER TABLE
orderDROP orderId;
删除数据表
DROP TABLE [IF EXISTS] table_name
[,table_name2,table_name3]
清空表记录
TRUNCATE TABLE table_name
TRUNCATE 和 DELETE 的区别
- DELETE是DML类型的语句;TRUNCATE是DDL类型的语句,两者都是用来清空表中的数据。
- DELETE是逐行一条一条的删除记录的,TRUNCATE则是直接删除原来的表,再重新后创建一个一模一样的新表,而不是逐行删除表中的数据,执行数据比DELETE快。
- DELETE 删除数据后,配合事务回滚可以找回数,TRUNCATE不支持事务的回滚,数据删除后无法找回。
- DELETE删除数据后,系统不会重新设置自增字段的计数器;TRUNCATE清空表记录后,系统会重新设置自增字段的计数器。
- DELETE 可以通过WHERE子语句指定的条件来删除部分数据;TRUNCATE 不支持WHERE字句只能删除整体,
当不需要该表时,用DROP;当需要保留该表,弹药清空所有记录时用 TRUNCATE;只删除部分数据使用 DELETE