MySQL:数据类型&建表

问题:我想建一个名为create和database的库可以吗?

如果按照一般的类型来建带有关键字的库

就会出现报错

如果我们这样写的话:`关键词 `,则会建库成功。

选择要进行操作的数据库

use+数据库

判断选择的库是否成功

删除数据库

drop database [if exists] 数据库名;

发现create这个库不见了,则说明删库成功。

注:删除数据库是一个非常危险的操作,在公司中千万不要这样做,使用时一定要慎重!!!

如何查看MySQL的帮助?

输入   \?

数据类型

数值类型

数据类型
大小
说明
对应java类型
BIT[ (M) ]
数,默认
M指定位
1
二进制数,M范围从164
存储数值范围从02^M-1
常用Boolean对应BIT,此时
默认是1位,即只能存01
TINYINT
1字节
Byte
SMALLINT
2字节
Short
INT
4字节
Integer
BIGINT
8字节
Long
FLOAT(M, D)
4字节
单精度,M指定长度,D指定
小数位数。会发生精度丢失
Float
DOUBLE(M,
D)
8字节
Double
DECIMAL(M,
D)
M/D最大
+2
双精度,M指定长度,D表示
小数点位数。精确数值
BigDecimal
NUMERIC(M,
D)
M/D最大
+2
DECIMAL一样
BigDecimal

字符串类型

数据类型
大小
说明
对应Java类型
VARCHAR (SIZE)
0-65,535字节
可变长度字符串
String
TEXT
0-65,535字节
长文本数据
String
MEDIUMTEXT
0-16 777 215字节
中等长度文本数据
String
BLOB
0-65,535字节
二进制形式的长文本数据
byte[ ]

注: 

定义一个字段,字段包括十个或者十个以内的字符,如果超出,则会报错。

日期类型

数据类型
大小说明
对应java类型
DATETIME
8字节
范围从10009999年,不会进行时区的
检索及转换。
java.sql.Timestamp
java.util.Date
TIMESTAMP
4字节
范围从19702038年,自动检索当前时
区并进行转换。
java.sql.Timestamp
java.util.Date

TIMESTAMP为时间戳

建表

语法:

建一个表

查看表结构

desc + 表名

可以使用comment增加字段说明。
注:命令行客户端只执行一些简单的查询或是指令,如果只是一两句SQL语句则在这里面执行,如果是复杂的SQL语句,则在可视化工具去写代码
create database hys;
use hys;
create table student(
id bigint,
name varchar(20),
password varchar(30),
age int,
gender tinyint(1),
brithday date,
resume text
);

在编译器把SQL编译好,则保存在一个本地的.sql文件

D:\MySQL\hyss.sql

用source + D:\MySQL\hyss.sql   可以把表传到命令行客户端

删除表

drop [TEMPORARY] table [IF EXISTS] 表名 

关于表的操作

1.show tables;
2.create table(
  字段名1   数据类型
  字段名2   数据类型
);
3.desc  表名;
4.drop table [if exists] 表名;

练习

有一个商店的数据,记录客户及购物情况,有以下三个表组成:
     商品goods(商品编号goods_id,商品名goods_name, 单价unitprice, 商品类别category,
应商provider)
     客户customer(客户号customer_id,姓名name,住址address,邮箱email,性别sex,身份证
card_id)
     购买purchase(购买订单号order_id,客户号customer_id,商品号goods_id,购买数量nums)
drop database if exists store;
create database store character set utf8mb4 collate utf8mb4_0900_ai_ci;
 /* 选择数据库*/
use store;

/*创建商品表*/
drop table if exists goods;
create table goods(
goods_id bigint,
good_name varchar(20),
unitprice decimal(10,2),
category varchar(20),
provider varchar(20)
);
/*创建客户表*/
drop table if exists customer;
create table customer(
customer_id bigint,
name varchar(10),
address varchar(10),
email varchar(20),
gender bool,
card_id varchar(20)
);
/*创建购买记录表*/
drop table if exists purchase;
create table purchase(
order_id bigint,
customer_id bigint,
goods_id bigint,
nums int
);

传到命令行客户端

希望能对大家有所帮助!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值