MySQL:数据类型建表
问题:我想建一个名为create和database的库可以吗?
如果按照一般的类型来建带有关键字的库
就会出现报错
如果我们这样写的话:`关键词 `,则会建库成功。
选择要进行操作的数据库
use+数据库
判断选择的库是否成功
删除数据库
drop database [if exists] 数据库名;
发现create这个库不见了,则说明删库成功。
注:删除数据库是一个非常危险的操作,在公司中千万不要这样做,使用时一定要慎重!!!
如何查看MySQL的帮助?
输入 \?
数据类型
数值类型
数据类型
|
大小
|
说明
|
对应
java
类型
|
BIT[ (M) ]
|
数,默认
M
指定位
为
1
|
二进制数,
M
范围从
1
到
64
,
存储数值范围从
0
到
2^M-1
|
常用
Boolean
对应
BIT
,此时
默认是
1
位,即只能存
0
和
1
|
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字节 |
范围从
1000
到
9999
年,不会进行时区的
检索及转换。
|
java.sql.Timestamp
java.util.Date
、
|
TIMESTAMP
| 4字节 |
范围从
1970
到
2038
年,自动检索当前时
区并进行转换。
|
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
);
传到命令行客户端
希望能对大家有所帮助!!!