SQL数据库的常用指令


1.对库的增删改查
    1.创建库
        create database 数据库名 [character set 字符编码 collate 字符集校对];   
    2.查看数据库
        a)查看数据库服务器中的所有数据库 show databases;
        b)查看某个数据库的定义信息 show create database 库名;
        c)查看当前正在使用的库 select database();
    3.删除数据库
        drop database 库名
    4.修改数据库
        alter database 库名 character set 新字符集 collate 校对规则;
    5.切换数据库
       use 库名;
2.对表的操作
    1.创建表
create table 表名(
    字段名 类型 约束,
    字段名 类型 约束
);
    2.添加列
        alter table 表名 add 列明 类型 约束;
    3.删除列
        alter table 表名 drop 列明;
    4.修改列名
        alter table 表名 change 旧列名 新列名 类型 约束;
    5.修改列
        alter table 表名 modify 列名 类型 约束
    6.修改表名
        rename table 旧表名to 新表名
    7.修改表的字符集
        alter table 表名 character set 字符集
    8.查看所有表
        show tables;
    9.查看表结构
        desc 表名;
    10.删除表
        drop table 表名
    11.添加主外键约束
        添加主键约束:alter table 表名 add constraint 主键 (形如:PK_表名) primary key 表名(主键字段);            
        添加外键约束:alter table 从表 add constraint 外键(形如:FK_从表_主表) foreign key 从表(外键字段) references 主表(主键字段);
        删除主键约束:alter table 表名 drop primary key;
        删除外键约束:alter table 表名 drop foreign key 外键(区分大小写);

4.针对表数据的操作
    1.插入记录
        insert into 表名(列名1, 列名2, 列名3) values(值1, 值2, 值3)
     2.表记录修改
       update 表名 set 列名1=值, 列名2=值 where 条件;
    3.删除表记录
        delete from 表名 where 条件;
        truncate table 表名;
        区别:truncate 先删表,再建表.如果需要删除所有数据用这个,速度比较快。delete删除数据是一行一样的删除,并且删除后可以恢复

      恢复方法:insert into hr.job_history
                                 select * from hr.job_history as of timestamp to_timestamp('2007-07-23 10:20:00', 'yyyy-mm-dd hh24:mi:ss');
    4.基本查询
        select [distinct]  *或列名 from 表名 where 条件;
        select 列名 as 要显示的名字 from 表名 where 条件;
        加distince表示获取不重复数据,*表示所有列
    5.where子查询
        where 后面条件判断可以用 =,>,>=,<,<=,<>,like,in
        like后面的%表示的字符可以是多个,_表示的字符个数只能是一个
        in(1,2,3) 里面存放可能会出现的值
        查询空字段用is null,非空字段用is not null;
    6.排序
        order by desc 或 asc; desc是降序,asc是升序,默认是降序
5.聚合函数
    sum() count()  max() min() avg()
6.分组
    group by
    通过having对分组后的数据条件过滤,注意where只能使用在group by 之前,不能过滤group by之后的数据,会报错
7.多表关联中的外键问题
    1.如果是一对多,外键应该存储在多表中
    2.如果是多对多,外键应该存储在第三张表中
    3.如果是一对一,外键可以存储在任意一方

10.mysql常见问题
    1.插入中文数据乱码 或 无法插入中文数据   
            产生乱码原因,数据库服务端存储的是UTF8格式的数据,客户端采用UTF-8接受,但是WINDOWS命令窗给客户端的数据是GBK编码,导致客户端接收到乱码数据
            解决方案:找到mysql的安装目录下的bin目录,修改my.inf中的客户端编码:[client]下的default-character-set修改值为GBK,重启mysql:通过运行services.msc打开服务界面,在里面找到mysql服务,右键重启即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值