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)values(record1_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