自学内容网 自学内容网

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
);

传到命令行客户端

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


原文地址:https://blog.csdn.net/blamep/article/details/143666227

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!