mysql入门
2015-11-23 15:56:39

137
MySQL简介
MySQL 是一个真正的多用户、多线程SQL 数据库服务器。SQL (结构化查询语言) 是世界上最流行的和标准化的数据库语言。 MySQL 是以一个客户机/服务器结构的实现,它由一个服务器守护程序mysqld 和很多不同的客户程序和库组成。
RDBMS 术语
- 数据库: 数据库是一些关联的表的组成的集合。
- 数据表: 表是数据的载体。在一个数据库中的表看起来像一个简单的excel表格。
- 列: 一列包含了相同类型的数据, 例如用户表中的用户名。
- 行:一行是一组列组合成的数据,例如一条用户的数据。
- 主键:主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据。
- 外键:外键用于关联两个表。
Window上安装
1.官网下载安装文件
如果官网下载不下来可以访问此地址下载
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)
参考资料
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';