珠峰培训

mysql入门

作者:

2015-11-23 15:56:39

137

MySQL简介

MySQL 是一个真正的多用户、多线程SQL 数据库服务器。SQL (结构化查询语言) 是世界上最流行的和标准化的数据库语言。 MySQL 是以一个客户机/服务器结构的实现,它由一个服务器守护程序mysqld 和很多不同的客户程序和库组成。

RDBMS 术语

  • 数据库: 数据库是一些关联的表的组成的集合。
  • 数据表: 表是数据的载体。在一个数据库中的表看起来像一个简单的excel表格。
  • 列: 一列包含了相同类型的数据, 例如用户表中的用户名。
  • 行:一行是一组列组合成的数据,例如一条用户的数据。
  • 主键:主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据。
  • 外键:外键用于关联两个表。

Window上安装

1.官网下载安装文件

mysql

如果官网下载不下来可以访问此地址下载

七牛mysql

2.要求先登陆,可以先注册后登陆

3.登陆后可以下载

4.打开下载后的文件一路下一步

启动服务器

1.如果已经安装为windows服务启动方式,在命令行窗口或运行框架里执行

C:\Program Files\MySQL\MySQL Server 5.7\bin>net start MYSQL57
MySQL57 服务正在启动 .
MySQL57 服务已经启动成功。

2.如果未安装为windows服务 先找到mysql的安装位置,如我的电脑的安装位置是:C:\Program Files\MySQL\MySQL Server 5.7\bin 进入Mysql目录下的bin目录中,在当前目录打开命令行执行

mysqld.exe --defaults-file="C:\ProgramData\MySQL\MySQL Server 5.7\my.ini

停止服务器

1.如果已经安装为windows服务启动方式,在命令行窗口或运行框架里执行

C:\Program Files\MySQL\MySQL Server 5.7\bin>net stop MYSQL57
MySQL57 服务正在停止.
MySQL57 服务已成功停止。

2.如果未安装为windows服务
先找到mysql的安装位置,如我的电脑的安装位置是:C:\Program Files\MySQL\MySQL Server 5.7 进入Mysql目录下的bin目录中,在当前目录打开命令行执行

mysqladmin -u root shutdown -p123456

检查客户端

在成功安装Mysql后,一些基础表会表初始化,在服务器启动后,你可以通过简单的测试来验证Mysql是否工作正常。 使用 mysqladmin 工具来获取服务器状态: 使用 mysqladmin 命令俩检查服务器的版本,在linux上该二进制文件位于 /usr/bin ,在window上该二进制文件位于C:\Program Files\MySQL\MySQL Server 5.7\bin。

C:\Program Files\MySQL\MySQL Server 5.7\bin>mysqladmin --version
mysqladmin  Ver 8.42 Distrib 5.7.9, for Win64 on x86_64

执行简单的SQL命令

你可以在 MySQL Client(Mysql客户端) 使用 mysql 命令连接到Mysql服务器上,默认情况下Mysql服务器的密码为空,所以本实例不需要输入密码。 命令如下:

C:\Program Files\MySQL\MySQL Server 5.7\bin>mysql -uroot -p123456

以上命令执行后会输出 mysql>提示符,这说明你已经成功连接到Mysql服务器上,你可以在 mysql> 提示符执行SQL命令:

mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | performance_schema |
    | sakila             |
    | sys                |
    | world              |
    +--------------------+
    6 rows in set (0.00 sec)

参考资料

windows下启动mysql服务

mac安装

1.先安装 homebrew 2.再执行

brew install mysql

wamp安装

Windows下的Apache+Mysql/MariaDB+Perl/PHP/Python,一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。 wampserver

创建数据库

create database [if not exists] db_name;
create database test04;

显示数据库

show databases [like wild];
show databases;
show databases like 'st%';

切换数据库

use db_name;
use test;

删除数据库

drop database [if exists] db_name;
drop database if exists test;

创建数据库表

create table tbl_name(create_definition,...) [type =table_type] 
create_definition:col_name type [not null | null][default default_value] [auto_increment][primary_key] 

create table stu(id varchar(50) not null auto_increment primary key,
name varchar(32) null default "zfpx",
age int(5)null default 18);

显示数据库表信息

show tables [from db_name] [like wild] 
show columns from tbl_name [from db_name] [like wild] 


show tables from  zfpx;
show tables from  zfpx like "%f%"; 

show columns from zfpx;
show columns from student from zfpx like "%n%";

alter修改表结构

增加列
alter table tbl_name add col_name type
alter table student add weight int;

修改列
alter table student modify home varchar(50);

删除列
alter table student drop home;

给表更名
alter table student rename stu; 

删除数据库表

drop table [if exists] tbl_name [, tbl_name,...] 
drop table if exists stu; 

添加数据

insert [into] tbl_name [(col_name,...)] VALUES (pression,...)
insert into student values('zfpx','18');

查询数据

select selection_list  //选择哪些列 
from table_list  //从何处选择行 
where primary_constraint  //行必须满足什么条件 
group by grouping_columns // 怎样对结果分组 
having secondary_constraint  //行必须满足的第二条件 
order by sorting_columns //怎样对结果排序 
limit count  //结果限定

普通查询

select columns from tb_name;
select * from student;//查询当前表里所有的列的数据
select name,age from student;//查询当前表里name列和age列的所有数据
select 2+2;//表达式求值而不引用任何表

条件查询

select columns from tb_name where expression
select * from student where name ="zfpx";//筛选出当前表中name的值是zfpx的所有数据。

查询排序

order by column_name [asc|desc] [,…]  
select * from student order by age asc;//按照年龄升序输出

分组计数

group by col_name,….

select name,count(*) from student group by name;//按name分组,并且统计每组的记录数

分组过滤

select home,count(*) from student group by home having home='beijing';//按home分组,显示分组名称为beijing的记录数

分页查询

每页2条,查询第2页
select * from student limit 2,2

表关联查询

select t1.name,t2.name from tb_name1 as t1,tb_name2 as t2 where t1.name=t2.name;
select student.name,score.score from student,score where student.id = score.stuid

更新数据

update tbl_name SET 要更改的列  where 要更新的记录
update student set name= 'zfpx2' where age='18';

删除数据

delete from tbl_name where 要删除的记录 
delete from student where name= 'zfpx2'; 

上一篇 :

设计模式

下一篇 :

websocket&socket.io