使用图形窗口链接
- 下发windows的navicat
- 点击“链接”弹出窗口,按照提示填写链接信息,以下图
- 链接成功后,会在链接名称下面显示出当前的数据库
- 双击选中数据库,就能够编辑此数据库
- 下次再进入此软件时,经过双击完成链接、编辑操做
数据库操做
- 在链接的名称上右击,选择“新建数据库”,弹出窗口,并按提示填写
- 在数据库上右击,选择“删除数据库”能够完成删除操做
表操做
- 当数据库显示为高亮时,表示当前操做此数据库,能够在数据中建立表
- 一个实体对应一张表,用于存储特定结构的数据
- 点击“新建表”,弹出窗口,按提示填写信息
- 实体-----表 属性------字段
- 主键的名称通常为id,设置为int型,无符号数,自动增加,非空
- 自动增加表示由mysql系统负责维护这个字段的值,不须要手动维护,因此不用关心这个字段的具体值
- 字符串varchar类型须要设置长度,即最多包含多少个字符
- 点击“添加栏位”,能够添加一个新的字段
- 点击“保存”,为表定义名称
- 右键而后点击“设计表”能够从新设计
数据操做
- 表建立成功后,能够在右侧看到,双击表打开新窗口,以下图
- 在此窗口中能够增长、修改、删除数据
逻辑删除
- 对于重要数据,并不但愿物理删除,一旦删除,数据没法找回
- 通常对于重要数据,会设置一个isDelete的列,类型为bit,表示逻辑删除默认值为0,1表示删除
- 大于大量增加的非重要数据,能够进行物理删除
- 数据的重要性,要根据实际开发决定
使用命令链接
- 命令操做方式,在工做中使用的更多一些,因此要达到熟练的程度
- 打开终端,运行命令
-
mysql -uroot -p
-
回车后输入密码,当前设置的密码为mysql
- 链接成功后以下图
- 退出登陆
quit或exit
- 退出成功后以下图
- 登陆成功后,输入以下命令查看效果
查看版本:select version(); 显示当前时间:select now();
- 注意:在语句结尾要使用分号;
远程链接
- 通常在公司开发中,可能会将数据库统一搭建在一台服务器上,全部开发人员共用一个数据库,而不是在本身的电脑中配置一个数据库
- 运行命令
- -h后面写要链接的主机ip地址
- -u后面写链接的用户名
- -p回车后写密码
数据库操做
- 建立数据库
create database 数据库名 charset=utf8;
- 删除数据库
drop database 数据库名;
- 切换数据库
use 数据库名;
- 查看当前选择的数据库
select database();
查看当前全部的数据库:
show databases;
表操做
- 查看当前数据库中全部表
show tables;
- 建立表
-
auto_increment表示自动增加mysql
CREATE TABLE IF NOT EXISTS `tc_base`( `tc_base_id` INT UNSIGNED AUTO_INCREMENT, `tc_region_name` VARCHAR(100) NOT NULL, `street_name` VARCHAR(40) NOT NULL, PRIMARY KEY ( `tc_base_id` ) )ENGINE=InnoDB DEFAULT CHARSET=utf8;
- 若是你不想字段为 NULL 能够设置字段的属性为 NOT NULL, 在操做数据库时若是输入该字段的数据为NULL ,就会报错。
- AUTO_INCREMENT定义列为自增的属性,通常用于主键,数值会自动加1。
- PRIMARY KEY关键字用于定义列为主键。 您可使用多列来定义主键,列间以逗号分隔。
- ENGINE 设置存储引擎,CHARSET 设置编码。
-
修改表sql
alter table 表名 add|change|drop 列名 类型; 如: alter table students add birthday datetime;
- 删除表(物理删除)
drop table 表名;
- 查看表结构
describe
desc 表名;
- 更改表名称
rename table 原表名 to 新表名;
- 更改表中列信息
ALTER TABLE testalter_tbl CHANGE 旧列名字 新列名字 BIGINT;
- 查看表的建立语句
show create table 表名;
数据操做
- 查询
select * from 表名
- 增长
全列插入:insert into 表名 values(...) 缺省插入:insert into 表名(列1,...) values(值1,...) 同时插入多条数据:insert into 表名 values(...),(...)...; 或insert into 表名(列1,...) values(值1,...),(值1,...)...;
- 主键列是自动增加,可是在全列插入时须要占位,一般使用0,插入成功后以实际数据为准
- 修改
update 表名 set 列1=值1,... where 条件
- 删除
delete from 表名 where 条件
- 逻辑删除,本质就是修改操做update
alter table students add isdelete bit default 0; 若是须要删除则 update students isdelete=1 where ...;
备份与恢复
数据备份
- 进入超级管理员
sudo -s
- 进入mysql库目录
cd /var/lib/mysql
- 运行mysqldump命令
mysqldump –uroot –p 数据库名 > ~/Desktop/备份文件.sql; 按提示输入mysql的密码
数据恢复
-
链接mysqk,建立数据库数据库
-
退出链接,执行以下命令windows
mysql -uroot –p 数据库名 < ~/Desktop/备份文件.sql 根据提示输入mysql密码
总结
- 数据库解决的问题,E-R模型,三范式
- 图形界面操做数据库、表、数据
- 命令行操做数据库、表、数据
数据库命令:
建立create database 数据库名 charset=utf8;
删除drop database 数据库名;
查看全部数据库:show databases;
使用数据库:use 数据库名;
----------------------------------------
表命令:
create table 表名(列...);
惟一标识的要求:id
类型:int unsigned
约束1:not null
约束2:primary key
约束3:auto_increment
列的格式:列的名称 类型 约束
create table stu(
-> id int not null primary key auto_increment,
-> name varchar(10) not null,
-> gender bit default 1,
-> birthday datetime,
-> isDelete bit default 0,
-> );
查看表show tables;服务器
查看表的建立语句:show create table 表名;
ui
查看表结构desc 表名;
修改表:alter table 表名 add|modify|drop 列名 类型 约束;
alter table stu modify column isDelete bit not null default 0;
删除表:drop table 表名;
----------------------------------------
数据命令:
添加数据:insert into 表名(列名) values(值),(值)...;
修改数据:update 表名 set 列1=值1,... where ...;
删除数据:delete from 表名 where ...;
逻辑删除:update 表名 set isDelete =1,where...;
备份:mysqldump >
恢复:mysql <编码
CREATE TABLE IF NOT EXISTS `tc_base`( `tc_base_id` INT UNSIGNED AUTO_INCREMENT, `tc_region_name` VARCHAR(100) NOT NULL, `street_name` VARCHAR(40) NOT NULL, PRIMARY KEY ( `tc_base_id` ))ENGINE=InnoDB DEFAULT CHARSET=utf8;spa