python@ubuntu:~$ mysql -uroot -pmysql
创建数据库:create database 数据库名 charset=utf-8; 创建表 create table 表名(字段 类型 约束); id int auto_increment primary key not null; 插入数据 insert into 表名(...) value(...); 修改数据 update 表名 set 字段名=值; 删除数据 delete from 表名 ; 逻辑删除: alter into 表名 add isDelete bit default 0; update 表名 set isDelete=1; select * from 表名
1 远程连接mysql
- 安装
sudo apt-get install mysql-server mysql-client
然后按照提示输入
- 管理服务
启动
service mysql start
停止
service mysql stop
重启
service mysql restart
- 允许远程连接
#找到mysql配置文件并修改 sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf 将bind-address=127.0.0.1注释 #登录mysql,运行命令 grant all privileges on *.* to 'root'@'%' identified by 'mysql' with grant option; flush privileges; #重启mysql
2.添加表
3.逻辑删除
- 对于重要数据,并不希望物理删除,一旦删除,数据无法找回
- 一般对于重要数据,会设置一个isDelete的列,类型为bit,表示逻辑删除
- 大于大量增长的非重要数据,可以进行物理删除
- 数据的重要性,要根据实际开发决定
4.命令操作
python@ubuntu:~$ mysql --help #查看命令 python@ubuntu:~$ mysql -uroot -pmysql #连接
#查看版本 mysql> select version(); +-------------------------+ | version() | +-------------------------+ | 5.7.20-0ubuntu0.16.04.1 | +-------------------------+ 1 row in set (0.00 sec) 查看版本:select version(); 显示当前时间:select now();
5.远程连接
- 一般在公司开发中,可能会将数据库统一搭建在一台服务器上,所有开发人员共用一个数据库,而不是在自己的电脑中配置一个数据库
- 运行命令
mysql -hip地址 -uroot -p
- -h后面写要连接的主机ip地址
- -u后面写连接的用户名
- -p回车后写密码
6.数据库操作
#创建数据库 create database 数据库名 charset=utf8; #删除数据库 drop database 数据库名; #切换数据库 use 数据库名; #查看当前选择的数据库 select database();
7.表操作
- 创建表
auto_increment表示自动增长
create table 表名(列及类型);
mysql> create table school( -> id int auto_increment primary key not null, -> name varchar(10) not null, -> gender bit default 1, -> birthday datetime);
-
修改表
alter table 表名 add|change|drop 列名 类型;
如:
mysql> alter table school add idDelete bit default 0;
删除表 drop table 表名; 查看表结构 desc 表名; 更改表名称 rename table 原表名 to 新表名; 查看表的创建语句 show create table 表名;
mysql> show create table school; -----+ | school | CREATE TABLE `school` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(10) NOT NULL, `gender` bit(1) DEFAULT b'1', `birthday` datetime DEFAULT NULL, `idDelete` bit(1) DEFAULT b'0', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 | +--------+-----------------------------
8.数据操作
- 查询
select * from 表名
- 增加
1.全列插入:insert into 表名 values(...) mysql> insert into students values(0,"腾旭",1,"1999-9-9",0); +----+--------+--------+---------------------+----------+ | id | name | gender | birthday | isDelete | +----+--------+--------+---------------------+----------+ | 1 | 腾旭 | | 1999-09-09 00:00:00 | |
2.缺省插入:insert into 表名(列1,...) values(值1,...) mysql> insert into students(name) values('网易');
mysql> insert into students(gender,name) values(1,'小米');
3.mysql 特有的
同时插入多条数据:insert into 表名 values(...),(...)...;
或insert into 表名(列1,...) values(值1,...),(值1,...)...;
mysql> insert into students(name) values('百度'),('酷狗'),('QQ'); +----+--------+--------+---------------------+----------+ | id | name | gender | birthday | isDelete | | 5 | 百度 | | NULL | | | 6 | 酷狗 | | NULL | | | 7 | QQ | | NULL | | +----+--------+--------+---------------------+----------+
- 修改
update 表名 set 列1=值1,... where 条件
mysql> update students set birthday = '1990-2-2' where id=2; mysql> update students set gender=0,birthday='2017-2-13' where id=6;
- 删除物理
mysql> delete from students where id=5;
- 逻辑删除,本质就是修改操作update
alter table students add isdelete bit default 0;
如果需要删除则
update students isdelete=1 where ...;
mysql> update students set isDelete=1 where id=6; mysql> select * from students where isDelete=0;
9.备份与恢复
数据备份
#进入超级管理员 sudo -s #进入mysql库目录 cd /var/lib/mysql #运行mysqldump命令 mysqldump –uroot –p 数据库名 > ~/Desktop/备份文件.sql; 按提示输入mysql的密码
root@ubuntu:/var/lib/mysql# mysqldump -uroot -p python3 > ~/Desktop/bak.sql python@ubuntu:~/Desktop$ vim bak.sql 一系列的sql语句
数据恢复
连接mysqk,创建数据库 退出连接,执行如下命令 mysql -uroot –p 数据库名 < ~/Desktop/备份文件.sql 根据提示输入mysql密码
mysql> create database py31 charset=utf8;
python@ubuntu:~/Desktop$ mysql -uroot -p py31 < bak.sql