Mysql 二: 数据库基本操作

查看当前用户 :

select Host,User from mysql.user;

1.mysql 创建用户 :

create user test identified by '123456'

2.授权远程登陆:

grant all privileges on *.* to 'test'@'%'identified by '123456' with grant option;

3.刷新mysql用户权限相关表;

flush privileges ;

4.修改配置文件中的 bind

bind-address = 0.0.0.

5.重启mysql

server mysqld restart

修改用户密码 :

update user set password=password('admin123') where user='test';

如果出现错误 :

ERROR 1054 (42S22): Unknown column 'password' in 'field list'

这是因为 mysql 版本问题, 改为使用一下语句修改即可 :

update mysql.user set authentication_string=password('admin123') where user='test' ;

修改完之后重启mysql即可 :

service mysql restart

一、创建一张表

创建一张表的时候可以【预留一些栏位】,你只要不使用就行,为的就是以后如果需求有变时不用更改表结构,只要对这个栏位就行操作就行(如果增加字段就把预留的栏位利用起来.可以修改 字段名称、改变字段类型都行,如果删除字段就把 要输出 的栏位不再 在sql 语句中操作就行)。

二、逻辑删除

某些重要的数据【不能真正的删除】,可以在设计表的时候给他一个标志位,用于判断该数据是否有效,默认为有效,如果要删除这条数据就把他设置 为无效。

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

SQL 语句

一、数据库 操作

mysql 登录 :

mysql -u root -p

输入密码

1.显示当前所有的数据库

show databases;

2. 创建数据库

create database 数据库名 charset=utf8; (charset=utf8 这个是指定数据库字符集)

3.删除数据库

drop databases 数据库名;

4.切换数据库

use 数据库名;

5. 查看当前选择的数据库

select database();

二、 表操作

1.查看当前数据库中所有的表

show tables;

2.创建表

create table 表名(列及类型);

auto_increment 表示自动增长。例如:

create table student(id int auto_increment primary key,

name varchar(10) not null,

gender bit default 1,

brithday datetime);

3.查看表结构

desc 表名;

例如 :

desc student; 输出如下

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

| Field | Type | Null | Key | Default | Extra |

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

| id | int(11) | NO | PRI | NULL | auto_increment |

| name | varchar(10) | NO | | NULL | |

| gender | bit(1) | YES | | b'1' | |

| brithday | datetime | YES | | NULL | |

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

4 rows in set (0.00 sec)

4.修改表

alter table 表名 add|change|drop 列名 类型;

例如 :

alter table student add isDelete bit default 0;

【这个修改表尽量通过在设计表结构的时候通过预留栏位来避免,

因为表和表中数据已存在的情况下 再去 做这个操作很多情况下都会报错,

也可能导致之前的数据没了】

5.删除表

drop table 表名;

6.更改表名

rename table 原表名 to 新 表名;

例如:

rename table student to mystudent;

7.查看表的创建语句

show create table 表名;

例如 :

show create table student;

三、数据操作

1.查询

select ** from 表名;

2.增加

全列插入:insert into 表名 values(...)

例如:

insert into students value (0,'郭靖',1,'1994-02-14',0);

缺省插入:insert into 表名(列1,...) values(值1,...)

例如 :

insert into students (name,brithday) value ('黄蓉','1994-02-14');

同时插入多条数据:insert into 表名 values(...),(...)...;

例如 :

insert into students value (0,'杨过',1,'1994-02-14',0),(0,'小龙女',1,'1994-02-14',0);

或insert into 表名(列1,...) values(值1,...),(值1,...)...;

例如 :

insert into students (name,brithday) value ('黄药师','1994-02-14'),('洪七公','1994-02-14');

【主键列 是自动增长的,但是在全列 插入时需要占位,

通常使用 0 ,插入成功后以实际数据为准】

3.修改

updete 表名 set 列1=值1,...where 条件;

例如 :

update students set name='雕' where id=5;

4.删除 【这个是物理删除,删除了就没了】

delete from 表名 where 条件;

例如 :

delete from students where id = 6;

【如果没有给条件,那么 所有的数据就都被删除了!!!】

四、备份与恢复 【把数据 从一个服务器移动到另外一个服务器】

1.数据备份

进入超级管理员

sudo -s

进入 mysql 库目录

cd /var/lib/mysql

运行 mysqldump 命令

mysqldump -uroot -p 数据库名 > ~/备份文件.sql;

即 mysqldump -uroot -p 数据库名 > 备份的文件的路径加文件名;

按提示输入 mysql 的密码

此时使用超级管理员身份进入 ~ 目录下就能看到 备份文件.sql 这个文件。

这个 备份文件.sql 文件 其实里面是一堆 sql 语句(里面没有操作数据库的语句,

都是些创建表和增加数据的操作)。

2.数据恢复

连接 mysql ,创建数据库

退出连接,执行以下命令对数据进行恢复

mysql -uroot -p 数据库名 < ~/备份文件.sql

按提示输入 mysql 的密码

这样就把 之前 的数据恢复到 新建的数据库里面了。

总结 :

数据的备份说白了就是按照数据库中现有的数据生成一堆 sql 语句,

然后把这堆语句保存到一个指定的文件中,

数据恢复说白了就是先新建一个数据库,然后 通过这个脚本来生成数据。

如果跨服务器 ,这个脚本很重要。

猜你喜欢

转载自blog.csdn.net/qq_26128879/article/details/82594947