MySQL体积小、响应速度快、成本低,是时下最流行的关系型数据库管理系统之一,受到众多用户的追捧和喜爱。本文对MySQL的基本操作,如创建数据库、创建表格、查询、删除进行简单的总结。
0 基本命令汇集
操作、命令 | 语法 |
---|---|
启动MySQL服务器 | net start mysql服务器名 |
登录mysql用户 | mysql -u root -p Enter password: |
查询数据库 | show databases; |
创建数据库 | create database 数据库名; |
删除数据库 | drop database 数据库名; |
创建数据库用户 |
grant all privileges on mydb. * to user@localhost indentified by '12345' ; |
使用数据库 |
use 数据库名 ; |
查看当前数据库 | select database(); |
创建表格 | create table 表名(属性1名 数据类型 ,属性2名 数据类型2); |
查看表格 | show tables; |
查看表格详情 | desc 表名 |
删除表格 | drop 表名 |
插入记录 | insert into 表名(列名1,列名2...) values(值1,值2...); |
查询记录 | select 列名1,列名2... from 表名 [where/order by...] |
更新记录 | update 表名 set 列名1='值1',列名2='值2' where exep |
删除记录 | delete from 表名 where exep |
连接 | SELECT COL1... FROM TABLE1 INNER JOIN TABEL2 ON TABLE1.FOREIGHKEY=TABLE2.PRIMARYKEY [WHERE/ORDER BY] |
1 启动
(1)启动cmd命令提示符
两种方式可以启动cmd,第一种是在在所有程序找到命令提示符,搜索框输入命令提示符,点击进入。第二种方法是快捷键“Ctrl+R”输入“CMD”。
得到如下图的命令提示符的shell就可以开始了:
(2)启动 MySQL 服务器
net start mysql57
其中,mysql57是我的MySQL服务器名。
(3)登录MySQL账户
输入用户名和密码:
> mysql -u root -p
Enter password:
得到如图所示的提示信息,表示已经可以运行MySQL的SQL代码了。
提示”commands end with ; or \g.”指的是每条命令都要以“;”结束。
2 查询、创建、删除数据库
(1)查询MySQL中已有的数据库
>show databases;
(2)创建数据库mydb
>create database mydb;
再次查询可以看到,数据库库中增加了mydb。
(3)删除数据库
>drop database mydb;
因为没有以“;”结束,所以数据库认为命令未结束,不会执行任何操作,只需要在后面加上“;”就可以了。
数据库mydb已经被删除。
(4)创建数据库用户
如果一直以管理员身份进行操作会有诸多不便,因此可以对数据库创建专用用户,为数据库mydb创建用户名为user,密码为12345,并赋予所有权限:
grant all privileges on mydb. * to user@localhost indentified by '12345';
接下来推出管理员 root用户,登录刚刚创建的用户user,登录方法和之前的方法一样,先退出原先用户,再登录:
>exit;
>mysql -u user -p
Enter password:
(5)使用和查看当前数据库
指定使用某数据库,如mydb:
use mydb;
查看当前数据库:
select database();
如果想要指定使用mysql 数据库,则会提示Error,因为当前用户user没有权限使用mysql。
3 创建、查询和删除表格
(1)创建表格:
如创建名为customer的表格,其中有“mid、nam、birh、sex”四个属性:
属性 | 数据类型 | 说明 |
---|---|---|
mid | CHAR(5) | 用户id(主键) |
nam | VARCHAR(20) | 用户名 |
birh | DATETIME | 生日 |
sex | CHAR(1) | 性别(默认值为0) |
>create table customer(mid char(5) primary key,nam varchar(20),birh datetime,sex char(1) default'0');
(2)查询表和查看表详情
查看数据库中有哪些表:
>show tables;
查看表的属性:
>desc customer;
(3) 删除表格
>drop table custmer;
4 插入数据和查询数据
(1)在customer中插入一条数据:
>INSERT INTO customer values('N0001,'ekko','1993-09-01',1);
(2)查询数据
查询customer中的所有数据:
>select * from customer;
(3)自增序列 AUTO_INCREMENT
在创建表时设定某个属性是自增序列,则每插入一条数据,即使不指定值或者指定其他值,该属性总是会自动加1,:
>create table good (id INT AUTO_INCREMENT PRIMARY KEY,nam VARCHAR(30);
如果想要重新设定AUTO_INCREMENT的初始值,则
ALTER TABLE 表名 AUTO_INCREMENT=数值
,但是在执行这个命令之前必须先清空所有数据,否则无效。
在执行过程中,如果因为某些原因发生错误,无法停止怎么办?“Ctrl + c”
5 更新和删除数据
(1)更新数据
将id为g002的数据的用户名改为小明:
>UPDATE customer SET nam='小明' WHERE mid='g002';
执行命令之前:
执行命令之后:
(2)删除数据
删除id为“h001”的数据:
DELETE from customer where mid='h001';
6 检索查询记录
(1)查询所有记录
在之前提到过,比较简单,用*通配符表示所有,SELECT * FROM 表名;
(2)查询指定记录
SELECT 列名1,列名2··· FROM 表名[条件表达式];
(3)模糊检索
>SELECT nam FROM customer WHERE nam like '%明';
(4)多个条件组合
NOT ,AND , OR 组合使用
(5)结果排序
ASC表示升序,DESC表示降序;
>SELECT * from customer order by birh ASC,sex DESC;
(6)数据分组与统计函数
主要统计函数:
函数 | 说明 |
---|---|
AVG | 均值 |
COUNT | 计数 |
MAX | 最大值 |
MIN | 最小值 |
SUM | 求和 |
如要对mid进行计数,并按照性别分组:
>select sex,count(mid) from customer group by sex;
(7)别名
使用AS指定别名:
7 几个函数
(1)length函数
使用length返回字节数,使用char_length返回字符串长度,使用bit_length返回bit 单位长度;
(2)DATE_ADD函数
进行日期的加减运算
(3)EXTRACT函数
在日期中取出元素(如年、月、日等)
其它日期相关的函数:
函数 | 说明 |
---|---|
YEAR | 年 |
QUARTER | 季度 |
MONTH | 月 |
MONTHNAME | 月名 |
DAYOFMONT | 日(号码) |
DAYNAME | 星期名 |
DAYFOWEEK | 星期号码(1-7) |
HOUR | 小时 |
MINUTE | 分 |
SECOND | 秒 |
MICROSECOND | 微秒 |
(4)case函数
8 多个表连接
(1)内连接
内连接最为简单,表间的主键和外键相连接,只有数值一致才会连接;
>SELECT COL1... FROM TABLE1 INNER JOIN TABEL2 ON
TABLE1.FOREIGHKEY=TABLE2.PRIMARYKEY
[WHERE/ORDER BY]
(2)外连接(左连接和右连接)
内连接只有完全一致才会被连接在一起,而外链接会保留左边或者右边表格的全部符合要求的记录;
>SELECT COL1... FROM TABLE1 LEFT/RIGHT OUTER JOIN TABEL2 ON
TABLE1.FOREIGHKEY=TABLE2.PRIMARYKEY
[WHERE/ORDER BY]
(3)多个表的连接
多个表的连接是在两个表连接的基础上而产生,其原理相同,通过主键和外键不断地连接成一个新的表;