Mysql常用语句

  1. database相关:
    create database if not exists database_name;
    drop database if exists database_name;
    use database_name;
    show databases;
    show create database databasename;
  2. table 相关:
    create table table_name (
    id int(11) primary key auto_increment,
    user_name varchar(20) not null unique,
    password varchar(30) not null

    )engine=innodb default charset=utf8;
    此处charset=utf8 与character set utf8
    show tables;
    show create table table_name
    desc table_name;
    delete from table;//清空表
    truncate table table_name;//删除表,并重新创建。
    show variables like ‘character%’;//查看mysql默认字符集 client,server,system,connection,results,filesystem,database
    rename table old_name to new_name

  3. alter相关:
    alter table table_name
    –>change old_name new_name type;改名字
    –>modify column type…….改类型
    –>add column type…..增加字段
    –>drop column type….删除字段

  4. CRUD
    insert into table_name (column,…) values( values,….); 值最好用”扩起来,int float等可以不用
    delete from table where condition 删除某行数举
    update table_name set column = value where condition
    select column as “xxxx” from table_name
    起别名as 最好不要省略,增强其可读性
    双引号用于别名中有特殊字符

  5. 比较运算符

    大于,<小于 ,<=小于等于, >=大于等于 ,=等于 ,!=(<>)不等于
    in(set) 是否在set集合中
    example:
    delete from t_table where id in (1,2,3,8,9);
    删除id为1,2,3,8,9的数据
    like 模糊查询,%通配符,
    is null, is not null 判断是否为空

  6. 逻辑运算符
    and 与
    or 或
    not 非

  7. 排序
    order by :
    select * from t_table order by name asc;按照名字升序
    select * from t_table order by salary desc;按照工资降序
    select * from t_table order by age desc,name desc;按照年龄降序,如果年龄相同,按照名字降序

  8. 某些函数
    count() 计数
    select count(id) from t_table where condition;
    sum()
    求工资和
    select sum(salary) from t_table

  9. group by
    按照性别分组,并计数
    select sex,count(id) from t_table group by sex
    where,group by和having的顺序
    where condition group by column having condition

  10. 数据库备份
    mysqldump -u 用户名 -p 数据库名 > 文件名.sql
    恢复数据库
    恢复前先创建对应的数据库。
    mysql>source 文件名.sql
    or:
    @myPC:~$ mysql -u root -p mydb < 文件名.sql

备份数据库java伪代码:

Timer timer = new Timer();
timer.schedule(new TimerTask{
    public void run(){
        try{
        Runtime runtime = Runtime.getRuntime();
        String command = "mysqldump -u root -p myDatabase > path/filename.sql";//filename 应该是拼出来的 "dbname" + new Date().getTime() + ".sql";
        runtime.exec(command);//在弹读的进程中执行指定的字符串命令
        }catch(IOException e)
        {
            e.printStackTrace();
        }
    }
},new Date(),24*60*60*100);
  1. 外键 foreign key
    foreign key (t1_id) references orders(id)
    表间关系:
    one2one 例夫妻关系–>table1 添加一个字段,t1_id,存放table2中的id(primary key),为保证1:1,必须给w_id添加一个约束,unique,保证t1_id唯一。
    添加外键以后,删除表时,先删除有外键依赖的t1,再删t2
    one2many 例父子关系–>多对1,在多端添加外键字段,不能添加唯一约束unique。
    many2many 例师生关系–>借助中间表维护关系
    one2many,many2one
    create table table1 (id,t1_id) engine=innodb default charset=utf8;
    create table table2(id,foreign key(id) references table1(t1_id) )engine=innodb default charset=utf8;

  2. 内连接inner join
    无条件,出现迪卡尔集
    select d.,e. from dept d,emp e;
    指定关联的键,就是内连接,获取有关联数据。
    语法:
    select d.,e. from dept d,emp e where e.dept_id = d.id;
    select d.,e. from t_dept d inner join t_emp e on e.dept_id = d.id;
    table1 和 table2的位置可以换。

  3. 自然连接
    自动通过关联主键连接,不能只鼎条件,left或right可以产生类似与左右连接的效果。

  4. 外连接 获取的不一定是关联数据。
    –>left|outer |join
    –>right|outer|join
    左外连接:以左边表为准,将LeftTable中的数据全部获取,而RightTable中的数据都跟LeftTable中的数据对应。
    LeftTable outer join RightTable on condition…
    select d.,e. from t_dept d left outer join t_emp e on e.dept_id = d.id order by d.id;
    order by 放在 on condition 后面

  5. 子查询
    单行单列子查询 count(*) sum() avg() 等的查询结果
    返回值只有一个,比较运算符,>,<等。
    小于平均工资的人的信息
    select * from t_emp where salary <
    (select avg(salary) from t_emp)
    单列多行子查询:返回值有多个,与单列多行比较使用的运算符,>any,>all,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值