Mysql(1)_ 基本sql语句

TRUNCATE TABLE rdrssit_4.pysbig_table1;

DELETE from  rdrssit_5.test_table01 where userid>=1 and userid<=200;

     truncate语句只是清空表中的数据,delete语句如果后面不带where条件,也会清空表中的数据。

     DDL语句是Data Definition Language 的缩写,这些语句定义了不同的数据段,数据库,表,索引和对象。包括create,drop,以及alter等!drop在上次研究院的还面试过!

-- 新建数据库
create DATABASE test01;
-- 查询数据库
show DATABASES;
-- 选择数据库
 use test01;
-- 查看数据库的表
 show tables;
--
 CREATE TABLE emp(
    ename VARCHAR(10),
    hiredate DATE,
    sal DECIMAL,
-- 注意最后一个字段后面没有分号,并且分好在括号外面!
    deptno INT(2)
);
-- 查看表的定义
 DESC emp;

-- 在表中增加一个字段
alter table emp  add COLUMN age  INT(3);
-- 删除字段
alter TABLE emp DROP COLUMN age;
-- 修改表字段的定义
ALTER table emp MODIFY ename VARCHAR(20);
-- 字段改名
ALTER TABLE emp CHANGE age age1 INT(5);
-- 修改字段排列顺序
ALTER TABLE emp add birth DATE AFTER hiredate;
-- 修改age,把它放在最前面
ALTER TABLE emp MODIFY age1 INT(5) FIRST;
-- 更改表名
ALTER TABLE emp1 rename emp;
-- 删除表
drop table emp;
-- 删除数据库
drop DATABASE test01;

 DML语句

INSERT INTO emp(ename,hiredate,sal,deptno) values('bowen2','2001-09-01','2900',2);
-- 也可以不指定字段,但是values后面的值要和字段一一对应
insert INTO emp VALUES('bowen2','2012-09-11',2121,1);
-- 只插入指定字段值
insert INTO emp(ename,sal) VALUES('bowen3',1000);
-- 插入多条数据
insert into dept VALUES(1,'tech'),(2,'sale'),(3,'fin');
UPDATE emp set sal = 5000 where ename = 'bowen1';
-- 同时更新多个表中的数据,多表更新多用于根据一个表的字段来动态更新另外一个表的字段
UPDATE emp a,dept b set a.sal=a.sal*2,b.deptname=a.ename where a.deptno=b.deptno;
DELETE from emp where ename = 'bowen3';
-- 把dept表和emp表deptno为3的数据删除,不管是单表还是多表,不加where条件的会把表的记录都删除
DELETE  a, b from emp a,dept b where a.deptno=b.deptno and a.deptno=3;
SELECT DISTINCT deptno from emp;
-- 条件查询
select * from emp where deptno=1;
-- 排序和限制
SELECT * from emp order BY sal;
SELECT * FROM emp ORDER BY deptno;
-- 按部门排序后,再按薪水排序
SELECT * from emp ORDER BY deptno,sal DESC;
-- 对排序后,只显示一部分而不是全部.
SELECT * from emp ORDER by  sal DESC LIMIT 3;
-- 如果要显示emp表按照sal排序后从第二条记录开始的3条记录,可如下
-- LIMIT 经常和orderby一起配合使用,进行记录的分页显示
SELECT * from emp ORDER BY sal DESC LIMIT 1,3;
-- 聚合
-- 在emp表中查找公司的总人数
select COUNT(1) from emp;
-- 在此基础上统计各个部门的人数
select deptno,COUNT(1) from emp GROUP BY deptno;
-- 既要统计各部门人数,又要统计总人数
select deptno,COUNT(1) from emp GROUP BY deptno with  ROLLUP;
-- 统计大于一的人数部门
SELECT deptno,COUNT(1) FROM emp GROUP BY deptno HAVING COUNT(1)>1;
-- 
SELECT SUM(sal),max(sal),MIN(sal) from emp;
-- 显示雇员名字和所在部门名称
SELECT ename,deptname from emp,dept WHERE emp.deptno=dept.deptno;

-- 记录联合
select deptno from emp 
 UNION ALL
SELECT deptno from dept;
-- 记录联合去重
SELECT deptno from emp UNION
SELECT deptno from dept;

 

posted @ 2018-10-26 18:09  sunnybowen  阅读(186)  评论(0编辑  收藏  举报