mysql 学习心得1

 

 

1由于不靠这玩意吃饭 估计不准备精读 顺便中文版也不用担心翻译问题 科科 大致翻了下=,= mysql的感觉怎么就是背命令....

2DDL语句 定义数据 创建删除修改 create drop alter等

DML数据操纵语句 主要对表内操作 添加删除 更新 查询等 insert delete update select等

DDL主要用于DBA


DDL

mysql -uroot -p登录

create database name; 创建数据库

show databases; 显示存在哪些数据库

use dbname;切换数据库

drop database name;删除数据库

create table tablename(列名1 类型 约束条件,列名2 类型 约束条件);  创建表

create table emp(ename varchar(10),hredate date,sal decimal(10,2),deptno int(2));

desc tablename;查看表

drop table name;删除表name

alter table tablename modify 列名  类型改后;修改表类型

如 alter table emp modify ename varchar(20);

alter table tablename add column name 类型; 加表字段 add默认在最后 modify和change默认不改变字段位置


alter table tablename drop column name; 删表字段

alter table tablename change name name2 类型;字段改名  name是要改的 name2改后的

alter table emp add birth date after ename; 将birth date(类型)加到ename后面

alter table emp modify age int(3) first; 将age 放在最前


alter table tablename rename newname;  更改表名将name改为newname


DML

 insert into emp(field1,field2...fieldn)values(value1,value2,....valuen); 插入记录value1 到field1.。。。。。

也可以不加field 依次添加 如 insert into emp values('lisa','2003-02-01','3000',2);

空字段,非空但是有默认值,自增字段可以不在insert 添加 如 insert into emp (ename,sal) values('dony',1000);

 

 也可以 insert into  tablename (field1,field2)valuesrecord1_value1,record1_value2,......),

                          (record2_value1,record2_value2,.....),

                           .............................................................

                            (recordn_value1,recordn_value2,.....),

update 更新记录值

update tablename set field = value1,field2=value2,....fieldn=valuen[where condition]

DELETE FROM tablename [WHERE CONDITION]

如 delete from emp where enmae='dony';

也可以删除多个 如果用别名则delete也用相应的别名

delete a,b from emp a,dept b where a.deptno=b.deptno and a.deptno=3;    // 删除emp和dept中deptno为3的记录  如果不加where的条件会删除整个表

SELECT *  FROM tablename [WHERE CONDITION];

如select * from emp;  //查看所有emp里的记录

等价于 select ename,hiredate,sal,deptno from emp;   //想要看几个就标几个字段,*可以查看全部字段

可以用distinct 来去掉重复项 如


条件查询 where  后面可以加 = > < < >= <= != 多个条件可以用or and 分割

如 select * from emp where deptno=1 and sal <3000; 

排序和限制

SELECT * FROM tablename [WHERE CONDITION] [ORDER BY field1[desc|asc],field2[desc|asc],....fieldn[desc|asc];    //其中desc是降序 asc 是升序 不写就默认升序

 

如果值相同则按第二排序字段排序,以此类推。如果只有一个排序字段 则相同记录无序排列。

LIMIT

select * from  emp order by sal limit 3; 按照sal排序后的3条记录

select * from  emp order by sal limit 1,3; 按照sal排序后的第二条记录开始的(起始点为0)3条记录

聚合

 select [field1,field2,.....fieldn] fun_name from tablename [where where_contition] [group by field1,field2,....fieldn] [with rollup] [having where_contition]  //其中where是聚合前条件 having是聚合后

其中 fun_name表示要做聚合的操作  如 sum count max min  

  group by 表示分类聚合段 你要聚合啥写啥

  with rollup 可选表示是否对聚合后的结果再汇总

  having表示对分类后的结果进行条件过滤

 

如要统计总人数

统计各部门人数

统计各部门人数和总人数

统计人数大于1的部门

最后统计所有员工的薪水总额最高最低薪水

 表连接

 

?contents 全部帮助  ?命令 快速查找  如 ? show

 

posted @ 2018-01-11 21:06  Cyborg  阅读(187)  评论(0编辑  收藏  举报