数据库基础
2019.03.30
JinBeen
Java后端
 热度
℃
我坚信在行动之前,必须先有足够的观察和知识。 - 奇异博士
- 持久化操作:保存到数据库
- 主键:用户表里的id,唯一标识
- 外键:另一个表里引用的用户id,外键
下载mysql 配置环境 更改密码:a12345678
Navicat Premium for Mac的破解教程 注意时间戳是今天的时间-2019-02-20 12:00:00
命令行操作(一般来说关键字都用大写):
1 2
| alias mysql=/usr/local/mysql/bin/mysql alias mysqladmin=/usr/local/mysql/bin/mysqladmin
|
启动mysql
mysql
// 更换密码:
mysqladmin -u root -p password
登录:
mysql -u root -p
数据库操作
;是结束符
1.创建数据库
create database mysql_0219;
2.查看所有数据库
show databases;
3.使用数据库
use mysql_0219;
4.删除数据库
drop database mysql_0219;
5.查看数据库状态
status (注意编码:utf-8)
表的创建与管理:
1.创建表
create table t_user1(id int,name varchar(20),age int,birthday date);
2.修改表
alter table t_user1 rename t_user2;
3.查看具体表
desc t_user2;
4.查看所有表
show tables;
5.删除
drop table t_user2;
6.表中添加字段
1 2
| alter table 表名称 add 字段名称 字段类型 alter table t_user1 add sex varchar(3);
|
1 2 3
| alter table t_user1 change name user_name varchar(3); // 更改表的类型名称 布尔为 tinyint(1) alter table t_user1 modify user_name varchar(2);
|
- 8.删除表重的字段
alter table t_user1 drop birthday;
表数据更新:
1.数据插入
insert into t_user1(id,user_name,age,sex) values('1','ad','22','男');
2.查看数据
select * from t_user1;
3.数据更新
1 2 3 4
| 单条 update t_user1 set user_name='admin' where id=1; 多条 update t_user1 set age=33,sex='女' where id=1;
|
1 2
| delete from t_user1 where id =2; delete from t_user1;(清空表)
|
约束条件
非空约束 唯一约束 主键约束 主外键约束
图形化连接:
使用 Navicat for MySQL 输入密码:a123456789 新建查询创建
非空约束:
1 2 3 4 5 6 7 8 9 10 11
| CREATE TABLE t_user2( id int, name VARCHAR(2) not null ); show TABLES; INSERT INTO t_user2(id,name) VALUES(1,23); -- INSERT INTO t_user2(id,name) VALUES(1,null); SELECT * FROM t_user2;
|
唯一约束:
1 2 3 4 5 6 7 8 9 10
| CREATE TABLE t_user3( id int, name VARCHAR(30) not null, email VARCHAR(20) UNIQUE -- 唯一约束,邮箱不允许重复 ); INSERT INTO t_user3(id,name,email) VALUES(1,23,'110@email.com'); INSERT INTO t_user3(id,name,email) VALUES(2,333,'111@email.com'); SELECT * FROM t_user3;
|
主键约束:
1 2 3 4 5 6 7 8 9 10
| DROP TABLE t_user3; CREATE TABLE t_user3( id INT PRIMARY KEY AUTO_INCREMENT, -- 主键唯一不能为null,自增 name VARCHAR(30) not null, email VARCHAR(20) UNIQUE -- 唯一约束,邮箱不允许重复 ); INSERT INTO t_user3(name,email) VALUES(23,'110@email.com'); INSERT INTO t_user3(name,email) VALUES(2223,'112220@email.com');
|
主外键约束:
一般不会建,不能单独删除这个约束表。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| CREATE TABLE t_user( id INT PRIMARY KEY AUTO_INCREMENT, -- 主键不能为 null,且不能重复,自增 name VARCHAR(30) not null ); CREATE TABLE t_order( id INT PRIMARY KEY AUTO_INCREMENT, -- 主键不能为 null,且不能重复,自增 order_name VARCHAR(30), user_id int, CONSTRAINT user_id_fk FOREIGN key (user_id) REFERENCES t_user(id) -- 添加外键 ); INSERT INTO t_user(name) VALUES('amdin'); SELECT * FROM t_user; INSERT INTO t_order(order_name,user_id) VALUES('订单1',1); INSERT INTO t_order(order_name,user_id) VALUES('订单2',2); SELECT * FROM t_order;
|
Mysql的备份与恢复
备份
导出数据库:
mysqldump -u root -p mysql_0219>/Users/jingbin/Documents/LearningFile/S-Mybatis/mysql_0219.sql;
一、Mac os导出Mysql数据库
1.打开终端,
2.执行: cd 要导出到的目录 (如:cd /Users/jingbin/Documents/LearningFile/mysql)
3.执行:
1 2 3 4
| alias mysqldump=/usr/local/mysql/bin/mysqldump mysqldump -u root -p 要导出的数据库名>名字随意.sql (如:mysqldump -u root -p mysql_0219>mysql_0219.sql;) 输入数据密码 此时,会在/Users/jingbin/Documents/LearningFile/mysql中发现已经导出的.sql文件:mysql_0219.sql。
|
导出数据库里对应的表:
1
| mysqldump -u root -p mysql_0219 t_user>mysql_0219_user.sql;
|
恢复
1 2 3 4 5 6
| create database mysql_back; use mysql_back; show tables; source /Users/jingbin/Documents/LearningFile/mysql/mysql_0219_user.sql show tables; select * from t_user;
|