MySQL是最流行的关系型数据库管理系统之一,也是服务器系统的必备组件之一。
下面介绍MySQL数据的安装和基础使用方法。
1.安装MySQL
首先,查看一下安装源上的MySQL版本。
jishu@Jishu:~$ sudo apt-cache search mysql
......
mysql-client - MySQL database client (metapackage depending on the latest version)
mysql-client-5.7 - MySQL database client binaries
mysql-client-core-5.7 - MySQL database core client binaries
mysql-common - MySQL database common files, e.g. /etc/mysql/my.cnf
mysql-server - MySQL database server (metapackage depending on the latest version)
mysql-server-5.7 - MySQL database server binaries and system database setup
mysql-server-core-5.7 - MySQL database server binaries
......
直接安装MySQL 5.7版本。
sudo apt-get install mysql-server-5.7
安装完成后,确认一下MySQL数据库是否正常。
jishu@Jishu:~$ sudo mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.30-0ubuntu0.18.04.1 (Ubuntu)
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
出现上面的提示表示已经连接到MySQL数据库,数据库工作正常。
MySQL服务的启动关闭命令如下:
service mysql start
service mysql stop
service mysql restart
2.MySQL数据库基本操作
2.1 连接数据库
mysql -h host -u 用户名 -p 输入密码
-h参数 默认为localhost
2.2 用户操作
2.2.1 新建用户
create user 'test'@'localhost' identified by '1234';
上述语句创建一个只能在本地登录的test用户,无法远程登录。创建远程登录用户的语句为:
create user 'test'@'%' identified by '1234';
2.2.2 查询用户
select user,host from mysql.user;
如果想看到用户的所有信息,也可以用:
select * from mysql.user;
2.2.3 删除用户
drop user test@'localhost';
或
drop user test@'%';
2.2.4 修改用户密码
update mysql.user set authentication_string=password('123456') where user='test';
flush privileges;
在MySQL 5.7版本中,user表中用户密码字段已经改为authentication_string,不是password。
用户密码修改之后,一定要刷新权限,否则修改不起效。
2.2.4 用户分配权限
grant all privileges on testdb.* to test@'%' identified by '123456';
grant create,alter,drop,select,insert,update,delete on testdb.* to test@'%' identified by '123456';
flush privileges;
2.3 数据库操作
2.3.1 创建数据库
简单的创建命令:
create database testdb;
约定默认字符类型,判断是否重名的创建命令:
create database if not exists testdb default charset utf8 collate utf8_general_ci;
2.3.2 选择数据库
use testdb;
2.3.3 删除数据库
drop database testdb;
2.4 表操作
2.4.1 创建表
表的创建是数据库中非常重要的功能,基本格式如下:
create table 表名
(
列名 数据类型 [约束],
...
);
约束的类型主要有主键约束、外键约束、非空约束、唯一约束、默认约束
1)主键约束:要求主键列的数据是唯一,且不允许为空。
格式为:字段名 数据类型 primary key
2)外键约束:用来在两个表之间建立连接。
格式为:constraint 外键名 foreign key 字段名 references 主表名(主键列)
3)非空约束:指字段值不能为空。
格式为:字段名 数据类型 not null
4)唯一约束:要求该列值唯一,允许为空,但只能出现一个空值。
格式为:字段名 数据类型 unique
5)默认约束:指定某列的默认值。
格式为:字段名 数据类型 default 默认值
6)设置表的属性值自增:一个表只能有一个字段使用自增约束,且该字段必须为主键的一部分。
格式为:字段名 数据类型 auto_increment
2.4.2 查看表结构
describe 表名 / desc 表名
2.4.3 修改表名
alter table 旧表名 rename 新表名;
2.4.4 修改表字段/结构
alter table 表名 modify/add/change/drop ..
2.4.5 删除表
drop table 表名;
2.4.6 查询表数据
select 字段, 字段 from 表名 where 条件
2.4.7 插入数据
insert into 表名 (列字段列表) values(值内容列表);
2.4.8 更新数据
update 表名 set 列名 = 值 , ....列名 = 值 where 条件;
2.4.9 删除数据
delete from 表名 where 条件;