zoukankan      html  css  js  c++  java
  • 数据库复习

    数据库操作

    登录数据库

    mysql -uroot -p
    

    显示当前时间

    select now()
    

    退出

    quit 或 exit 或 ctrl+d
    

    查看所有数据库

    show databases;
    

    创建数据库

    create database 数据库名 charset=utf8;
    

    使用数据库

    use 数据库名;
    

    查看当前使用的数据库

    select database();
    

    删库

    drop database 数据库名;
    

    查看当前数据库中所有表

    show tables;
    

    创建表

    create table 表名(
        列名 数据类型 约束条件,
    	id int unsigned primary key auto_increment not null,
        name varchar(20) not null,
        age tinyint unsigned default 0,
        height decimal(5,2),
        gender enum('男','女')
    );
    

    给表添加列名

    alter table 表名 add 列名 数据类型 约束条件;
    

    修改列的数据类型或约束条件

    alter table 表名 modify 列名 字段新类型 约束条件;
    

    修改列名和数据类型和约束条件

    alter table 旧表名 change 旧表名 新表名 数据类型 约束条件;
    

    删除列

    alter table 表名 drop 列名;
    

    查看建表SQL语句

    show create table 表名;
    

    查看建库SQL语句

    show create database 数据库名;
    

    删除表

    drop table 表名;
    

    查询所有列

    select * from 表名;
    

    查询指定列

    select 列1, 列2 from 表名;
    

    全列添加数据

    insert into 表名 values (值1, 值n);
    

    部分列添加数据

    insert into 表名 (列1, 列n) values (值1, 值n);
    

    全列多行添加数据

    insert into 表名 values (值1, 值n), (值1, 值n);
    

    部分列多行添加数据

    insert into 表名 (列1, 列n) values (值1, 值n), (值1, 值n);
    

    修改数据

    update 表名 set 列1 = 值1, 列2 = 值2 where 条件; 
    

    物理删除数据

    delete from 表名 where 条件;
    

    逻辑删除数据

    alter table 表名 add isdelete bit default 0; # 0为不删,1为删除
    update 表名 set isdelete = 1 where id = 要删除的条目id值;
    

    给列名起别名

    select 列名 as 别名, 列名 as 别名 from 表名; 
    

    给表起别名(自连接必须给表起别名)

    select 表别名.列名, 表别名.列名 from 表名 as 表别名;
    

    去重

    select distinct 列名 from 表名;
    

    where

    where > < = <= >= !=
    

    查询没被删除

    select * from 表名 where is_delete = 0;
    

    and or not

    where 条件 and or not 条件; # 可加括号
    

    like模糊查询

    select * from 表名 where 列名 like '王%'; # %匹配任意多个字符
    select * from 表名 where 列名 like '王_'; # _匹配一个任意字符
    

    范围查询

    select * from 表名 where id between 3 and 8; # between...and表示在一个连续的范围内
    

    判空查询

    select * from 表名 where 列名 is null; # 也可以是 not null
    

    排序查询

    select * from 表名 order by 列1 asc|desc, 列2 asc|desc; # asc升序, desc降序。默认升序 
    

    分页查询

    select * from 表名 limit 起始页码, 条目数;
    

    分页查询第n页的数据

    select * from 表名 limit (n-1)*m, m
    

    求总条目数

    select count(列名) from 表名;
    

    求最大值

    select max(列名) from 表名;
    

    求最小值

    select min(列名) from 表名;
    

    求和

    select sum(列名) from 表名;
    

    求平均值

    select avg(ifnull(列名)) from 表名;
    

    分组查询

    select 列名 from 表名 group by 列名;
    

    内连接

    select 列名 from 表1 inner join 表2 on 表1.列名 = 表2.列名;
    

    左连接

    select 列名 from 表1 left join 表2 on 表1.列名 = 表2.列名;
    

    右连接

    select 列名 from 表1 right join 表2 on 表1.列名 = 表2.列名;
    

    自连接

    select 表别名1.列名, 表别名2.列名 
    from 表1 as 表别名1 
    inner join
    表2 as 表别名2
    on
    表别名1.列名 = 表别名2.列名
    where
    条件;
    

    子查询

    select * from 表名 where age > (select avg(age) from students);
    

    添加外键约束

    alter table 表名 add foreign key(被约束的列名) references 表名(列名);
    

    删除外键约束

    alter table 表名 drop foreign key 外键名;
    
  • 相关阅读:
    公司技术部与其他部门之间的那些事儿
    5万元百元大钞的"渣渣钱"重新拼接的软件方面的解决办法的思路。
    公司技术部门内部的发展变化过程。
    手机开发与360的那点事儿
    通用快排
    被中断的函数
    setjmp与longjmp
    setjmp在非主函数中调用
    array and structure
    check your input
  • 原文地址:https://www.cnblogs.com/junsircoding/p/15665120.html
Copyright © 2011-2022 走看看