Mysql的历史度娘上一堆,就不再介绍了。

本文依照此路径学习Mysql数据库:数据库->表->数据

首先启动Mysql服务,然后通过控制台命令登入root账户输入密码回车

C:\Users>mysql -u root -p
Enter password: ******

闲话不说,直接进入Mysql命令的学习。

一:数据库

1.1:查看当前所有的数据库

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |   -- 此数据库存放mysql的元数据,基础数据。
| mysql              |  -- mysql配置数据库,包括用户信息(账户名、密码、权限管理)等。
| performance_schema |  -- mysql数据库软件的运行数据、日志信息、性能数据
+--------------------+
 rows in set (0.00 sec)

1.2:创建数据库,并命名为isole

mysql> create database isole;
Query OK,  row affected (0.00 sec)

1.3:查看数据库的默认字符集

mysql> show create database isole;
+----------+------------------------------------------------------------------+
| Database | Create Database                                                  |
+----------+------------------------------------------------------------------+
| isole    |  DEFAULT CHARACTER SET latin1 */ |
+----------+------------------------------------------------------------------+
 row in set (0.00 sec)

 由上可知,此数据库的编码为latin1,我们都知道通常我们使用utf-8编码

1.4:修改数据库的默认字符集并且查看,注意修改的时候utf-8写成utf8

mysql> alter database isole default character set utf8;
Query OK,  row affected (0.00 sec)

mysql> show create database isole;
+----------+----------------------------------------------------------------+
| Database | Create Database                                                |
+----------+----------------------------------------------------------------+
| isole    |  DEFAULT CHARACTER SET utf8 */ |
+----------+----------------------------------------------------------------+
 row in set (0.00 sec)

1.5:删除数据库

mysql> drop database isole;
Query OK,  rows affected (0.00 sec)

1.6:在创建数据库的时候指定编码的格式:

mysql> create database isole default character set utf8;
Query OK,  row affected (0.00 sec)

二:表的管理

2.1操作表首先要选择相关的数据库,此处我们选择isole数据库

mysql> use isole;
Database changed
mysql>

2.2创建表student 字段设sid sname sage三个

mysql> create table student(  -- student是表的名称
    -> sid int,    -- int 是类型
    -> sname varchar(),  -- (30)是字段长度
    -> sage int    -- sage是字段名称
    -> );
Query OK,  rows affected (0.18 sec)

mysql>

2.3查看当前数据库中所有的表

mysql> show tables;
+-----------------+
| Tables_in_isole |
+-----------------+
| student         |
+-----------------+
 row in set (0.00 sec)

mysql>

2.4查看某个表字段的结构,此处以student为例

mysql> desc student;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| sid   | int()     | YES  |     | NULL    |       |
| sname | varchar() | YES  |     | NULL    |       |
| sage  | int()     | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+

2.5:student表增加字段sgender varchar(2)

mysql> alter table student add column sgender varchar();
Query OK,  rows affected (0.34 sec)
Records:   Duplicates:   Warnings: 

2.6:student表修改字段sgender改成gender

mysql> alter table student change sgender gender varchar();
Query OK,  rows affected (0.13 sec)
Records:   Duplicates:   Warnings: 

2.7student表中的sid int修改字段类型为sid varchar(5)

mysql> alter table student modify sid varchar();
Query OK,  rows affected (0.41 sec)

2.8student表删除字段gender

mysql> alter table student drop gender;
Query OK,  rows affected (0.35 sec)
Records:   Duplicates:   Warnings: 

2.9修改表的名称student为teacher

mysql> alter table student rename teacher;
Query OK,  rows affected (0.06 sec)

2.10删除表teacher

mysql> drop table teacher;
Query OK,  rows affected (0.10 sec)

三:数据

先创建学生表,字段以及类型如下

mysql> create table student(
    -> sid int,
    -> sname varchar(),
    -> sgender varchar(),
    -> sage int
    -> );
Query OK,  rows affected (0.18 sec)

3.1增加数据

  3.1.1增加张三、李四的信息,插入对应字段的所有信息,此时可以不写出字段

mysql> insert into student values(,);
Query OK,  row affected (0.06 sec)

mysql> insert into student values(,);
Query OK,  row affected (0.06 sec)

  3.1.2增加王二的信息,此时不知道王二的年龄,注意字段与值必须一一对应!

