1.MySQL常见的数据类型
1)常用的数据类型:
类型 | 描述 |
int | 整型 |
double | 浮点型 |
varchar | 字符串型 |
date | 日期类型, 格式为yyyy-MM-dd, 只有年月日, 没有时分秒 |
2) 详细的数据类型(了解即可)
注意:MySQL中的char类型与varchar类型,都对应了Java中的字符串类型,区别在于:
char类型是固定长度的: 根据定义的字符串长度分配足够的空间
varchar类型是可变长度的: 只使用字符串长度所需的空间
比如:保存字符串"abc"
x char(10) 占用10个字节
y varchar(10) 占用3个字节
. 适用场景:
char类型:适合储存 固定长度的字符串, 比如 密码、 性别一类
varchar类型:适合储存 在一定范围内,有长度变化的字符串
2. 创建表
语法格式:
CREATE TABLE 表名 (
字段名称1 字段类型 (长度)
字段名称2 字段类型 注意 最后一列不要加逗号
);
需求1: 创建商品分类表
表名:category
表中字段:
分类ID:cid,为整型
分类名称:cname,为字符串类型,指定长度20
SQL实现
-- 切换到数据库 db1 USE db1; -- 创建表 CREATE TABLE category( cid INT, cname VARCHAR(20) );
需求2:创建测试表
表名:test1
表中字段:
测试ID:tid,为整型
测试时间:tdate,为年月日的日期类型
SQL实现 -- 创建测试表 CREATE TABLE test1 ( tid INT, tdate DATE );
需求3:快速创建一个表结构相同的表(复制表结构)
语法格式:
create table 新表名 like 旧表名
代码示例
-- 创建一个表结构与 test1 相同的 test2 表 CREATE TABLE test2 LIKE test1; -- 查看表结构 DESC test2;
3. 查看表
show tables; | 查看当前数据库中的所有表名 |
desc 表名; | 查看数据表的结构 |
代码示例
-- 查看当前数据库中的所有表名 SHOW TABLES; -- 显示当前数据表的结构 DESC category; -- 查看创建表的SQL语句 SHOW CREATE TABLE category;
4.删除表
drop table 表名; | 删除表(从数据库中永久删除某一张表) |
drop table if exists 表名; | 判断表是否存在,存在的话就删除,不存在就不执行删除 |
代码示例
-- 直接删除test1 表 DROP TABLE test1; -- 先判断 再删除test2表 DROP TABLE IF EXISTS test2;
5. 修改表
1) 修改表名
语法格式
rename table 旧表名 to 新表名
需求: 将category表 改为 category1
RENAME TABLE category TO category1;
2) 修改表的字符集
语法格式
alter table 表名 character set 字符集
需求:将category表的字符集修改为gbk
alter table category character set gdk;
3) 向表中添加列,关键字ADD
语法格式:
alter table 表名 add 字段名称 字段类型
需求: 为分类表添加一个新的字段为 分类描述 cdsec varchar(20)
# 为分类表添加一个新的字段为 分类描述 cdesc varchar(20) ALTER TABLE category ADD cdesc VARCHAR(20);
4) 修改表中列的 数据类型或长度, 关键字 MODIFY
语法格式
alter table 表名 modify 字段名称 字段类型
需求: 对分类表的描述字段进行修改,类型varchar(50)
ALTER TABLE category MODIFY cdesc VARCHAR(50);
5) 修改列名称,关键字 CHANGE
语法格式
alter table 表名 change 旧列名 新列名 类型(长度);
需求: 对分类表中的desc字段进行更换,更换为 description varchar(30)
ALTER TABLE category CHANGE cdesc description VARCHAR(30);
6) 删除列 --> 关键字DROP
语法格式
alter table 表名 drop 列名;
需求: 删除分类表中description这列
ALTER TABLE category DROP description;