MySQL

MySQL

  • 安装
  • 客户端命令
  • 图形界面sqlyog使用
  • DQL(Data Query Language)语言
  • DDL(Data Definition Language)
    • 级联设置
  • DML(Data Manipulation Language)
  • DCL(Data Control Language)
  • 约束
  • 自增长
  • 事务
    • 事务隔离级别
  • 变量
    • 系统变量(全局变量,回话变量)
    • 自定义变量(用户变量,局部变量)
      • 用户变量
      • 局部变量
  • 存储过程跟函数
    • 存储过程
    • 函数
  • 流程控制
  • 循环结构

以下知识大致过以下基础,作为本人复习巩固使用;

安装

  1. 官网下载 : https://dev.mysql.com/downloads/mysql
  2. 可以下载msi版本一键安装,默认配置即可,也可以使用 绿色版解压后安装
  3. 安装完成之后可以通过管理员命令行来启动或者停止服务;
PS C:\WINDOWS\system32> net stop mysql
MySQL 服务正在停止.
MySQL 服务已成功停止。

PS C:\WINDOWS\system32> net start mysql
MySQL 服务正在启动 .
MySQL 服务已经启动成功。

PS C:\WINDOWS\system32>
  1. 进入mysql客户端:命令行使用 mysql -h localhost -P 3306 -u root -p 【回车】密码,本机可以省略主机跟端口;
C:\Users\lenovo>mysql -h localhost -P 3306 -u root -p
Enter password: ******
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.5.62 MySQL Community Server (GPL)

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

客户端命令

  1. show databases:显示所有数据库
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.00 sec)

mysql>
  1. use test:使用test库
mysql> use test;
Database changed
mysql>
  1. show tables [from 库]:显示库中的表;
mysql> show tables;
Empty set (0.00 sec)

mysql> show tables from mysql;
+---------------------------+
| Tables_in_mysql           |
+---------------------------+
| columns_priv              |
| db                        |
| event                     |
| func                      |
| general_log               |
| help_category             |
| help_keyword              |
| help_relation             |
| help_topic                |
| host                      |
| ndb_binlog_index          |
| plugin                    |
| proc                      |
| procs_priv                |
| proxies_priv              |
| servers                   |
| slow_log                  |
| tables_priv               |
| time_zone                 |
| time_zone_leap_second     |
| time_zone_name            |
| time_zone_transition      |
| time_zone_transition_type |
| user                      |
+---------------------------+
24 rows in set (0.00 sec)

mysql>
  1. select database():显示当前库
mysql> select database();
+------------+
| database() |
+------------+
| test       |
+------------+
1 row in set (0.00 sec)

mysql>
  1. desc table:表示显示表的详细信息;
mysql> create table stuinfo(
    -> id int,
    -> name varchar(20));
Query OK, 0 rows affected (0.02 sec)

mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| stuinfo        |
+----------------+
1 row in set (0.00 sec)

mysql> desc stuinfo;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(11)     | YES  |     | NULL    |       |
| name  | varchar(20) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.01 sec)

mysql>
  1. 查看数据库版本:1、在mysql客户端内使用select version() 2、在命令行内使用mysql --versin 或者 mysql -V
mysql> select version();
+-----------+
| version() |
+-----------+
| 5.5.62    |
+-----------+
1 row in set (0.00 sec)

mysql> quit
Bye

C:\Users\lenovo>mysql --version
mysql  Ver 14.14 Distrib 5.5.62, for Win64 (AMD64)

C:\Users\lenovo>mysql -V
mysql  Ver 14.14 Distrib 5.5.62, for Win64 (AMD64)

C:\Users\lenovo>

图形界面sqlyog使用

  1. 安装:官网下载安装即可

DQL(Data Query Language)语言

  1. select 查询列表 from 表 where 条件 group by 字段 order by 字段 limit ;
    1. 查询列表:表中的字段,常量值,表达式,函数
    2. 查询结果是一个虚拟的表格
  2. 加号的作用:只能充当运算符,不能充当连接符,如果有字符,则先转成数值,如果不能转则转成0,如果有一方 null则结果为null,要连接字符串可以用concat函数,要解决null可以使用ifnull函数;
  3. 所有的分组函数都忽略了null值

