MySQL数据库
一、MySQL数据的安装
安装教程可登录下面网址
MySql详细安装教程_mysql安装教程csdn_youlin121的博客-CSDN博客
二、mysql的基本操作
-
登录mysql服务器
命令符窗口:mysql -u root -p 回车输入密码即可登录mysql -u:登录的用户名 -p:密码
-
退出mysql服务器
quit; 或者 exit;
-
创建用户
# 必须使用管理员权限登录,普通用户是没有创建用户权限的。 #需登录mysql服务器 create user ‘用户名’@’localhost’ identified by ‘密码’; #如何查看已创建的用户? * 切换到mysql数据库 * 查询一张user系统表(存放着用户相关的信息) select user from user; * 前面的user:系统表中的一个字段名 * 后面的user:系统表名 MD5加密
-
创建数据库(两种方式)
#1.需要登录mysql服务器才可创建数据库(mysql命令) create database 数据库名;
#2.无需登录mysql服务器就可创建数据库(dos命令) mysqladmin -u root -p create 数据库名 回车输入密码即可创建成功
5. 列出本地所有的数据库 ```sql show databases;
-
使用数据库
use 数据库名;
-
给用户授权限
grant 权限1,权限2.. privileges on 数据库.* to ‘用户’@‘localhost’ #例:grant all privileges on bdqn.* to ’tom’@’localhost’; 所有权限 #例:grant select on bdqn.* to 'ztf'@'localhost'; 只有查询的权限 #例:grant select,insert on bdqn.* to 'ztf'@'localhost'; 只有查询和插入数据的权限 * 权限:select、insert、update、delete、create table、create database、create view......... create produre...
-
撤销权限
revoke 权限1,权限2.. on 数据库.* from ‘用户名’@‘主机地址’ #例:revoke all on bdqn.* from ‘tom’@’localhost’; #例:revoke select on bdqn.* from 'ztf'@'localhost'; #例:revoke select,insert on bdqn.* from 'ztf'@'localhost';
-
删除数据库
#1.登录mysql服务器才能删除(mysql命令) drop database 数据库名;
#2.无需登录mysql服务器(dos命令) mysqladmin -u root -p drop 数据库名 回车输入密码即可删除
10. 创建数据库表 ```sql #语法: create table table_name( 字段1 字段类型 [约束] [注释], 字段2 字段类型 [约束] [注释], 字段3 字段类型 [约束] [注释] ... )ENGINE=INNODB DEFAULT CHARSET=utf8; #备注: #主键约束:primary key (一张表只允许设置一个主键) #唯一约束:unique key #非空约束:not null #自动增长:auto_increment #注释:comment(给字段添加注释) #默认值:default ENGINE=INNODB:设置存储引擎 DEFAULT CHARSET=utf8:设置默认的字符集
-
数据库设计的三大范式
#1.第一范式的目标是确保每列的原子性(设计数据库表时要保证每列不可再分) #如果每列都是不可再分的最小数据单元(也称为最小的原子单元),则满足第一范式(1NF) #2.第二范式要求每个表只描述一件事情 人类表-存储人类的信息 (狗的信息) #3.如果一个关系满足2NF,并且除了主键以外的其他列都不传递依赖于主键列,则满足第三范式(3NF),也就是说数据表中的其他列跟主键列有直接关联关系
id city id coutry city 1 中国 北京 2 中国 上海 3 美国 纽约 4 日本 东京 1 中国北京 2 中国上海 3 美国纽约 4 日本东京 ```
-
查看数据库中所有的表
show tables;
-
查看表结构(表定义)
desc table_name;
-
删除表
drop table table_name; drop table if exists table_name; #更高效
-
存储引擎
存储引擎就是mysql中的一个组件,这个组件的作用就是为不同的表类型来处理SQL操作. 简单来说,存储引擎的作用就是处理SQL操作的
-
InnoDB和MyISAM的区别?
-
事务处理:前者支持,后者不支持
-
数据行的锁定:前者支持,后者不支持
-
外键约束:前者支持,后者不支持
-
全文索引:前者不支持,后者支持
-
表空间大小:前者较大,约2倍,后者较小
-
-
SQL的组成
-
DQL数据查询语言(SELECT语句)
-
DML数据操纵语言(INSERT, UPDATE, DELETE语句)
-
DDL数据定义语言(如CREATE, DROP,ALTER语句)
-
DCL数据控制语言(如COMMIT, ROLLBACK等语句 grant、revoke)
-
-
数据定义语言
修改表名
Alter table 旧表名 rename 新表名;
添加字段
ALTER TABLE 表名 ADD 字段名 数据类型 [属性];
修改字段
ALTER TABLE 表名 CHANGE 原字段名 新字段名 数据类型 [属性];
删除字段
ALTER TABLE 表名 DROP 字段名;
添加主键
ALTER TABLE 表名 ADD CONSTRAINT 主键名 PRIMARY KEY 表名(主键字段);
修改存储引擎
ALTER TABLE 表名 ENGINE = MYISAM;
-
MySQL数据库作发布系统的存储,一天五万条以上的增量,预计运维三年,怎么优化?
#1.设计良好的数据库结构,允许部分数据冗余,提高效率 #2.选择合适的表字段数据类型和存储引擎,适当的添加索引 #3.减少单表中的数据量提高查询速度。 #4.添加缓存机制,比如memcached。 #5.书写高效率的SQL。
-
对于大流量的网站,您采用什么样的方法来解决各页面访问量统计问题?
#1.确认服务器是否能支撑当前访问量。 #2.禁止外部访问链接(盗链), 比如图片盗链。 #3.控制文件下载。 #4.使用不同主机分流。 #5.使用浏览统计软件,了解访问量,有针对性的进行优化
-
优化数据库的方法?
#1.选取最适用的字段属性,尽可能减少定义字段长度,尽量把字段设置NOT NULL #2.使用连接(JOIN)来代替子查询 #3.优化事务处理 #4.适用外键 #5.建立索引(索引适当添加) #6.优化查询语句(SQL优化)