MYSQL语句学习

-- 在DOS的bin目录下启动MYSQL服务
c:\mysql\bin>mysqld --console
-- 在DOS的bin目录下关闭MYSQL服务
c:\mysql\bin>mysqladmin -uroot shutdown

-- 在DOS下通过windows服务启动MYSQL服务
c:\mysql\bin>net start mysql57
-- 在DOS下通过windows服务关闭MYSQL服务
c:\mysql\bin>net stop mysql57

-- 连接数据库
C:\Users\Administrator>mysql -u root -p

-- 第一,DDL,数据库与表的创建、修改、查询
-- 创建数据库
create database test2;
-- 删除数据库
drop database test2;
-- 显示所有数据库
show databases;
-- 切换使用数据库
use test1;
-- 创建表
create table emp(ename varchar(10),hiredate date,sal decimal(10,2),deptno in(2));
-- 查看表的结构
desc emp;
-- 查看表的创建格式
show create table emp \G;
-- 删除表
drop table emp;
-- 修改表的列属性
alter table emp modify ename varchar(20);
-- 添加表的列
alter table empo add column age int(3);
-- 删除表的列 
alter table empo drop column age;
-- 修改表的列名与属性,与modify不同之外在于可以同时修改表的列名。
alter table empo change ename name varchar(20);
alter table empo change name ename varchar(20);
-- 在表的某个字段之后添加字段
alter table empo add birth date after ename;
-- 在表的开头添加字段
alter table empo add age int(3) first;
-- 重命名表的名称
alter table empo rename emp;


-- 第二,DML,表记录的增、删除、改操作
-- 根据指定表的所有列添加一条记录
insert into emp(ename,hiredate,sal,deptno) values('zzx1','2018-01-25','2000',1);
-- 根据指定表的个别列添加一条记录
insert into emp(ename,sal) values('dony',1000);
-- 根据指定表的个别列添加多条记录
insert into emp(deptno,ename) values(5,'dept5'),(6,'dept6');
-- 给某表按全字段顺序添加记录。
insert into dept values(1,'dept1'),(2,'dept2'),(3,'dept3'),(4,'dept4'),(5,'dept5'),(6,'dept6');
-- 删除指定条件的记录
drop from dept where deptno=6;
-- 根据两表的条件查询出记录,然后给其中一表的字段赋值
update emp as a,dept as b set a.sal=a.sal*b.deptno where a.deptno=b.deptno;


-- 第三,SQL,表记录的查询
-- 查询所有表记录
select * from dept;
select * from emp;
-- 全连接
select ename,deptname from emp,dept where emp.deptno=dept.deptno
-- 左连接
select dept.* from emp left join dept on emp.deptno=dept.deptno;
-- 右连接
select dept.* from emp right join dept on emp.deptno=dept.deptno;
-- 以dept表查询其字段的值,然后查询以emp表的字段与其匹配的所有记录,只能查询出一条记录,记录唯一
select * from emp where deptno=(select deptno from dept limit 1);
-- 以dept表查询其字段的值,然后查询以emp表的字段与其匹配的所有记录,可查询出多条记录
select * from emp where deptno in(select deptno from dept);
-- 根据两表的条件查询满足条件的其中一个表的所有记录
select emp.* from emp,dept where emp.deptno=dept.deptno
-- 所有的联合记录,相关于全连接
select deptno from dept union all select deptno from emp;
-- 去重复值的联合记录,相当于内连接
select deptno from dept union select deptno from emp;
-- 查询出满足条件记录后(只显示第2个记录开始后的前3个记录,且去掉某字段重复记录),根据指定字段分组后统计其记录个数、记录的字段最大值、记录的字段最小值、记录的字段合计数,同时按正或反序排序。
select distinct deptno,deptname,count(1),max(1),min(1),sum(1) from dept where deptno>=2  group by deptno having sum(1)>=2 order by deptno desc,deptno asc limit 1,3 ;
-- 查询出满足条件记录后,根据指定字段分组后统计其记录个数,同时汇总统计个数。
select deptno,deptname,count(1) from dept where deptno>=2  group by deptno with rollup;


-- 第四,DCL
-- 查询当前数据库的自动提交状态
show variables like 'autocommit';
-- 局部设置当前数据库自动或手动提交,1为自动,0为手动
set autocommit = 0;
-- 全局设置所有数据库自动或手动提交,1为自动,0为手动
set global init_connect='SET autocommit=0';
-- 提交事务
commit;
-- 回滚事务
rollback;
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值