DDL(Data Definition Language)

建表建库的操作

级联设置

级联删除
alter table tbstudent add constraint fk_stu_major foreign key(majorid) references major(id) on delete cascade;
级联置空
alter table tbstudent add constraint fk_stu_major foreign key (majorid) references major(id) on delete set null;

DML(Data Manipulation Language)

增删改

DCL(Data Control Language)

数据权限等控制语句

约束

  1. 主键
  2. 外键
  3. 唯一

上面主键,外键,唯一都会创建索引,可以使用 show index from 表查看
主键跟唯一键的区别

唯一性 非空性 组合性 重复性
主键 可以组合 最多一个主键
唯一键 可以组合 可以多个唯一键
  1. 非空
  2. 默认
  3. 检查(mysql中不支持但是不报错)

自增长

  1. 自增长列并不一定要跟主键搭配,但是必须是一个键(主键,外键,唯一键)
  2. 自增长列一个表中只能有一个
  3. 自增长列的类型只能是数值型
  4. 自增长列可以通过用set auto_increment_increment=3这种方式来设置增长量

事务

隐式事务:默认insert,update,delete默认都会开启事务;
显示事务:
步骤一:开启事务
set autocommit=0;
start transaction(可选)
步骤二:sql
select,insert,update,delete;
步骤三:提交事务
commit:提交事务
rollback:回滚事务;

事务隔离级别

  1. read uncommited:允许读取其他事务还没提交的数据。脏读,不可重复读,幻读都会出现
  2. read commited:允许读取其他事物提交的事务,只能避免脏读;
  3. repeatable read:允许事务重复读,可以避免脏读跟不可重复读(mysql默认)
  4. serializable:确保每个事务都串行,所有问题都可以避免,但是效率差;

select @@tx_isolation:查看事务隔离级别
set session transaction isolation level read uncommitted:设置隔离级别为read uncommitted

变量

系统变量(全局变量,回话变量)

  1. show global/session varialbles:查看所有的系统(全局,回话)变量
  2. show global | session varialbles like ‘%char%’;
  3. select @@global | session.系统变量名
  4. set [@@]global | session.系统变量名=值

自定义变量(用户变量,局部变量)

用户变量

  1. 声明并初始化的三种方式
    1. set @用户变量名=值
    2. set @用户变量名 :=值
    3. select @用户变量名:=值
  2. 赋值方式一
    1. set @用户变量名=值
    2. set @用户变量名 :=值
    3. select @用户变量名:=值
  3. 赋值方式二
    1. select 字段 into @变量名 from 表;
  4. 使用:select @用户变量名;

局部变量

  1. 声明(仅仅在begin end中有效)
    declare 变量名 类型 default 值;
  2. 赋值方式一
    1. set @用户变量名=值
    2. set @用户变量名 :=值
    3. select @用户变量名:=值
  3. 赋值方式二
    1. select 字段 into @变量名 from 表;
  4. 使用:select 局部变量名;

存储过程跟函数

存储过程

使用delemiter表示设置$为结束符号
delimiter $
create procedure 名称(参数列表)
begin
存储过程体(一组合法的sql语句)
end $

函数

delimiter $
create function 名称 returns 返回类型
begin
函数体
end

流程控制

  1. if(表达式1,表达式2,表达式3):如果表达式1成立,则返回表达式2的值,否则返回表达式3的值
  2. case语法1:
    case 变量|表达式|字段
    when 常量1 then 值1
    。。。
    else 值n
    end case;
  3. case语法2:
    case when 条件1 then 值1 when 条件2 值2 。。。 else 值n end case;
  4. if 条件1 then 语句1 elseif 条件2 then 语句2 。。。 else 语句n end if;

循环结构

iterate 类似于continue
leave类似于break;

  1. while
    [标签:]while 循环条件 do
    循环体
    end while [标签]
  2. loop
    【标签:】loop
    循环体
    end loop [标签]
  3. repeat
    [标签:]repeat
    循环体
    until 结束循环的条件
    end repeat [标签]

你可能感兴趣的:(java,mysql基础)