mysql> insert into student(sid,sname,sgender) values(,'王二','女');
Query OK,  row affected (0.07 sec)

3.2修改数据

  3.2.1修改所有的数据(建议少用,因为会影响整个表的每个学生),此处将所有学生的性别设置为'女'

mysql> update student set sgender='女';
Query OK, 1 row affected (0.09 sec)
Rows matched: 3 Changed: 1 Warnings: 0

  3.2.2带条件的修改,修改id为1的学生,将其性别修改为男,年龄修改为22

mysql> update student set sgender= where sid=;
Query OK,  row affected (0.06 sec)
Rows matched:   Changed:   Warnings:  

3.3删除数据

  3.3.1删除所有数据

mysql>delete from student;
Query OK,  row affected (0.06 sec)

  3.3.2带条件的删除 删除sid=3的学生信息

mysql> delete from student where sid=;
Query OK,  row affected (0.06 sec)

 注意:数据的删除有两种,一种delete删除,另外一种是truncate删除

区别:

  delete from:     可以全表删除   1)可以带条件的删除 2)删除表的数据不删除表的约束 3)删除的数据可以回滚

  truncate table:可以全表删除 1)不可待条件的删除 2)删除表的数据以及表的约束    3)删除的数据不能够回滚

 四、查询数据

  4.1查询表中的所有数据,*代表所有字段

mysql> select *from student;
+------+-------+---------+------+
| sid  | sname | sgender | sage |
+------+-------+---------+------+
|     | 张三  | 男      |    |
|     | 李四  | 女      |    |
|     | 王二  | 女      | NULL |
+------+-------+---------+------+
 rows in set (0.00 sec)

  4.2查询某些列的数据,例如查询学生id和姓名

mysql> select sid,sname from student;
+------+-------+
| sid  | sname |
+------+-------+
|     | 张三  |
|     | 李四  |
|     | 王二  |
+------+-------+
 rows in set (0.00 sec)

  4.3查询时去除重复的字段,例如只查询有多少种性别

mysql> select distinct sgender from student;
+---------+
| sgender |
+---------+
| 男      |
| 女      |
+---------+
 rows in set (0.00 sec)

  4.4查询时指定别名  AS

mysql> select sid as '编号',sname as '姓名' from student;
+------+------+
| 编号 | 姓名 |
+------+------+
|     | 张三 |
|     | 李四 |
|     | 王二 |
+------+------+
 rows in set (0.00 sec)

  4.5条件查询,and(且)和or(或)

查询id为2且姓名为'李四'的学生信息

mysql>  and sname='李四';
+------+-------+---------+------+
| sid  | sname | sgender | sage |
+------+-------+---------+------+
|     | 李四  | 女      |    |
+------+-------+---------+------+
 row in set (0.00 sec)

查询id=3或者姓名为张三的学生信息

mysql>  or  sname='张三';
+------+-------+---------+------+
| sid  | sname | sgender | sage |
+------+-------+---------+------+
|     | 张三  | 男      |    |
|     | 李四  | 女      |    |
+------+-------+---------+------+
 rows in set (0.00 sec)

为王二同学录入年龄信息

mysql> update student  where sname='王二';
Query OK,  row affected (0.06 sec)
Rows matched:   Changed:   Warnings: 

查询student表中年龄小于等于20岁的学生

mysql> select *from student where sage<=20;
+------+-------+---------+------+
| sid | sname | sgender | sage |
+------+-------+---------+------+
| 2 | 李四 | 女 | 20 |
| 3 | 王二 | 女 | 12 |
+------+-------+---------+------+
2 rows in set (0.00 sec)

查询student 表中年龄在19-21之间的学生

-- 方法1:
mysql>  and sage<;
+------+-------+---------+------+
| sid  | sname | sgender | sage |
+------+-------+---------+------+
|     | 李四  | 女      |    |
+------+-------+---------+------+
 row in set (0.00 sec)

-- 方法2:

mysql>  and ;
+------+-------+---------+------+
| sid  | sname | sgender | sage |
+------+-------+---------+------+
|     | 李四  | 女      |    |
+------+-------+---------+------+
 row in set (0.00 sec)

-- 查询性别不是'男'的学生

mysql> select *from student where sgender <> '男';

