一、MySQL基本语法
1.1创建数据库
CREATE DATABASE IF NOT EXISTS db_mybook SET utf8mb4;
这里的意思是创建一个叫db_mybook的数据库,如果存在则取消创建,不存在就创建
SET使用UTF-8字符标准创建,utf8mb4才是真正的utf8的编码
2.2展示数据库
SHOW DATABASES;
展示当前已经创建数据库的列表
3.3使用数据库
USE 数据库名;
4.4删除数据库
DROP DATABASE [IF EXISTS] db_mybook;
如果该数据库存在就删除这个数据库,数据库删除以后里面的表
二、常用数据类型
2.1 数值类型
分为整形与浮点型
数据类型 | 大小 | 说明 | 对应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 | 8字节 | Double | |
DECIMAL(M,D) | M/D最大值+2 | 双精度,M指定长度,D表示小数点位数,精确数值 | BigDecimal |
NUMERIC(M,D) | M/D最大值+2 | 和DECIMAL一样 | BigDecimal |
一般DECIMAL来进行金融方面的数值统计,因为他精度高
2.2字符串类型
数据类型 | 大小 | 说明 | 对应java类型 |
VARCHAR(SIZE) | 0-65,535字节 | 可变长度字符串,用来存较短的字符串数据,占用空间少,存储量低 | String |
TEXT | 0-65,535字节 | 长文本数据,存储较长的字符串数据,占用量高 | String |
MEDIUMTEXT// | 0-16 ,777, 215字节 | 中度长度文本数据 | String |
BLOB | 0-65,535字节 | 二进制形式的长文本数据 | String |
2.3日期类型
数据类型 | 大小 | 说明 | 对应java类型 |
DATETIME | 8字节 | 范围从1000到9999年,不会进行时区的检索以及转换 | java.util.Date, java.sql.Timestamp |
TIMESTAWP | 4字节 | 范围从1970到2038年,自动检索当前时区并进行转换 | java.util.Date java.sql.Timestamp |
三、表的操作
需要操作数据库中的表时,需要先使用该数据库
use db_mybook;
3.1 查看表结构
desc 表名;
3.2创建表
CREATE TABLE table_student(
id int,
name varchar(20) comment '姓名',
password varchar(50) comment '密码',
age int,
sex varchar(1),
birthday timestamp,
amout decimal(13,2),
resume text
); comment 增加字段说明
3.3删除表
DROP table if exists table_student;
3.4常用的数据类型
INT :整型
DECIMAL(M,D):浮点数类型 ,一般用于记录金额
M:不包括小数点,符号位,所能存的数字总位数(包括小数与整数部分)
N:小数部分数字的位数,由此可知整数部分的位数为M-N;
语句DECIMAL (5,2)规定了存储的值将不会超过5位数字,开且小数点后面有2位数字。
float和double做算术运算,数值溢出不会报错,精度会因此有损失。decimal会直接报错。
VARCAHR(SIZE):字符串类型
TIMESTAMP:日期类型
实操练习:
有一个商店的数据,记录客户及购物情况,有以下三个表组成:
商品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)
SQL语句:
--创建数据库
CREATE database if not exists shop default character set utf8;
--选择数据库
USE shop;
--创建数据库表
--商品
CREATE TABLE goods(
goods_id INT comment '商品编号' PRIMARY KEY AUTO_INCREMENT,
goods_name VARCHAR(50) comment '商品名',
unitprice DECIMAL(5,2) comment '单价',
category VARCHAR(50) comment'商品类别',
provider VARCHAR(50) comment'供应商'
);
--客户
CREATE TABLE customer(
customer_id INT ,
name VARCHAR(50) comment '客户姓名',
address VARCHAR(50) comment '客户地址',
email VARCHAR(50) comment '客户邮箱',
sex VARCHAR(10) comment '客户性别',
card_id INT comment '客户身份证'
);
--购买
CREATE TABLE purchase(
order_id INT comment '订单号' PRIMARY KEY,
custormer_id INT comment '商品号',
goods_id INT comment '商品id',
nums INT comment '商品数量'
);