车车的MySQL的学习日记(一)

一.准备环境

1.首先进行MySQL环境配置

具体大家可以看下面这篇文章,进行MySQL的配置
[]http://t.csdn.cn/XjNYA

2.使用idea进行MySQL的连接

因为博主喜欢使用idea进行数据库数据的编写,所以MySQL是使用idea进行操作的,不过这篇文章不涉及JDBC连接的问题。
这个是MySQL连接java所需要的jar包的下载指南。
[http://t.csdn.cn/WNLRX]

1.导入jar包


首先进入File下的项目结构下,然后进行lib的导入。
在这里插入图片描述
进行jar包的导入后,就可以进行下一步
在这里插入图片描述
点击侧边框的database,然后再点加号,因为博主学习的MySQL所以选择加入MySQL。
在这里插入图片描述
首先需要去MySQL设置我们的用户名字和密码,然后才能进行下面的操作。如果已经设置好账号和密码以后,填入用户和密码,然后点击下面的TestConnection进行连接测试,当它通过连接以后就可以点击Apply,然后就可以在idea开始我们的MySQL开心学习了。

二、准备实验表

博主的MySQL学习是使用《MySQL必知必会》进行学习的。所以在这里创建的表是在《MySQL必知必会》的附录中的,大家如果有这本书也可以根据书中所给出的表进行创建。

1.如何进行表的创建

创建表的前提是有数据库,所以第一步需要进行选定数据库,如何进行数据库的选定呢?

use [数据库库名]
-- 这边我需要使用db1数据库的话
use db1

在这里插入图片描述
这样写的就是接下来的sql语句就是操纵该数据库。

-- 创造表
create table 表名(
	字段名称 数据类型,
	字段名称 数据类型
)

这里值得注意的是,每一个字段中需要进行逗号进行间隔,而最后一个字段不需要进行逗号添加。
那么这里字段名称的规范写法就是需要通过表名加下划线再加属性值

2.数据类型

因为上面讲到表的创建,表创建必不可缺的一个问题就是命名的字段的数据类型是什么,应该如何进行规定?何种数据类型存储何种数据。接下来我会使用表格的形式进行数据类型的讲解。

1.串数据类型

数据类型说明
CHAR1-255个字符的定长字符串。其长度必须在创建时指定,否则MySQL假定其为CHAR(1)
ENUM接收最多64k个串组成的一个预定义集合的某一个串
LONGTEXT与TEXT相同,但最大长度为4GB
MEIUMTEXT与TEXT相同,但最大长度为16K
SET接收最多64k个串组成的一个预定义集合的零个或者多个串
TEXT最大长度为64K的变长文本
TINYTEXT与TEXT相同,但是最大长度为255字节
VARCHAR长度可变,最多不超过255字节。如果在创建时指定为VARCHAR(n),则可存储0到n个字符的变长串(其中n <= 255)

2.数值数据类型

数据类型说明
BIT位字段,1~64位
BIGINT整数型,支持-9223372036854775808~9223372036854775807的数
BOOLEAN(BOOL)布尔标志,主要用于开关标志精度可变的浮点型
DECIMAL精度可变的浮点型
DOUBLE双精度浮点型
FLOAT单精度浮点型
INT(INTEGER)整数值,支持-2147483648~2147483647的数
MEDIUMINT整数值,支持-2147483648~2147483647的数
REAL4字节的浮点数
SMALLINT整数值,支持-32768~32767的数
TINYINT整数值,支持-128~127的数

3.日期和时间数据类型

数据类型说明
DATE表示1000-01-01~999-12-31的日期,格式为YYYY-MM-DD
DATETIMEDATEH和TIMR的组合
TIMESTAMP公共和DATETIMR相同(范围较小)
TIME格式为HH:MM:SS
YEAR用2位数据表示,范围是70(1970年)69(2069年)的,用4位数字表示,范围1901年2155年

4.二进制数据类型

数据类型说明
BLOB最大长度位64KB
MEDIUMBLOB最大长度16MB
LONGBLOB最大长度为4GB
TINYBLOB最大长度为255字节

3.创建实验表

前面讲了怎么多,那么下面我们就要看看《MySQL必知必会》的创建表的操作。去感受作者是如何进行表的创建的,然后感受规范的命名和如何进行外键约束和主键的创建。
官方网址在这里如有需要的小伙伴可以点击这里下载相关文件

1.创建顾客表

# Create customers table
########################
CREATE TABLE customers
(
  cust_id      int       NOT NULL AUTO_INCREMENT,
  cust_name    char(50)  NOT NULL ,
  cust_address char(50)  NULL ,
  cust_city    char(50)  NULL ,
  cust_state   char(5)   NULL ,
  cust_zip     char(10)  NULL ,
  cust_country char(50)  NULL ,
  cust_contact char(50)  NULL ,
  cust_email   char(255) NULL ,
  PRIMARY KEY (cust_id)
) ENGINE=InnoDB;

2.创建订单细节表

#########################
# Create orderitems table
#########################
CREATE TABLE orderitems
(
  order_num  int          NOT NULL ,
  order_item int          NOT NULL ,
  prod_id    char(10)     NOT NULL ,
  quantity   int          NOT NULL ,
  item_price decimal(8,2) NOT NULL ,
  PRIMARY KEY (order_num, order_item)
) ENGINE=InnoDB;

3.创建订单表

# Create orders table
#####################
CREATE TABLE orders
(
  order_num  int      NOT NULL AUTO_INCREMENT,
  order_date datetime NOT NULL ,
  cust_id    int      NOT NULL ,
  PRIMARY KEY (order_num)
) ENGINE=InnoDB;

4.创建产品表

CREATE TABLE productnotes
(
  note_id    int           NOT NULL AUTO_INCREMENT,
  prod_id    char(10)      NOT NULL,
  note_date datetime       NOT NULL,
  note_text  text          NULL ,
  PRIMARY KEY(note_id),
  FULLTEXT(note_text)
) ENGINE=MyISAM;

5.创建供货商表

CREATE TABLE vendors
(
  vend_id      int      NOT NULL AUTO_INCREMENT,
  vend_name    char(50) NOT NULL ,
  vend_address char(50) NULL ,
  vend_city    char(50) NULL ,
  vend_state   char(5)  NULL ,
  vend_zip     char(10) NULL ,
  vend_country char(50) NULL ,
  PRIMARY KEY (vend_id)
) ENGINE=InnoDB;

6.创建外键

# Define foreign keys
#####################
ALTER TABLE orderitems ADD CONSTRAINT fk_orderitems_orders FOREIGN KEY (order_num) REFERENCES orders (order_num);
ALTER TABLE orderitems ADD CONSTRAINT fk_orderitems_products FOREIGN KEY (prod_id) REFERENCES products (prod_id);
ALTER TABLE orders ADD CONSTRAINT fk_orders_customers FOREIGN KEY (cust_id) REFERENCES customers (cust_id);
ALTER TABLE products ADD CONSTRAINT fk_products_vendors FOREIGN KEY (vend_id) REFERENCES vendors (vend_id);

7.解析上面sql语句

1.not null | null 的使用

是对表中字段值是否可以进行缺省进行补充,默认情况下会使用null,这个缺省值对于表中重要的数据很重要,在正常业务情况下,一定是希望用户为我们提供必要且重要信息,使用not null可以要求用户给我们提供必要信息之后,再提供下一步的服务。总而言之,not null的使用在收集必要信息情况下非常的必要,具体对应的sql语句为

CREATE TABLE 表名(
	字段名称 数据类型 NULL | NOT NULL
)

注意:sql语句是不区分的大小写的,但是在开发中通常会将关键词使用大写进行表示

2.主键的使用

在上面创建表的语句之中,可以观察到在创建表的结尾中会有这样一条语句

PRIMARY KEY (字段名,字段名....)

这就是指定某个字段为表的主键的操作了,主键的作用是唯一性标识。不过主键可以设置多个字段名称,当组合起来的时候,这种时候就要求多个字段名称组合必须唯一。

3.AUTO_INCREMENT(自增)

使用AUTO_INCREMENT的时候,对应的字段最好是唯一且没有特殊含义,这样就实现自动编号,且相对应的编号中无冲突,可以当作为无意义的主键进行使用。

4.指定默认值

当某一个字段被指定没有值的时候,使用指定默认值的时候,进行数据插入时候会默认指定该字段的值为创建表时候的默认值。具体的sql语句如下

CREATE TABLE 表名(
	字段名 数据类型 DEFAULT 默认值
)
5.引擎

可以看到创建表的最后会加一句ENGINE = InnoB 作为创建表的结束语句,这就是默认的引擎类型。
引擎主要的作用是什么呢?引擎主要主要是在进行数据库处理中,引擎所在内部处理你的请求。但是这里引擎类型不准备展开来讲,因为没有具体情况不能感受每一种引擎在处理数据库操作的差别。

6.创建外键

这里给出实例sql代码

AlTER TABLE 表名
ADD CONSTRAINT fk_从表名称_主表名称 FOREIGN KRY(字段名)[从表]
REFERENCES 主表名(字段名)

外键就是对两张具有强联系的表进行一个字段数据的关联,可以让一张表记录的数据减少冗余,保证数据的完整性和一致性。
注意:进行外键创建时候要先确保表存在,主表有该字段,从表也有其字段,而且其的数据类型应该一致,不然外键就不可以被创建

总结

本次学习日记主要讲述了

  1. 使用idea进行MySQL数据库的连接
  2. 准备相关实验表
  3. 学习MySQL中的数据类型
  4. 如何进行指定数据库的使用、如何进行表的创建、主键的使用、自增加、NULL | NOT NULL的使用等…
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值