MySQL详解,第一章

目录

第一章         sql基础... 1

sql分类:... 1

1.DDL语句:... 1

2.DML语句... 3

3.DCL语句... 5

 

 

第一章      sql基础

sql分类:

1.DDL语句:

1.1.定义

DDL(Data Definition Languages)语句:数据定义语言,这些语句定义了不同的数据段、数据库、表、列、索引等数据库对象;常用的sql语句关键字包括create、drop、alter等;

1.2简单说明

DDL语句简单来说就是对数据库内部对象进行创建、删除、修改等操作的语言;其不涉及表的定义和节后的修改,更不会涉及其他对象;一般数DBA(数据库管理员)用的比较多。

1.3使用
1.3.1创建数据库

进入MySQL命令窗体,输入-u+用户名 –p 命令,然后输入密码链接数据库;

创建数据库命令:create database +数据库名;例:create database sunshine;

 

查看等钱用户下的数据库命令:show databases;

 

使用数据库命令:use +数据库名例:use sunshine;

 

1.3.2删除数据库

删除数据库命令:drop database +数据库名称例:drop database sunshine;

 

1.3.3创建表

创建表命令:create table 表名( 字段名字段类型 约束 ,主键约束);

例:CREATE TABLE test (

Id int(11) NOT NULL ,

name varchar(20) NULL ,

sex varchar(5) NULL ,

age int(3) NULL ,

PRIMARY KEY (id)

);

查看表结构命令:desc + 表名例:desc test;

 

查看创建表的sql语句命令:show creat table +表名 \g;

例:show create table test\g;

1.3.4删除表

删除表命令:drop table +表名; 例:drop table test;

1.3.5修改表
1.3.5.1修改表(字段)类型

修改表类型命令:alter table +表名 modify 字段名类型约束;

例:alter table test modifysex varchar(20);

1.3.5.2增加表字段

增加表字段命令:alter table 表名 add column 字段名类型约束;

例:alter table test addcolumn head varchar(20);

1.3.5.3删除表字段

删除表字段命令:alter table 表名 drop column 字段名;

例:alter table test dropcolumn head;

1.3.5.4修改表字段名

修改表字段名称命令:alter table 表名 change 原有字段名新字段名字段类型;

例:alter table test changesex sexs int(2);

1.3.5.5修改字段顺序(放在最前面或者放在某个字段后面)

修改表字段顺序命令:alter table 表名 modify 字段名类型 first;|| alter table 表名 modify 字段名类型 after 字段名;

例:alter table test modifyname varchar(20) first;|| alter table test modify name varchar(20) after id;

1.3.5.6修改表名

修改表名命令:alter table 原有表名 rename 新表名;

例:alter table test renameuser;

2.DML语句

2.1定义

DML(Data Manipulation Language)语句:数据库操纵语句,用于添加、修改、删除和查询数据库的记录;常用的sql语句关键字包括insert、delete、update、select等;

2.2简单说明

也就是对表的CRUD操作。          

2.3使用
2.3.1插入记录

插入记录命令:insert into 表名 (字段名,字段名…) values (字段值,字段值…)

例:insert into user(id,name,age) values (1,'sunshine',22);

2.3.2更新记录                  

更新命令:update 表名 set 字段=字段值条件

例: update user setname='smile' where id = 1;

2.3.3删除记录

删除命令:delete from 表名条件

例:delete from user whereid = 1;

2.3.4查询记录
2.3.4.1查询特定字段

查询命令:select 字段名 from 表名条件;

例:select id , name , agefrom user where id = 1;

2.3.4.2查询全部字段

命令:select * from 表名条件;

例:select * from userwhere id = 1;

2.3.4.3查询不重复的记录

命令:select distinct 字段名 from 表名条件;

例:select distinct namefrom user;

2.3.4.4多条件查询

命令:select * from 表名 where 条件一 and 条件二

例:select * from userwhere name=’smile’ and age=22;

2.3.4.5排序和限制

排序查询命令:select * from 表名 order by 字段排序方式

例:select * from userorder by id DESC;

关键字:DESC:降序排序 ASC:升序排序

查询特定条数命令:select * from 表名 limit 开始条数,结束条数

例:select * from userlimit 1,3;

2.3.4.6聚合

常用的聚合函数:sum(求和)、count(*)(记录数)、max(最大值)、min(最小值)

关键字:

group by :表示要进行分类的聚合字段  比如要按照年龄统计人数,那么年龄就要写到group by 后面。

with rollup:可选语法,表明是否对分类聚合后的结果进行再汇总

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

2.3.4.7表连接

用处:当需要显示多个表中的字段的时候,就可以用表连接来实现这样的需求。

说明:表连接主要分为内连接和外连接,主要的区别是:内连接仅选出两张表中相互匹配的记录,而外链接会选出其他不匹配的记录。我们常用的是内连接;内连接又分为左链接和右连接;

定义:左连接(left join):包括所有左表中的记录甚至是右表中没有和他匹配的记录。

右连接(rightjoin):包含所有右表中的记录甚至是左表中没有和他匹配的记录。

例:创建用户表 emp 其中字段有id(主键), name(姓名) , birthday(生日) , sal(薪水) , deptno(部门);创建部门表dept 其中字段有 deptno(主键) , deptname(部门名称);

查询所有用户名和所在部门的名称:select name , deptnamefrom emp left join dept on emp. deptno = dept. deptno;(左连接)

selectname , deptname from dept right join emp on dept. deptno = emp. deptno;(右连接)

2.3.4.8子查询

用处:有时候当进行查询的时候需要用到的条件是列一个select的结果,这个时候就可以使用子查询。

关键字:in(包含), not in(不包含), =(等于), !=(不等于), exists(存在), not exists(不存在)等;

例:从emp表中查出所有部门在dept表中的所有记录

select* from emp where deptno in(select deptno from dept);(如果子查询记录数唯一,还可以用=代替in)

2.3.4.9联合查询

用处:有时候我们会遇到分别查询两个表的记录,查出之后再讲两个表的数据合起来显示,这时就用到了联合查询。

关键字:union:将union all后的结果进行一次distinct,取出重复后再显示。

                  unionall:直接把查询结果联合在一块显示。 

查询emp表和dept表中的部门编号集合(去除重复):

selectdeptno from emp union select deptno from dept;

查询emp表和dept表中的部门编号集合(不去除重复):

selectdeptno from emp union all select deptno from dept;

 

3.DCL语句

3.1定义

DCL(Data Control Language)语句:数据控制语句,用于控制不同数据段直接的许可和访问级别的语句。这些语句定义了数据库、表、字段、用户的访问权限和安全级别。主要的语句包括grant、revoke等;

3.2简单说明

简单来说,DCL语句主要是DBA用来管理系统中的对象权限时使用,一般开发人员很少用到。

3.3使用

创建一个数据库用户user01,具有对sunshine数据库中所有表有select和insert权限:

例:grant select , inserton sunshine.* to ‘user01’@’localhost’ identified by ‘0000’;

权限变更,收回user01的insert权限:

例:revoke insert onsunshine.* from ‘user01’@’localhost’;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值