MySQL 常用命令

来源:互联网 发布:淘宝域名怎么填 编辑:程序博客网 时间:2024/04/30 08:31

1、操作数据库
显示数据库:show databases
连接数据库:use <数据库名>
连接当前的数据库:select database();
显示当前的数据库版本:SELECT VERSION();
显示当前时间:select now(); 显示结果是 2009-09-15 22:35:32
创建数据库:create database <数据库名>
删除数据库:drop database <数据库名>

2、操作数据表 table  创建新表:
create table MyClass(    id int(4) not null primary key auto_increment,    name char(20) not null,    sex int(4) not null default '0',    degree double(16,2));
删除表:drop table MyClass;删除表中的数据:delete from 表名 where 表达式修改表中的数据:update 表名 set 字段=新值,… where 条件

1、 limit 用法;

在mysql中 分页的话一般用limit 关键字,用法有两种,一种是只有一个参数另外是有两个参数的,具体如下:
A limit n,m 表示是从第n行记录开始 取m条行数据
B limit n 表示 表示取n条记录
切记 :行是从0开始检索的。
实例讲解:
select * from u_user_tab where userid =1 order by userid limit 10 取前10条数据
select * from u_user_tan where userid =1 order by userid limit 2,10 从第三行开始取10条数据

2、 复制表
复制表的前提是:保证两张表的结构是一样的,不然不会复制成功
1、 复制不同数据表的数据(无论是否有主键,都要写上)
Insert into new_tab Select * from u_user_tab where userid =1
2、 复制同一张表中的数据
•有主键
Insert into 表名(字段1,字段2,…) Select字段1,字段2,… from 表名 where 1=1
•无主键
Insert into 表名 select * from 表名where 条件

3、 删除表
Drop table 表名 or Drop table 表名 if exist 如果不存在会发出一个note警告

4、 删除表中的数据
A delete from 表名 效率低 可从日志恢复 删除方式是按行一条一条删除
B truncate table 表名 效率高 不可恢复 删除方式是 只保留表结构 重新创建这个表

5.查询重复数据
select loginname,count(*) as count from u_user_tab group by loginname having count>1;
6、join on 使用
小编今天告诉你们一个原则 越简单越好 只要是能满足公司的业务需求即可 大可不必去追求 用复杂的sql语句去实现业务逻辑 因为 你写的代码只有别人都能看懂才能证明你是大师,不然只有你自己能看懂的sql语句岂不是起到副作用
默认使用 join on 是 省略了 inner ,所以使用它之后会选择出符合条件的数据 ,不符合的被过滤掉;
如果使用
这里 在使用mysql 时 如果你不会使用类似join on 的函数时 不要担心 因为这些都是后来mysql 封装进去的函数,所以我们只需掌握 mysql最原生的sql 语句即可,

SELECT 表 b LEFT JOIN 表 a  on  条件 返回的是 不管条件是否成立 都会返回表 b 中的所有数据SELECT 表 b right JOIN 表 a  on  条件 返回的是 不管条件是否成立 都会返回表 a 中的所有数据达不到 过滤的效果  如果想达到过滤的效果  就只能用SELECT 表 b JOIN 表 a  on  条件 返回 符合条件的 表b 的数据
select 字段 from 表明 where 条件 
   selecl  (distinct) 字段,count(1) as count fromwhere 条件  (group by  字段  having  count > 1)
修改自增起始值:alter table product_category AUTO_INCREMENT=200;表product_category的主键已200开始 
0 1
原创粉丝点击