MySQL-DAY01

1.关闭开启

开启命令:net start mysql56

关闭命令:net stop mysql56

进入mysql:mysql -uroot -p*****

进入mysql后查看编码信息:\s或status

2.数据库操作

命令:select version();

命令:\h 帮助

命令:\T 开启输出日志

命令:\t 结束输出日志

命令: create database if not exists maizi1; 产生数据库maizi1

命令:show warnings; 显示产生的警告信息

命令:show databases; 或show schemas; 显示当前数据库

命令:create database if not exists maizi3 default character set ='GBK' 选择新建数据库的编码信息

命令:SHOW CREATE DATABASE MAIZI3 显示数据库的编码信息

命令: alter database maizi3 default character set utf8; 修改已有数据库的编码方式

命令:use maizi1 打开maizi1数据库

命令:select database();  得到当前打开的数据库名称

命令:drop database maizi3;  删除maizi3数据库

命令:drop database if exists maizi3;  

3.数据表的相关操作

3.1数据库中的数据类型

整数类型

 浮点类型

 字符串类型

 日期时间类型

 3.2存储引擎

命令:show engines;  显示存储引擎

 命令:show variables like 'have%';  显示支持存储引擎的详细信息

命令:show variables like 'storage_engine';  显示默认的存储引擎

默认的存储引擎:InnoDB;MyISAM;MEMORY

InnoDB:使用较多,支持事务处理、并发控制、外件,表结构存储在fim文件,缺点是读写效率低占用空间大

MySIAM:数据分成三个文件的结构,支持三种存储格式,插入速度快,占用空间低,不支持事务

MEMORY:很少用的到,速度快,安全性低,不能建立太大的表,生命周期短临时使用

命令: show tables;显示有几张表

3.3 完整性约束条件

 

-- 创建学员表(USER)
-- 编号 id
-- 姓名 NAME
-- 年龄 age
-- 性别 sex
-- 邮箱 email
-- 地址 addr
-- 生日 birth
-- 薪水 salary
-- 电话 tel
-- 是否结婚  married
# 注意mysql5.5之前的版本:当需要输入中文时,需临时转换客户端的编码方式(SET NAMES GBK)
# 字段注释 通过COMMENT给字段添加注释 
CREATE TABLE IF NOT EXISTS `user`(
id SMALLINT,
username VARCHAR(20),
age TINYINT,
sex ENUM('男','女','保密'),
email VARCHAR(50),
addr VARCHAR(200),
birth YEAR,
salary FLOAT(8,2),
tel INT,
married TINYINT(1) COMMENT '0代表未结婚,非0代表结婚'
)ENGINE=INNODB CHARSET=UTF8;


-- 创建课程表course
-- 编号did
-- 课程名称 courseName
-- 课程描述courseDesc
CREATE TABLE IF not EXISTS course(
cid TINYINT,
courseName VARCHAR(50),
courseDesc VARCHAR(200)
);

CREATE TABLE if not EXISTS cms_cate(
id TINYINT,
catName VARCHAR(50),
catDesc VARCHAR(200)
)ENGINE =MyISAM CHARSET=UTF8;


-- 创建新闻表cms_news
-- 编号、新闻标题、新闻内容、新闻发布时间、点击量、是否置顶、新闻所属分类、发布人
CREATE TABLE IF NOT EXISTS cms_news(
id INT,
title VARCHAR(50),
content TEXT,
pubTime INT,
clickNum INT,
isTop TINYINT(1) COMMENT '0代表不置顶,1代表置顶'
);


-- 查看cms_news表的表结构
DESC cms_news;
DESCRIBE cms_news;
SHOW COLUMNS FROM cms_news;

-- 测试整型
CREATE TABLE test1(
num1 TINYINT,
num2 SMALLINT,
num3 MEDIUMINT,
num4 INT,
num5 BIGINT
);
-- 向表中插入记录INSERT tbl_name VALUE|VALUES(值,。。。);
INSERT test1 VALUES(-128,-32768,-8388608,-2147483648,-9223372036854775808);