+------+-------+---------+------+
| sid | sname | sgender | sage |
+------+-------+---------+------+
| 2 | 李四 | 女 | 20 |
| 3 | 王二 | 女 | 12 |
+------+-------+---------+------+
2 rows in set (0.00 sec)

模糊查询Like

-- % 表示任意个任意字符
-- _ 表示一个任意字符

查询姓'李'的学生的信息
mysql> select *from student where sname like '李%';
+------+-------+---------+------+
| sid  | sname | sgender | sage |
+------+-------+---------+------+
|     | 李四  | 女      |    |
+------+-------+---------+------+
 row in set (0.00 sec)

增加字段math并且录入成绩

mysql> alter table student add math float;
Query OK,  rows affected (0.33 sec)
Records:   Duplicates:   Warnings: 

mysql> update student  ;
Query OK,  row affected (0.07 sec)
Rows matched:   Changed:   Warnings: 

mysql> update student  ;
Query OK,  row affected (0.08 sec)
Rows matched:   Changed:   Warnings: 

mysql> update student  ;
Query OK,  row affected (0.05 sec)
Rows matched:   Changed:   Warnings: 

聚合查询

常见的聚合函数:sum()  avg()  max()   min()  count()

mysql> select sum(math) as'数学总分' from student;
+----------+
| 数学总分 |
+----------+
|       |
+----------+
mysql> select avg(math) as '数学平均分' from student;
+-------------------+
| 数学平均分        |
+-------------------+
| 80.33333333333333 |
+-------------------+

mysql> select max(math) as '数学最高分' from student;
+------------+
| 数学最高分 |
+------------+
| 97 |
+------------+

mysql> select min(math) as '数学最低分' from student;
+------------+
| 数学最低分 |
+------------+
| 57 |
+------------+

mysql> select count(*) as'当前人数为' from student;
+------------+
| 当前人数为 |
+------------+
| 3 |
+------------+

查询排序 order by DESC /ASC

数学成绩的倒序
mysql> select *from student order by math desc;
+------+-------+---------+------+------+
| sid  | sname | sgender | sage | math |
+------+-------+---------+------+------+
|     | 王二  | 女      |    |    |
|     | 张三  | 男      |    |    |
|     | 李四  | 女      |    |    |
+------+-------+---------+------+------+
数学成绩的正序
mysql> select *from student order by math asc;
+------+-------+---------+------+------+
| sid  | sname | sgender | sage | math |
+------+-------+---------+------+------+
|     | 李四  | 女      |    |    |
|     | 张三  | 男      |    |    |
|     | 王二  | 女      |    |    |
+------+-------+---------+------+------+
数学成绩倒序,年龄正序(当数学成绩一样的时候以年龄正序排序)
mysql> select *from student order by math desc,sage asc;
+------+-------+---------+------+------+
| sid  | sname | sgender | sage | math |
+------+-------+---------+------+------+
|     | 王二  | 女      |    |    |
|     | 张三  | 男      |    |    |
|     | 李四  | 女      |    |    |

分组查询 group by

mysql> select sgender,count(*)from student group by sgender;
+---------+----------+
| sgender | count(*) |
+---------+----------+
| 女      |         |
| 男      |         |
+---------+----------+
 rows in set (0.00 sec)

分页查询 limit

起始行从0开始 公式:select *from student limit(当前页-1)*每页显示多少条,每页显示多少条;

mysql> ,;
+------+-------+---------+------+------+
| sid  | sname | sgender | sage | math |
+------+-------+---------+------+------+
|     | 张三  | 男      |    |    |
|     | 李四  | 女      |    |    |
+------+-------+---------+------+------+

特别板块,判空条件(null / '  ')

关键字: is null  /  is not null  /  ="  / <>"   null代表没有该值,空字符串有值且对应ASCII码值是:32

-- 判断null

select *from student where <字段名称>is null;

--判断空

select *from student where 字段名称=";

-- 判断空字符串或者null

select *from student where 字段名称 is null or 字段名称=";

2016-11-23 21:00:47 isole于博客园

