MySQL基础学习笔记

概念

数据库:文件夹data里面的一个个文件夹就是一个个数据库

数据表:数据库中的表,用于存放数据信息
MySQL:操作数据库(表)的一种语言

准备

1.安装phpstudy
2.。。。

进入到数据库

打开PHPstudy-进入其他选项菜单-MySQL工具-打开数据库目录

进到了MySQL-data这个目录,里面有四个文件夹,即有四个数据库

MySQL语句规则

1.每条语句以分号结尾;

2.关键词不区分大小写;

3.注释

#我是注释
-- 我是注释
/* 多行注释 */

数据库

显示所有数据库

show databases;

注:其中information_schema意思为‘信息共计’,不是一个数据库

与data里的文件夹一样

使用(进入)数据库

use 数据库名;

例如,进入‘test’数据库

会显示‘Database changed’,表明已经进入此数据库

创建数据库

create database 数据库名;

创建一个名为‘hello’的数据库名

在data中即可找到‘hello’

删除数据库

drop database 数据库名;

删除数据库‘hello’

在data中就没有这个数据库了

数据表

创建数据表

mysql> use test;
mysql> create table hello(
    -> id int unsigned not null auto_increment,
    -> email varchar(20) not null,
    -> age tinyint unsigned not null,
    -> primary key(id)
    -> );

注:

1.创建前,应指明在哪创建,切换到目的目录
2.使用‘create table 数据表名’创建,并且在创建的同时要设定表内的信息
3.表内信息位于表明后的括号内,每条信息以‘,’换行隔开
4.格式:列字段名 数据类型 修饰语句 not null
5.最后要加上primary key(主键)auto_increment必须制定为primary key;将id设为primary key : primary key(id)

查看当前数据库的表

show tables;

注:先切换到指定数据库

use 数据库名;

查看表结构

desc 表名;

查看创建表的sql语句

show create table 表名;

删除表

drop table 表名;

修改表

修改数据类型
alter table 表名 modify 字段名 数据类型;
修改字段名
alter table 表名 change 原名 新名;

插入数据

insert into 表名(字段名1,字段名2...)
            values
            (值1,值2...);

修改(更新)数据

update 表名 set 字段名1=新值,字段名2=新值;

可使用where子句指定更改的row

删除数据

delete from 表名 where...;

如果没有指定where子句,则会删除表中所有数据

DQL(数据查询语言)

获取某列值:

select 列名1,列名2... from 表名;

获取表所有值:

select * from 表名;

where子句

读取指定的数据

MySQL 的 WHERE 子句的字符串比较是不区分大小写的。
可以使用 BINARY 关键字来设定 WHERE 子句的字符串比较是区分大小写的。

如‘hello’表中数据为:

若要查询age为20的信息:

除了上面使用‘=’这个操作符,还有以下操作符:

like子句

LIKE 子句中使用百分号 %字符来表示任意字符,类似于正则表达式中的星号 *。

如果没有使用百分号 %, LIKE 子句与等号 = 的效果是一样的。

如,获取email字段以‘COM’结尾的记录:

select * from hello where email like '%com';

union

UNION 语句:用于将不同表中相同列中查询的数据展示出来;(不包括重复数据)

UNION ALL 语句:用于将不同表中相同列中查询的数据展示出来;(包括重复数据)

使用形式如下:

SELECT 列名称 FROM 表名称 UNION SELECT 列名称 FROM 表名称 ORDER BY 列名称;
SELECT 列名称 FROM 表名称 UNION ALL SELECT 列名称 FROM 表名称 ORDER BY 列名称;

注:使用union查询时,查询的列要与select查询的列相同

limit

select * from table limit m,n

其中m是指记录开始的index,从0开始,表示第一条记录
n是指从第m+1条开始,取n条。

select * from tablename limit 2,4
即取出第3条至第6条,4条记录

unique与primary

每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束

  • primary key 主键:主键必须包含唯一的值,不能包含NULL值
  • unique key 约束: 必须是唯一的值,可以包含NULL值

设置unique:

alter table user add unique(username);