第04 章 MYSQL实验环境创建
一、下载MY
https://dev.mysql.com/downloads/file/?id=476476
1.1 Oracle
http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html
driverClass:oracle.jdbc.driver.OracleDriverurl:jdbc:oracle:thin:@localhost:1521/dbname
1.2 MySql
https://dev.mysql.com/downloads/file/?id=476476
driverClass:com.mysql.jdbc.Driverurl:jdbc:mysql://localhost:3306/dbname
---测试数据库的文档:https://dev.mysql.com/doc/index-other.html
--PDF文档:https://downloads.mysql.com/docs/employee-en.pdf
---数据库下载地址:https://github.com/datacharmer/test_db
wget https://github.com/datacharmer/test_db.git
wget http://downloads.mysql.com/docs/sakila-db.tar.gz
--git下载方式(建议下载方式)
git clone https://github.com/datacharmer/test_db.git && cd test_db
mysql -uroot -p123456 -t < employees.sql
二、实战演示的内容
2.1 案例数据库的安装
--上传到/mysql目录下
--安装zip工具
yum install -y unzip zip
--解压
gz格式:
tar -zxvf sakila-db.tar.gz
zip格式:
unzip sakila-db.zip
cd test_db-master/
--核实存储引擎是否为innodb,如果不是需要改成与数据库一致
more sakila-schema.sql
more employees.sql |grep storage_engine //管道检索是否为innodb
default_storage_engine=innoDB
--修改文件的自动增删查操作
打开vim employees.sql文件,增加set autocommit=1语句,设置下面的增删改自动提交。
--
set autocommit=1
DROP DATABASE IF EXISTS employees;
--因为在my.cnf参数中设置为非自动提交。
[root@itpuxdb mysql]# cat my.cnf |grep autocommit
autocommit=0 #指事务非自动提交,自此句执行以后,每个SQL语句或者语句块所在的事务都需要显示"commit"才能提交事务。
---导入 employees.sql数据示范库,-t为显示导入表信息,-p需要密码
mysql -t < employees.sql -uroot -p
--验证导入数据库内容是否正常
sha方法1:
time mysql -t < test_employees_sha.sql -uroot -p
md5验证方法2:
time mysql -t < test_employees_md5.sql -uroot -p
--进入数据库
show databases;
use itpuxdb;
select count(*) from itpux_m5;
--有数据但是显示乱码。
-显示当前变量,含有char,查看字符集
show variables like 'char%';
-临时解决
set names utf8;
-永久解决,修改my.cnf参数,1为使用服务器端,0为使用本地终端。需要重新登陆MYSQL。
在字符集下增加skip-character-set-client-handshake=1
--
2.2 数据库的创建与管理
---数据库命名规范
数据库名不能超过30个字符,推荐使用下划线命名方式。
数据库命名必须为项目英文名称或有意义的简写。
数据库创建时必须 添加默认字符集和校对规则子句(排序规则)。
utf8:utf8_general_ci(推荐方式)方式不区分大小写; utf8_general_cs区分大小写;utf8_bin二进制;
命名应该使用小写。
---字符集选择
自开发系统的数据库UTF8作为 字符集的唯一选择,默认字符集为了UTF8.
--建议utf8和utf8_general_ci(推荐方式)
外购系统的字符 集按照开发和业务要求选择,需申请例外.
使用工具导出的数据脚本文件,必须在导出工具中,显示选择UTF8作为导出格式 .
在恢复 前需要编辑,必须使用纯文本方式找到开\编辑和保存,防止 隐含控制 字符(如^M)添加 进脚本.
在LINUX环境,可以通过 "cat -A脚本文件名"方式确认和检查是否携带了隐含控制字符.
--备注
unicode 万国码,统一码,单一码:ucs2,utf16,utf61e,utf8,utf8mb4,utf32;
utf8(推荐方式):1字符占1~3个字节. 国内最好使用此格式.原系统升级或者与老系统有交互的情景.
utf8mb4:1字符占1~4个字节. 跨国项目,可以兼容更多国家语言.新建全新系统,不与其他老系统对接.
---数据库设计规范
01.控制单实例表个数控制在3W以内.
02.控制单库表个数,建议单库不超过4096个表.
03 创建数据库的语句必须包含字符集子句和校对规则子句,如:
create database XXX [if not exists] default character set UTF8 default collate utf8_general_ci;
2.3 各种数据类型的创建与讲解