常用mysql语句

2019-02-19  本文已影响0人  水君子Z
--数据库操作
    --链接数据库
    mysql -uroot -p

    --退出数据库
    exit

    --查询数据库版本
    select version();

    --查看所有数据库
    show databases;

    --创建数据库
    create database name charset=utf8;

    --删除数据库
    drop database name;

    --切换至指定数据库
    use name;

    --查看当前使用的数据库
    select database();


--表操作
    --创建表
    --约束条件:
        --auto_increment    自动增长
        --not null              不能为空
        --primary key           主键
        --default                   默认值
    create table staff (
    --字段 类型 约束
        id int unsigned primary key not null auto_increment,
        staff varchar(20) not null,
        age tinyint unsigned default 0,
        sex enum('男','女','未知') default '未知',
        createTime timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP,
    )

    --删除表
    drop table staff;

    --查看当前数据库所有的表
    show tables;

    --查看指定表结构
    desc staff;

    --字段的增删改
    --新增字段名                     add
    alter table staff add position varchar(20) default "员工";

    --删除字段名                     drop
    alter table staff drop position;

    --修改字段(不修改名称)   modify
    alter table staff modify position varchar(25) default "图书管理员";
    
    --修改字段(包含名称)        change
    alter table staff change position post varchar(25) default "图书管理员";


--数据操作
    --添加表数据
    insert into staff values(0,'水君子',25,'男','员工');

    --查看表数据
    select * from staff;

    --添加多行数据
    insert into staff values(0,'郑治',19,'男','员工'),(0,'李清',22,'女','员工');

    --修改全部
    update staff set position="员工";

    --修改指定
    --把id为1的name改为水君子
    update staff set name="水君子",age=24 where id=1;

    --物理删除
    --删除整个staff表
    delete from staff;

    --删除单个
    delete from staff where name="水君子";

    --删除多个
    delete from staff where name="水君子" or name="张三";

    --逻辑删除
    --用一个字段来表示,这条信息已无法使用
    --bit类型
    alter table staff add is_delete bit default 0;
    update staff set is_delete=1 where name="水君子";


--查询
    --查询指定字段
    select id,name from staff;
    --消除重复
    select distinct sex from staff;

--条件查询
    --> < = !=
    select * from staff where age >18;
    --逻辑运算符
    --and or not
    select * from staff where sex="男" and age>18;
    select * from staff where age>18 or sex="男";
    select * from staff where not(age >18 and sex="男");

--模糊查询
    --like 性能差
    --郑开头的名称
    select * from staff where name like "郑%";
    
    -- 包含333的手机号
    select * from staff where phone like "%333%";

    --匹配名字两个的
    select * from staff where name like "__";

    --匹配至少两个的
    select name from staff where name like "__%";

    --rlike 正则
    -- 郑开头的名字
    select * from staff where name rlike '^郑.*';

    -- 13开头6结尾
    select * from staff where phone rlike '^13.*6$';

--范围查询
    --非连续 in() 、 not in ()
    select * from staff where age in (18,30);
    select * from staff where age not in (18,30);

    --连续 between 
    select * from staff where age between 18 and 30;
    select * from staff where age not between 18 and 30;
    select * from staff where (age between 18 and 25);

    --空判断
    select * from staff where sex is null;
    select * from staff where sex is not null;

--排序

    --order by 字段
    --asc升序
    --desc降序
    select * from staff order by age asc;
    select * from staff order by age desc;
    select * from staff where (age between 18 and 30) order by age asc;
    --同一岁数的性别升序
    select * from staff where (age between 18 and 30) order by age asc,sex desc;


上一篇下一篇

猜你喜欢

热点阅读