一. 数据库介绍
-
用途
-
库 表 字段 行
二. SQL
- DDL:数据定义语言 Data Definition Language
- DML:数据操作语言 Data Manipulation Language
- DQL:数据查询语言 Data Query Language
- DCL:数据控制语言 Data Control Language
- DTL:事务控制语言 Transaction Control Language
三. 链接数据库
- 修改数据库密码:
http://localhost/phpmyadmin
用户账户====>root 修改权限====>修改密码====>输入密码 执行 关闭浏览器
- 配置环境变量:
计算机右键====>属性====>高级系统设置====>高级====>环境变量====>系统变量窗口====>path====>点击编辑====>加上英文分号把你MySQL的bin路径复制过来=====点击三次确定 - 连接数据库: mysql -uroot -p
- 如果是本机访问本机服务器 mysql -hlocalhost -uroot -p
[注] 在进入本地MySQL数据库时,可以省略-hlocalhost - 所有的指令都要以: 英文分号或者\g结尾
- \h帮助我们查看一些命令: quit或者exit都表示退出MySQL
- \c:清除当前输入的指令
四. 创建数据库:
- 创建数据库,不设置编码格式,用默认编码格式:
create database 数据库名; - 创建数据库并设置编码格式:
create database 数据库名 character set utf8; - 创建数据库,如果已经存在不创建,如果不存在创建:
create database if not exists 数据库名; - 查看库: show databases;
- 创建库:create database 库名;
- 删除库:drop database 库名;
- 选中库:use 库名;
- 查看表:show tables;
五. 表格
- 创建表:create table xioaocang(id int, name char(30), age int);
[注] 表名后边跟括号,括号里边写的是字段名和字段类型,多个字段之间使用逗号隔开. - 查看表结构: desc 表名;
- 删除表: drop table 表名;
- 指定字符集和存储引擎: create table xiaocang(id int, name char(30), age int) default charset=utf8, engine=innodb;
- 查看表创建语句: show create table 表名;
- 修改表字段类型: alter table 表名 modify 字段名 要修改的字段类型;
- 增加表字段: alter table 表名 add 字段名 字段类型;
- 删除表字段: alter table 表名 drop 字段名;
- 改变表字段名字和类型: alter table 表名 change 旧字段名 新字段名 新字段类型;
[注]在修改或者添加字段名或者字段类型时,可以指定先后顺序 first after - 修改表名: alter table 旧表名 rename 新表名
- 清屏: 先退出MySQL指令,再cls;
六. 数据类型
- 数字型: tinyint smallint int mediumint bigint
- 浮点型: decimal(总个数,小数点后保留的位数)
- 字符型:
char:定长类型 0-255个字节 如果我给30个字节,然后你存入的值是小于30的,那么我还给你30个空间. 在执行的时候不需要检测
varcher:变长类型 0-655355个字节 如果我给你30个字节,然后你存入的是小于30 的,然后给你小于30的实际空间来存放,如果你存放的大于30的,我还会给你30个空间来存放. 在执行的时候会检测你存放的空间是多少. - 时间型:
-
date:
alter table xiaocang add xktime date;
insert into xiaocang(xktime) values(‘2017-3-24’); -
time:
alter table xiaocang change xktime xktime time;
insert into xiaocang(xktime) values(‘11:50:00’); -
datetime:
alter table xiaocang change xktime xktime datetime;
insert into xiaocang(xktime) values(‘2017-3-24 11:50:00’); -
timestamp:
alter table xiaocang change xktime xktime timestamp default current_timestamp;
insert into xiaocang(age) values(23); -
year: 取值返回1901-2155
-
enum:枚举类型 (只能选择一个):
alter table fengjie add sex enum(‘男’,‘女’);
insert into fengjie(sex) values(‘男’);
[注]在添加枚举类型的时候,values后边的值可以(‘男’)或者(1) -
set:集合类型(可以有多个值)
alter table fengjie add love set(‘学生’,‘小红’,‘张三’,‘王富贵’,‘刘伟’);
insert into fengjie(love) values();
[注] values后边的小括号里边的写法有三种
(‘王富贵’)
(1|2|4|8|16)
(1+2+4+8+16)
(3)注:3=1+2
set集合类型中最多能存63个值
七. 数据库导入导出
- unsigned(无符号): 主要用于整型和浮点类型,使用无符号。即没有前面面的负号,所有的数都为正数
- zerofill: 0填充
- auto_increment:自动增加经常结合primary key 使用
- default: 默认
- not null:不为空
- 导出:首先退出MySQL,进入正常的终端下边
mysqldump -uroot -p 数据库名 > 导出到的本地的文件路径 - 导入:首先要有一个库名
mysql -uroot -p 数据库名 < 导入的本地文件路径
[总结]无论是导入还是导出,只要输入命令没有出现错误就表示成功了.