Mysql基础(一)的更多相关文章

  1. Mysql基础代码(不断完善中)

    Mysql基础代码,不断完善中~ /* 启动MySQL */ net start mysql /* 连接与断开服务器 */ mysql -h 地址 -P 端口 -u 用户名 -p 密码 /* 跳过权限 ...

  2. MYSQL基础操作

    MYSQL基础操作 [TOC] 1.基本定义 1.1.关系型数据库系统 关系型数据库系统是建立在关系模型上的数据库系统 什么是关系模型呢? 1.数据结构可以规定,同类数据结构一致,就是一个二维的表格 ...

  3. 【夯实Mysql基础】记一次mysql语句的优化过程

    1. [事件起因] 今天在做项目的时候,发现提供给客户端的接口时间很慢,达到了2秒多,我第一时间,抓了接口,看了运行的sql,发现就是 2个sql慢,分别占了1秒多. 一个sql是 链接了5个表同时使 ...

  4. MySQL基础(非常全)

    MySQL基础 一.MySQL概述 1.什么是数据库 ? 答:数据的仓库,如:在ATM的示例中我们创建了一个 db 目录,称其为数据库 2.什么是 MySQL.Oracle.SQLite.Access ...

  5. mysql 基础篇5(mysql语法---数据)

    6 增删改数据 -- ********一.增删改数据********* --- -- 1.1 增加数据 -- 插入所有字段.一定依次按顺序插入 INSERT INTO student VALUES(1 ...

  6. MySQL 基础语句

    MySQL 基础语句 多个知识点 ----------------------------------------------------------------------------------- ...

  7. MySQL:基础—数据分组

    MySQL:基础-数据分组 1.为什么要分组: 比如一个表中有多条订单记录,如上图,每条记录对应着一个商品,现在我要查询 每个商品被订购的单数 准备出货?也就是找到每个商品被订购的数量. 如果只找一个 ...

  8. MySQL基础学习总结

    1.MySQL基础概念 mysql逻辑架构如下: 每个客户端连接都会在服务器中拥有一个线程,这个连接的查询只会在这个单独的线程中执行. MySQL是分层的架构.上层是服务器层的服务和查询执行引擎,下层 ...

  9. MySQL基础(五)——视图

    MySQL基础(五)--视图

  10. MySQL基础(四)——索引

    MySQL基础(四)--索引

随机推荐

  1. bootstrap-datetimepicker在火狐下报错的问题

    问题:使用bootstrap-datetimepicker这个日期插件来显示日期,但在火狐下报如下错误:TypeError: (intermediate value).toString(...).sp ...

  2. python编码最佳实践之总结

    相信用python的同学不少,本人也一直对python情有独钟,毫无疑问python作为一门解释性动态语言没有那些编译型语言高效,但是python简洁.易读以及可扩展性等特性使得它大受青睐. 工作中很 ...

  3. virtualBox安装Centos7之后

    之前用vmware装虚拟机的时候,直接配置好网卡就可以ping通,可以用ssh登录,然后配置yum源,万事大吉. 但是virtualBox配置却有不同,需要按下面的方法配置: 选中虚拟机->设置 ...

  4. [LeetCode] Evaluate Reverse Polish Notation 计算逆波兰表达式

    Evaluate the value of an arithmetic expression in Reverse Polish Notation. Valid operators are +, -, ...

  5. 编写轻量ajax组件01-对比webform平台上的各种实现方式

    前言 Asp.net WebForm 和 Asp.net MVC(简称MVC) 都是基于Asp.net的web开发框架,两者有很大的区别,其中一个就是MVC更加注重http本质,而WebForm试图屏 ...

  6. Mysql基本语句的总结

    1---------------创建一个表------------------------------------ drop table if exists 表名 create   table 表名( ...

  7. 第一章 MYSQL的架构和历史

    在读第一章的过程中,整理出来了一些重要的概念. 锁粒度  表锁(服务器实现,忽略存储引擎). 行锁(存储引擎实现,服务器没有实现). 事务的ACID概念 原子性(要么全部成功,要么全部回滚). 一致性 ...

  8. acm结束了

    最后一场比赛打完了.之前为了记录一些题目,开了这个博客,现在结束了acm,这个博客之后也不再更新了. 大家继续加油!

  9. Office 365 如何使用powershell查询邮件追踪

    如何使用Powershell 对office365的邮件进行查询追踪 1. 首先链接到Exchange Online 管理上面 $UserCredential = Get-Credential $Se ...

  10. 关于PHP扩展开发(收藏)

    一.Linux shell命令: ls –lh    查看文件大小 du –a    查看文件及文件夹大小 -------------------------- nginx ------------- ...