-- 查询表中的所有记录select * from tbl_name;
select * from test1;

--无符号UNSIGNED
CREATE TABLE test2(
num1 TINYINT UNSIGNED,
num2 TINYINT
);

INSERT test2 VALUES(0,-12);

-- 零填充ZEROFILL
CREATE TABLE test3(
num1 TINYINT ZEROFILL,
num2 SMALLINT ZEROFILL,
num3 MEDIUMINT ZEROFILL,
num4 INT ZEROFILL,
num5 BIGINT ZEROFILL
);

INSERT test3 VALUES(1,1,1,1,1);

-- 测试浮点类型
CREATE TABLE test4(
num1 FLOAT(6,2),
num2 DOUBLE(6,2),
num3 DECIMAL(6,2)
);
# 定点数DECIMAL存储精度较高
INSERT test4 VALUES(3.2495,3.2495,3.2495);  #插入数据会进行四舍五入

-- 测试CHAR和VARCHAR
CREATE TABLE IF NOT EXISTS test5(
str1 CHAR(5),
str2 VARCHAR(5)
);
INSERT test5 VALUES('1','1');
INSERT test5 VALUES('12345','12345');
INSERT test5 VALUES('123456','123456');
INSERT test5 VALUES('1  ','1  ');
SELECT CONCAT(str1,'-'),CONCAT(str2,'-') FROM test5; #字符串开始的空格都会被留下,char末尾的空格会省略,varchar末尾的空格会留下
INSERT test5 VALUES('啊','啊');

-- 测试枚举类型
CREATE TABLE IF NOT EXISTS test6(
sex ENUM('男','女','保密')
);
INSERT test6 VALUES('男');
INSERT test6 VALUES('女');
INSERT test6 VALUES('保密');
INSERT test6 VALUES(NULL);

-- 测试集合类型
CREATE TABLE IF NOT EXISTS test7(
fav SET('A','B','C','D')
);
INSERT test7 VALUES('A,C,D');
INSERT test7 VALUES('D,B,A');
INSERT test7 VALUES(3); # 选定前两个项

-- 测试YEAR类型
CREATE TABLE IF NOT EXISTS test8(
bitrh YEAR
);
INSERT test8 VALUES(1901);  # 1901写为‘1901’ 也是可以的, 00-69被转换为2000-2069,70-99转为1970-1999
INSERT test8 VALUES(2155);

-- 测试 TIME
CREATE TABLE IF NOT EXISTS test9(
bitrh TIME
);
INSERT test9 VALUES('1 12:12:12');  # 36:12:12
INSERT test9 VALUES('11:11');   #11:11:00
INSERT test9 VALUES('1234');    #00:12:34
INSERT test9 VALUES('12');      #00:00:12

-- 测试DATE
CREATE TABLE IF NOT EXISTS test10(
date1 DATE
);
INSERT test10 VALUES('12-6-7');   #12年6月7日
INSERT test10 VALUES('12/6/7');   #12年6月7日
INSERT test10 VALUES('120607');   #12年6月7日

-- 测试主键
CREATE TABLE IF NOT EXISTS user1(
id INT PRIMARY KEY,  #设置主键可以用PRIMARY KEY也可以用KEY
username VARCHAR(20)
);
INSERT user1 VALUES(1,'king');
INSERT user1 VALUES(13,'Tom');
-- 测试复合主键
CREATE TABLE if NOT EXISTS user2(
id INT,
username VARCHAR(20),
card CHAR(18),
PRIMARY KEY(id,card)
);
INSERT user2 VALUES(1,'king','1111');
INSERT user2 VALUES(1,'Tom','1112');  # 复合主键只有两个主键值完全相同才会报错

-- 常用命令
DESC user2;    #查看表结构
SHOW CREATE TABLE user1; #查看创建表的标的定义
SELECT * FROM user2; #显示tab_name内容
SELECT * FROM user1 WHERE id=1;  #显示id为1的信息
SELECT LENGTH('啊')  #显示‘啊’的长度

