一.没有启动mysql服务器
window+r-->services.msc-->mysql服务器-->启动
一. 数据库介绍
用途
库 表 字段 行
二. 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 修改权限 ====> 修改密码===>输入密码 执行 关闭浏览器
1.配置环境变量:
计算机右键====属性====高级系统设置====高级====环境变量====系统变量窗口======path=====点击编辑===加上英文分号把你MySQL的bin路径复制过来=====点击三次确定
2.连接数据库: mysql -uroot -p
3.如果是本机访问本机服务器 mysql -hlocalhost -uroot -p
[注] 在进入本地MySQL数据库时,可以省略-hlocalhost.
4.所有的指令都要以: 英文分号或者\g结尾
5.\h帮助我们查看一些命令: quit或者exit都表示退出MySQL
6.\c:清除当前输入的指令
四.创建数据库:
创建数据库,不设置编码格式,用默认编码格式:create database 数据库名;
创建数据库并设置编码格式: create database 数据库名 character set utf8;
创建数据库,如果已经存在不创建,如果不存在创建:
create database if not exists 数据库名;
use shop;
查看库: 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('AV女优','小泽玛利亚','桃谷绘里香','波多野吉衣','刘伟');
insert into fengjie(love) values();
[注] values后边的小括号里边的写法有三种
('小泽玛利亚')
(1|2|4|8|16)
(1+2+4+8+16)
(3)注:3=1+2
set集合类型中最多能存63个值
六. 数据库导入导出
unsigned和zerofill
unsigned(无符号): 主要用于整型和浮点类型,使用无符号。即没有前面面的负号,所有的数都为正数
zerofill: 0填充
auto_increment:自动增加经常结合primary key 使用
default: 默认
not null:不为空
导出:
首先推出MySQL,进入正常的终端下边
mysqldump -uroot -p 数据库名 > 导出到的本地的文件路径
导入:
首先要有一个库名
mysql -uroot -p 数据库名 < 导入的本地文件路径
[总结]无论是导入还是导出,只要输入命令没有出现错误就表示成功了.
作业:
1.建库:
2.建表:
3.建字段: id(自增,非空,无符号) 枚举 集合 字符 时间
4.导出
5.导入
导出的文件交作业
七. 字符集和存储引擎