mysql数据库是一个很不错,适合中小型企业的数据库,实用性很高,而且是开源免费的。

希望大家好好学, 我在声明一下,一下的所有内容都是我之前一个字一个字记录下来的,希望大家好好看,没有抄袭。

mysql的内容

库管理: 建库 查库 删除库

表管理: 建表 查表 删除表

sql查询

数据的导入导出

用户的授权和权限的撤销

数据库的备份与恢复

binlog日志 实现增量备份

AD

读写分离

mysql集群

LAMP

service mysqld status 查看服务是否启动

-------------------------------

mysql

vim /etc/my.cnf 配置文件

ps aux |grep mysqld 查看mysql的安装信息

cd /var/lib/mysql/ rpm包的mysql 目录

REFERENCES

登录mysql -h那个地址的主机 (必须授权之后才可以远程地址登录)

mysql -hlocalhost -uroot -p123

数据库名字要唯一性

数据库名区分大小写

不能用纯数字创建库名

不能用特殊符合创建库名

不能用关键字创建库名

\c 结束sql的命令 但是一定要在没有分号的前提下

mysql里的库和在系统里的文件权限是一致的

为了安全起见 我们可以把mysql用户的shell改成sbin/nologin 只把他当成一个属组省得有人用mysql用户删除mysql目录更危险

-------------------------------------

查看库

show databases;

+--------------------+

| Database |

+--------------------+

| information_schema |

| discuz |

| farm |

| mysql |

| test |

| ucenter |

+--------------------+

test 库 是公共库 随意授予权限

mysql 授权库 验证用户信息 (这个不能删出)

information_schema 架构信息库 虚拟库 (这里的表不占用你的磁盘空间 内容存放在内存里)

[root@xu db1]# vim yg5.

yg5.frm 表结构

yg5.MYD 表中数据文件

yg5.MYI 表中索引信息

-----------------------------------

创建库

create database studb;

切换库 使用那个库

use studb;

查看当前所在的库

select database();

查看当前登录的帐号是

select user();

查看用户的权限

show grants;

ll -d /var/lib/mysql/ 库的文件夹必须有写的权限

----------------------------------

删库 (直接删文件,是否是空的)

drop database studb;

删出表

drop table yg11;

进库查看表

show tables;

---------------------------

创建表 (一列 在数据库里叫做字段) 字段名 类型 (类型就是比如男女 姓名) 兼值 (约数条件)

create teble db1.xu(

<字段名字> <类型> (宽度) [约束条件],

<字段名字> <类型> (宽度) [约束条件],

<字段名字> <类型> (宽度) [约束条件]

);

---------------------------------------

mysql下的常见类型

数值类型 分为 ×××(int) 浮点型(float)

字符类型 char(固定长度) varchar(变化的长度) 最大能存255个字符

日期时间类型 year data time datetime

枚举类型 menu 单选 set 多选

int (3 )这里的数值 是显示宽度 和char 的限制不一样 (显示宽度不限制字符的长度)

整数位 是小数的是四舍五入保存的

浮点型 是 单单精度浮点数值和双精度浮点数值

---------------------------------

创建表里的字段

mysql> create table db1.game(

-> name char(4),

-> level tinyint(3)

-> );

show tables; 查看表

1字节=8位

----------------------------------

desc game; 查看表结构

create table a (id int); 创建表

show create table a; 查看创建表过程

---------------------------

字段中插入内容

mysql> insert into db1.game(name,level)

-> values

-> ("ts",0),("swk,300");

查看表里的内容

select * from game;

创建有约束条件的表

create table game2(level tinyint unsigned);

----------------------------

create table f(id int(4) zerofill); 用0补位

数字不用框起来

单引号 和双引号区别

单无所谓

双里面有符号或者空格的

----------------------------

浮点型

创建 小数点共7位 小数点是2位

create table gz(gz float(7.2));

----------------------

创建表结构!

显示现在的日期和时间

select now();

日期时间类型

mysql> create table yg4(

-> name varchar(10),

-> wrok year,

-> birthday date,

-> worktime time,

-> metting datetime

-> );

通过函数 保存现在的时间 到yg4表里

insert into yg4 values ("jim",now(),now(),now(),now());

查看

select * from yg4;

手动插入

mysql> insert into yg4 values ("tom",1998,17560101,100000,20130218103000);

查看

mysql> select * from yg4;

插入值

mysql> insert into yg4(name,wrok)values("lucy",98);

01-69 是以20开头的

70-99 是以19开头的

插入00是错误的

---------------------------------------

枚举类型 (单选,多选)

name char(4)not null,

age tinyint (2)unsigned default 24,

sex enum(“boy”,“gril“,“no”)default “boy”,

loves set (“a”,“b”,“c”,“d”) default “a,b”

---

创建表结构

mysql> create table yg5(

-> name char(4) not null,

-> age tinyint(2) default 24,

-> sex enum("boy","gril") default "boy",

-> loves set("a","b","c","f") default "a,b"

-> );

添加jim

insert into yg5(name)values("jim");

查看

mysql> select * from yg5

-> ;

+------+------+------+-------+

| name | age | sex | loves |

+------+------+------+-------+

| jim | 24 | boy | a,b |

+------+------+------+-------+

1 row in set (0.00 sec)

插入lili

mysql> insert into yg5 values("lili",21,"gril","a");

查看

mysql> select * from yg5

-> ;

+------+------+------+-------+

| name | age | sex | loves |

+------+------+------+-------+

| jim | 24 | boy | a,b |

| lili | 21 | gril | a |

+------+------+------+-------+

2 rows in set (0.00 sec)

-----------------------------------

删除表中的记录

delete from a; 这个代表 把a表中所有的内容删掉(慎用)

加条件的 删除匹配NULL的值

mysql> delete from yg5 where name="NULL";

删除NULL值的字段

mysql> delete from yg5 where age is null;

--------------------------------

查看表结构

mysql> desc yg5;

修改表结构

alter table 数据名,表名 动作;

动作:

add 字段名 类型 (宽度) 约束条件

添加

mysql> alter table yg5 add stu_id char(8) not null,

-> add mail varchar(30) default "tea@uplooking.com";

删出字段

mysql> alter table yg5 drop sex;

添加到第一行

mysql> alter table yg5 add stu_id char(8) not null first;

把QQ添加到sex下

mysql> alter table yg5 add QQ varchar(8) not null after sex;

---------------------------------

修该字段类型

modify

查看表结构

desc game;

修改类型

mysql> alter table yg5 modify loves set("muisc","football")not null defalut "muisc";

--------------------------

修改字段名

change

修改字段名 把mail 改为email

mysql> alter table yg5 change mail email varchar(30) default "tea@uplooking.com";

------------------------------

修改ro更新表中的记录 (一定要加上条件)

uptate 表名 set 字段列表 where 条件

修改

mysql> update yg5 set stu_id="88888888" where name="lucy";

修改多个记录

mysql> update yg5 set stu_id="99999999",QQ="2348444",loves="book,film" where name="lili";

------------------------------------

复制表 (在复制表的时候,原表key字段不会复制到新表)

mysql> create table yg6 select * from yg5;

复制原表结构(空表) 错误的查询 显示的是空值

mysql> create table yg7 select * from yg5 where name is null;

-----------------

表改名

mysql> alter table yg7 rename txt;

-------------------------