mysql-connector-j 是 MySQL 官方提供的 Java 连接器,用于在 Java 程序中连接 MySQL 数据库。它的文件结构如下: ``` mysql-connector-java-x.x.xx.jar ├── META-INF │ ├── MANIFEST.MF │ └── maven │ └── mysql │ └── mysql-connector-java │ ├── pom.properties │ └── pom.xml ├── com │ └── mysql │ ├── jdbc │ │ ├── Blob.class │ │ ├── CallableStatement.class │ │ ├── Clob.class │ │ ├── Connection.class │ │ ├── DatabaseMetaData.class │ │ ├── Date.class │ │ ├── Driver.class │ │ ├── DriverManager.class │ │ ├── ParameterMetaData.class │ │ ├── PreparedStatement.class │ │ ├── ResultSet.class │ │ ├── ResultSetMetaData.class │ │ ├── RowId.class │ │ ├── Savepoint.class │ │ ├── SQLClientInfoException.class │ │ ├── SQLException.class │ │ ├── SQLData.class │ │ ├── SQLInput.class │ │ ├── SQLOutput.class │ │ ├── SQLPermission.class │ │ ├── SQLWarning.class │ │ ├── SQLXML.class │ │ ├── Statement.class │ │ ├── Struct.class │ │ ├── Time.class │ │ ├── Timestamp.class │ │ └── Types.class │ ├── jdbc2 │ │ ├── optional │ │ │ ├── Blob.class │ │ │ ├── Clob.class │ │ │ ├── Connection.class │ │ │ ├── DatabaseMetaData.class │ │ │ ├── Date.class │ │ │ ├── ParameterMetaData.class │ │ │ ├── PreparedStatement.class │ │ │ ├── ResultSet.class │ │ │ ├── ResultSetMetaData.class │ │ │ ├── Statement.class │ │ │ ├── Time.class │ │ │ ├── Timestamp.class │ │ │ └── Types.class │ │ ├── optional │ │ │ ├── Blob.class │ │ │ ├── Clob.class │ │ │ ├── Connection.class │ │ │ ├── DatabaseMetaData.class │ │ │ ├── Date.class │ │ │ ├── ParameterMetaData.class │ │ │ ├── PreparedStatement.class │ │ │ ├── ResultSet.class │ │ │ ├── ResultSetMetaData.class │ │ │ ├── Statement.class │ │ │ ├── Time.class │ │ │ ├── Timestamp.class │ │ │ └── Types.class │ │ └── optional │ │ ├── Blob.class │ │ ├── Clob.class │ │ ├── Connection.class │ │ ├── DatabaseMetaData.class │ │ ├── Date.class │ │ ├── ParameterMetaData.class │ │ ├── PreparedStatement.class │ │ ├── ResultSet.class │ │ ├── ResultSetMetaData.class │ │ ├── Statement.class │ │ ├── Time.class │ │ ├── Timestamp.class │ │ └── Types.class │ └── statements │ ├── CallableStatement.class │ ├── PreparedStatement.class │ ├── Statement.class │ └── StatementImpl.class └── java └── time ├── Clock.class ├── Duration.class ├── Instant.class ├── LocalDate.class ├── LocalDateTime.class ├── LocalTime.class ├── Month.class ├── MonthDay.class ├── OffsetDateTime.class ├── OffsetTime.class ├── Period.class ├── Year.class ├── YearMonth.class ├── ZonedDateTime.class └── ZoneId.class ``` 其中,最重要的文件是 `mysql-connector-java-x.x.xx.jar`,这是一个 Java 归档文件,包含了连接 MySQL 所需的所有类和资源。在该文件中,`META-INF` 目录下是元数据信息,`com.mysql.jdbc` 是连接 MySQL 所需的核心类,`java.time` 是 Java 8 中的时间 API,用于与 MySQL 中的日期和时间数据交互。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值