一、安装MySQL数据库
1、ubuntu中安装MySQL服务端
(1)、安装服务端
root@ubuntu:/usr/local# sudo apt-get install mysql-server
(2)、查看mysql服务是否启动
root@ubuntu:/usr/local# ps -ef | grep mysql
(3)、mysql服务启动、停止的命令
root@ubuntu:/usr/local# sudo service mysql stop root@ubuntu:/usr/local# sudo service mysql status root@ubuntu:/usr/local# sudo service mysql restart
2、配置文件
(1)、配置文件位置
root@ubuntu:/# cd /etc/mysql/mysql.conf.d
(2)、主要配置项详解
bind-address表示服务器绑定的ip,默认为127.0.0.1 port表示端口,默认为3306 datadir表示数据库目录,默认为/var/lib/mysql general_log_file表示普通日志,默认为/var/log/mysql/mysql.log log_error表示错误日志,默认为/var/log/mysql/error.log
3、ubuntu中添加mysql的远程访问用户
(1)、修该上述配置
将配置文件中的bind-address注释掉,表示允许其他ip访问改mysql服务端
(2)、创建远程访问的账户
mysql> create user 'root'@'%' identified by '123' mysql> grant all on *.* to 'root'@'%' with grant option; mysql> flush privileges;
4、ubuntu中安装客户端
sudo apt-get install mysql-client
5、登录mysql
root@ubuntu:/# mysql -uroot -pmysql
二、数据库操作及查询语句
1、基本使用
(1)、查看所有数据库
show databases;
(2)、使用数据库
use 数据库名;
(3)、查看当前使用的数据库
select database();
(4)、创建数据库
create database 数据库名 charset=utf8;
(5)、删除数据库
drop database 数据库名;
(6)、查看当前数据库中所有表
show tables;
(7)、查看表结构
desc 表名;
(8)、创建表
CREATE TABLE table_name( column1 datatype 约束, column2 datatype, column3 datatype, ..... columnN datatype, PRIMARY KEY(one or more columns) );
(9)、添加表中字段
alter table 表名 add 列名 类型;
(10)、修改表中字段
重命名
alter table 表名 change 原名 新名 类型及约束;
使用原名
alter table 表名 modify 列名 类型及约束;
(11)、删除表中字段
alter table 表名 drop 列名;
(12)、删除表
drop table 表名;
(13)、查看表的创建语句
show create table 表名;
2、数据库备份&恢复
(1)、备份数据库
mysqldump –uroot –p 数据库名 > 备份名称.sql; # 按提示输入mysql的密码
(2)、恢复数据库
mysql -uroot –p 新数据库名 < 备份名称.sql # 根据提示输入mysql密码
三、设计数据库
1、三范式
第一范式(1NF):强调的是列的原子性,即列不能够再分成其他几列。
第二范式(2NF):首先是 1NF,另外包含两部分内容,一是表必须有一个主键;二是没有包含在主键中的列必须完全依赖于主键,而不能只依赖于主键的一部分。
第三范式(3NF):首先是 2NF,另外非主键列必须直接依赖于主键,不能存在传递依赖。即不能存在:非主键列 A 依赖于非主键列 B,非主键列 B 依赖于主键的情况。
2、不遵循三大范式举例
(1)、不遵循 1NF
(2)、不遵循 2NF
(3)、不遵循 3NF
(4)、最终正确数据库
四、数据库查询语言
1、条件、排序、聚合、分组、分页、连接查询、子查询、自关联
略
2、查询总结
(1)、完整的select语句
select distinct * from 表名 where .... group by ... having ... order by ... limit start,count
(2)、执行顺序
from 表名 where .... group by ... select distinct * having ... order by ... limit start,count