MySQL基本命令

目录

一.初识MySQL

二.数据库操作(重点:创建;选择;删除)

三.存储引擎及数据类型(重点:表类型适合的存储引擎;数据类型)

四.操作数据表(重点:创建表;修改表)

五.表数据的增删改操作(重点:增删改)

六.数据查询(*****)(重点:条件查询;连接查询;子查询;查询结果排序)

七.索引(重点:3种创建索引方法)

八.视图(重点:创建视图;修改视图)

九.数据完整性约束(重点:定义完整性约束;命名完整性约束)

十.存储过程与存储函数(重点:创建存储过程;创建存储函数)

十一.触发器(重点:创建触发器;使用触发器)

十二.事务的应用(重点:事务的自动提交;修改事务隔离性级别)

十三.事件(事件调度器)(重点:开启、创建、修改和删除事件)


一.初识MySQL


1.1启动、停止MySQL服务器
1.1.1通过系统服务器
1.1.2通过命令提示符DOS
    systemctl start/stop mysqld;
    service mysqld start/stop;
1.2连接MySQL服务器
    mysql -uroot -p..;
1.3断开MySQL服务器
    exit; /quit; 

二.数据库操作(重点:创建;选择;删除)

2.1创建数据库(database或schema)
    create database if not exists dbn
    [character set = utf8
    collater = 校对规则名] ;
2.2查看数据库
    show databases [like ''] ;
2.3选择数据库
    use dan;
2.4修改数据库
    alter database dan
    character set [=] utf8
    collater = 校对规则名;
2.5删除数据库
    drop database if exists dbn;

三.存储引擎及数据类型(重点:表类型适合的存储引擎;数据类型)

3.1查看支持的存储引擎
    show engine [\G];
3.2查看默认的存储引擎
    show variables like 'storage_engine%';
3.3数据类型三大类
数字类型、字符串类型、日期和时间类型

四.操作数据表(重点:创建表;修改表)

4.1创建数据表
create table if [not exsits] tbn(
    id int primary key auto_increment
    name varchar
);
4.2查看表结构
    show [full] columns from tbn [from dbn] ;
    show [full] columns from tbn.dbn;
    describe tbn [列名];
4.3修改表结构
4.3.1添加新字段及修改字段定义(其他不改的要添加上防止丢失属性)
    alter table tbn add age int [约束],modify name char;
4.3.2修改字段名
    alter table dbn.tbn
    change column name name2 char [约束];
4.3.3删除字段
    alter table tbn drop age;
4.3.4修改表名
    alter table tbn rename as tbn2;
4.4重命名表
    rename table tbn2 to tbn[,tbn4 to tbn3];
4.5复制表
4.5.1只是表结构相同
    create table [if not exists] tbn2
    like tbn;             
4.5.2表结构和内容都相同
    create table [if not exists] tbn2
    as select * from tbn; 
4.6删除表
    drop table [if exists] tbn2[,tbn];

五.表数据的增删改操作(重点:增删改)

5.1插入数据
5.1.1插入完整数据
    insert into tbn values (1,'lisi');
5.1.2插入数据记录的一部分
    insert into tbn(name) values ('lisi');
5.1.3插入多条记录
    insert into tbn(id,name) values 
    (1,'liwu'),(2,'liliu'),(3,'liqi');
5.1.4使用insert...set语句插入数
    insert into tbn
    set id=1,name='lisi';
5.1.5插入查询如果
    insert into dbn.tbn(id,name)
    select id,name from tbn2;
5.2修改数据
    updata dbn.tbn set name='wangwu'[,age=23]
    where id=1;
    update tbn set where ;
5.3删除数据
5.3.1通过delete语句删除
    delete from tbn where id=1;
5.3.2通过truncate table语句删除
    truncate [table] tbn;    
//删除表中所有数据并且无法恢复

六.数据查询(*****)(重点:条件查询;连接查询;子查询;查询结果排序)

    select distinct ifnull as 
    from ...
    join ... on ...
    where ...
    group by ... having ...
    order by desc/asc
    limit ...

七.索引(重点:3种创建索引方法)

7.1创建索引
7.1.1在建立数据表时创建索引
单列索引
create table tbn(
    id int
    name varchar
    index idx1(name[长度][desc/asc])
);
多列索引
create table tbn(
    id int
    name varchar
    index idx1(id[(索引长度) asc/desc],..)
);
7.1.2在已建立的数据表中创建索引
    create unique index idx 
    on tbn(id[(索引长度) asc/desc],..)
7.1.3修改数据表结构添加索引
    alter table tbn 
    add unique index idx(id[(索引长度) asc/desc],..)
7.2删除索引
    drop index idx on tbn;
查看索引
    show index from tbn;

八.视图(重点:创建视图;修改视图)

8.1查看创建视图的权限
//查看用户是否有select和create view权限
    select select_priv,create_view_priv 
    from mysql.user
    where user='用户名';
8.2创建视图步骤
    create view view1[属性清单] as
    select ...
    [with [cascaded/local] check option]
8.3视图操作
8.3.1查看视图
    describe/desc view1;
    show table status like'view1';
    show create view view1;        
//查看视图的定义
8.3.2修改视图
    create or replace view view1 as
    select ...  
//or replace需要用户具有drop view权限
    alter view view1 as
    select ...[with [cascaded/local] check option]
8.3.3更新视图(就是对基本表的更新)
    updata view1 set 视图字段名1=' ',.. [where ..]; 
8.3.4删除视图(需要用户具有drop view权限)
    drop view if exists view1[restrict/cascade];


九.数据完整性约束(重点:定义完整性约束;命名完整性约束)


