(菜鸟教程)[http://www.runoob.com/mysql/mysql]
Mysql是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。
ubuntu16.04下安装:
sudo apt-get update
sudo apt-get install mysql-server
sudo mysql_secure_installation # 5.7版本自带的初始化数据目录命令
systemctl status mysql.service # 查看MySQL服务器状态
如何启动/停止/重启MySQL
一、 启动方式
1、使用 service 启动:service mysql start
2、使用 mysqld 脚本启动:/etc/inint.d/mysql start
3、使用 safe_mysqld 启动:safe_mysql&
二、停止
1、使用 service 启动:service mysql stop
2、使用 mysqld 脚本启动:/etc/inint.d/mysql stop
3、mysqladmin shutdown
三、重启
1、使用 service 启动:service mysql restart
2、使用 mysqld 脚本启动:/etc/inint.d/mysql restart
安装可视化工具navicat:
官网下载:https://www.navicat.com.cn/download/navicat-premium
切换到下载文件的目录解压:
tar -zxvf navicat_yourversion.tar.gz
运行命令启动
./start_navicat
打开start_navicat文件,会看到export LANG="en_US.UTF-8" 将这句话改为 export LANG="zh_CN.UTF-8" 就OK了。至此安装结束。
破解方案:
第一次执行start_navicat时,会在用户主目录下生成一个名为.navicat的隐藏文件夹。
cd /home/X/.navicat/
此文件夹下有一个system.reg文件
rm system.reg
把此文件删除后,下次启动navicat 会重新生成此文件,30天试用期会按新的时间开始计算。
1.启动关闭
Mac上系统偏好中可以开启关闭
在终端中:
#启动MySQL服务
sudo /usr/local/mysql/support-files/mysql.server start
#停止MySQL服务
sudo /usr/local/mysql/support-files/mysql.server stop
#重启MySQL服务
sudo /usr/local/mysql/support-files/mysql.server restart
2.基本操作
登陆:
mysql -h localhost -u root -p
-h 指定主机名,若为远程主机要加主机名/IP地址
-u 指定用户
-p 指定需要使用密码登陆
创建数据库
create database test; # 创建名为test的数据库
use test; #使用数据库
创建表
create table student(
id char(10) not null primary key,
age int not null
); #创建名为student的表,要写列声明
describe student #查看名为student的表
CREATE TABLE `employee_tbl` (
`id` int(11) NOT NULL,
`name` char(10) NOT NULL DEFAULT '',
`date` datetime NOT NULL,
`singin` tinyint(4) NOT NULL DEFAULT '0' COMMENT '登录次数',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
插入数据
insert into 表名 values(值1,值2) #向表中插入一条数据
查询
select 列名 from 表名 [查询条件]
select * from 表名 #查询全部数据
select * from student where name='xiaoxiao'; #查看name为xiaoxiao的数据
select * from student where name like '%xiao' and sex='male';
修改
update 表名 set 列名=新值 where 查询条件
eg:
update student set name='haha' where address='beijing'
删除数据
delete from 表名 where 删除条件
eg:
delete from student #删除整个表成为空表
修改表
#修改表中的列
alter table 表名 change 原列名 新列名 数据类型;
#删除列
alter table 表名 drop 列名
#重命名表名
alter table 表名 rename 新表名
#删除表
drop table 表名
#删除数据库
drop database 数据库名
union
#下面的 SQL 语句从 "Websites" 和 "apps" 表中选取所有不同的country(只有不同的值):
SELECT country FROM Websites
UNION
SELECT country FROM apps
ORDER BY country;
#下面的 SQL 语句使用 UNION ALL 从 "Websites" 和 "apps" 表中选取所有的country(也有重复的值):
SELECT country, name FROM Websites
WHERE country='CN'
UNION ALL
SELECT country, app_name FROM apps
WHERE country='CN'
ORDER BY country;
排序order by
SELECT field1, field2,...fieldN table_name1, table_name2...
ORDER BY field1, [field2...] [ASC [DESC]]
asc升序,默认升序
desc降序
SELECT * from table ORDER BY submission_date DESC;
GROUP BY 语句
SELECT column_name, function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;
在分组的列上我们可以使用 COUNT, SUM, AVG,等函数。
SELECT name, COUNT(*) FROM employee_tbl GROUP BY name;
SELECT name, SUM(singin) as singin_count FROM employee_tbl GROUP BY name WITH ROLLUP;
SELECT coalesce(name, '总数'), SUM(singin) as singin_count FROM employee_tbl GROUP BY name WITH ROLLUP;
select coalesce(a,b,c);
参数说明:如果a==null,则选择b;如果b==null,则选择c;如果a!=null,则选择a;如果a b c 都为null ,则返回为null(没意义)。
Mysql 连接的使用
你可以在 SELECT, UPDATE 和 DELETE 语句中使用 Mysql 的 JOIN 来联合多表查询。
JOIN 按照功能大致分为如下三类:
- INNER JOIN(内连接,或等值连接):获取两个表中字段匹配关系的记录。
- LEFT JOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录。
- RIGHT JOIN(右连接): 与 LEFT JOIN 相反,用于获取右表所有记录,即使左表没有对应匹配的记录。
SELECT a.runoob_id, a.runoob_author, b.runoob_count FROM runoob_tbl a INNER JOIN tcount_tbl b ON a.runoob_author = b.runoob_author;
null
条件查询:
where name is null;
where name is not null;