mysql基本操作

之前当然包括现在经常想学一些高大上的关于mysql的操作或优化管理技巧,其实有这些想法是好的,但往往忽略一些问题,那些基本的操作都熟练掌握了吗?如果这些都办不到,基本可以确定是无法在更高层次有所进步的,这不是有绝对关系,只是说明一个人连基础都没有打好怎么能有更好的进步??就像看到这篇文章总觉得自己对mysql基本语句都很熟悉了,却发现有些东西仍然不熟悉,比如创建一个表,你能不借助工具直接写出sql运行而不报错吗?虽然现在大家都是借助工具但我个人认为这是基础,必须要掌握—-虽然我说不出原因,但总感觉很有道理的样子
1 获取所有可用的数据库 show databases;
2 选择数据 use databasename;
3 查看数据库服务器的状态信息 show status;
4 显示授权用户的安全权限 show grants;
5 显示数据库错误或警告信息 show errors或者 show warnings;
6 显示创建数据库时的创建语句 show create database databasename;
7 显示创建表时的创建语句 show create table tablename;
8 获取当前数据库所有可用表 show tables;
9 获取表中所有列的信息 show columns from tablename 或者describe tablename
10 新建数据库 create database databasename;
11 新建表
create table tablename(
id not null auto_increment,
column1 char(50) not null,
column2 int null default 1,
primary key (id)
)engine=innodb;
12 关于外键–现在很少见到有使用外键的,至少在我工作生涯中是没有见到的,可能是不想让两个表间的关系如此紧密吧!
在创建表的时候可用使用 foreign key 创建外键,即一个表中的foreign key指向另一个表中的primary key.外键foreign key用于约束破坏表的联结动作,保证两个表的数据完整性。同时也能防止非法数据插入外键列,以为该列值必须指向另一个表的主键。
13 删除库和表 drop database databasename ;drop table tablename;
14 修改表
alter table tablename add column char(20);
15 重命名 rename table oldtablename to newtablename;
查询表操作 查询表的操作实在太常用了,就不一一赘述了,这里就说几个我觉得稍微有难度的点吧
16 where 和 having
where语句天天用,貌似没啥好讲的。having语句和group by 联合使用,都是条件过滤,有啥区别?
where是行级过滤,having是组级过滤。被where过滤掉的数据不会出现在分组中。通俗点说就是where后面跟的只能是数据表中有的字段,而group by后跟的是该语句组合查询出来的数据。如select cat_id,count(*) as num from table where cat_id > 1 group by cat_id having num > 10;另外group by可以进行多列组合的分组,用的不多,但作用很明显
17 in型子查询 最好不要用这种写法,因为<用 不 到 索 引>,最外面的语句会先检索全表,然后一个个带入到子查询中,效率很低,我们可以用联表查询代替
18 union /union all 组合查询(完全不是联表查询啊亲,根本就不是一回事啊)
用union可以将多个查询结果组合返回,但返回的是去重的结果。union all可以返回所有结果集,貌似实际情况很少使用
19 concat 组合查询结果
20 upper ltrim rtrim等是对搜索结果进行字符串操作,实际情况下不常使用,大部分操作都放在了动态语言中处理,因为这一步操作放在数据库操作的话要比放在代码中要慢
21 插入操作 insert into (column) values (value)
此处可以省略列名的情况是该列被允许定义为null或者设置了默认值或者是主键。如果要插入多行,使用逗号分隔即可。
将查询出来的数据插入表中可以使用 insert select语句 insert tablename (‘column’) select column from tablename where id > 1.insert select通常用于表复制
22 情况数据表 truncate tablename;或者delete from tablename;前者效率更高。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值