9.1命名完整性约束(constraint)
//主键约束名只能是primary
    alter table tbn add constraint primary
    primary key (id);
    create table ...(
    ...
    constraint fk_classid foreign key(classid)
    references tbn(id)
    ...
    );
9.2更新完整性约束
9.2.1删除完整性约束
    alter table tbn drop foreign key fk_classid;
9.2.2修改完整性约束
    alter table tbn 
    add constraint fk_classid foreign key(classid);


十.存储过程与存储函数(重点:创建存储过程;创建存储函数)


10.1存储过程
10.1.1创建存储过程
    delimiter $            //更改语句结束标志
    create procedure procn (in a int,out b char)
    begin
    ...;
    end$
10.1.2调用存储过程
    call procn;
    call procn(a,@b);
    select @b;
10.2存储函数
10.2.1创建存储函数
    delimiter $        //更改语句结束标志
    create function funcn (in a int,out b char)
    returns 返回值数据类型
    begin
    ...
    return ...
    ;
    end$
10.2.2调用存储函数
    select funcn[(输入参数)];
10.3变量的应用
10.3.1声明变量[指定默认值]
    declare c int [default 10];
10.3.2为变量a赋值
    set a=10;
    select id into a from tbn where name=' ';
10.4光标(只能在存储过程或存储函数中使用)
10.4.1声明光标
    declare cusn cursor for
    select (不能含into子句)... ;
10.4.2打开光标
    open cusn;
10.4.3使用光标
    fetch curn into c,d;    
//将查询的结果存入c和d,c和d必须在使用前定义
10.4.4关闭光标
    close curn;
10.5查看存储过程与存储函数
    show proc/function status like ' ';
    show create procedure procn;
    show create function funcn;
10.6删除存储过程与存储函数
    drop procedure [if exists] procn;
    drop function [if exists] funcn;


十一.触发器(重点:创建触发器;使用触发器)


11.1创建触发器
    create trigger trin before/after insert/updata/delete
    on tbn for each row
执行语句;
    delimiter$
    create trigger trin before/after insert/updata/delete
    on tbn for each row
    begin
    执行语句列表1;
    ...;
    ...;
    end$
11.2查看触发器
    show triggers;
    select * from information_schema.triggers
    [where trigger name=' '];
11.3删除触发器
    drop trigger trin;
11.4触发器中不能包含start transaction、commit或rollback等字段,
也不能包含call语句


十二.事务的应用(重点:事务的自动提交;修改事务隔离性级别)


12.1创建一个InnoDB类型的数据表
    create table tbn (...) tybe=InnoDB;
    alter table tbn type=InnoDB;
12.2
初始化事务
    start transaction;
提交事务
    commit;
撤销事务(事务回滚)
    rollback;
12.3事务行为
12.3.1查看自动提交
    select @@autocommit;
12.3.2关闭自动提交
    set autocommit=0;
12.4事务的隔离级别
12.4.1查看当前事务的隔离级别
    select @@tx_isolation; 或
    select @@transaction_isolation;
    select @@global.tx_isolation; 或
    select @@global.transaction_isolation;
12.4.2修改事务的隔离级别(4种)
    read uncommitted 
    read committed
    repeatabl read
    serializable
(级别越高,安全性越高,但是性能越低)
    set session transaction isolation level repeatable read;
    set global transaction isolation level repeatable read;
    repeatable repeatable serializb serializable
12.5伪事务(应用表锁来替代事务)
12.5.1为指定表添加锁定
    lock table tbn read/write;
    lock tables tbn read,tbn2 write;
12.5.2释放锁
    unlock tables;        
//释放所有当前处于锁定状态的数据表
12.6补充
写        锁释放        读        锁释放
行共享    无关系        不加                
行排他    事务结束    行共享    读完后        
行排他    事务结束    行共享    事务结束
表排他    事务结束    表共享    事务结束
A写未提交-B读-A回滚-B读出脏数据
B读释放锁未提交-A写已提交-B再读内容不一
B读未提交-A写添加行已提交-B再读记录不一


十三.事件(事件调度器)(重点:开启、创建、修改和删除事件)


事件调度器是定时触发执行的,可以看作是“临时触发器”
13.1查看事件是否开启
    show variables like 'event_scheduler';
    select @@event_scheduler;
13.2开启事件
13.2.1通过设置全局参数修改
    set global event_scheduler = on;
13.2.2更改配置文件
修改配置文件my.ini(window系统)或者my.cnf(linux系统),
找到[mysqld],在下面添加
    event_scheduler = on
13.3创建事件
creata event if not exists evn
on schedule 时间(*****可以是一个子句)
[on completion [not] preserve]        //默认是not,即一次执行不循环
[enable/disable/disable on slave]    //默认是enable,即创建后即为活动
[comment '注释']
do sql语句
schedule常用:
每隔5秒种执行                on schedule every 5 second
每隔1分钟执行                on schedule every 1 minute     
每天凌晨1点                    on schedule every 1 day starts date_add(
                            date_add(curdate(),interval 1 day),interval 1 hour)
每个月的第一天凌晨1点        
on schedule every 1 month starts date_add(
date_add(date_sub(curdate(),interval day(curdate())-1 day),interval 1 month),interval 1 hour)
每3个月,从现在起一周后开始    
on schedule every 3 month starts current_timestamp + 1 week
每十二个小时,从现在起三十分钟后开始,并于现在起四个星期后结束
on schedule every 12 hour starts current_timestamp +
interval 30 minute ends current_timestamp + interval 4 week
            
13.4修改事件
    alter event evn
    ...
    do sql语句;
临时关闭事件
    alter event evn disable;
13.5删除事件
    drop event if exists evn;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值