MySQL笔记(一)


目录

一、SQL基础
    1.SQL语句分类
    2.SQL数据类型
二、DDL
    1.库操作
    2.表操作
三、DML
    1.增
    2.删
    3.改
四、DCL
    1.创建用户
    2.授权
    3.撤销权限
    4.查看权限
    5.删除用户
五、DQL
    1.字段控制
    2.条件控制
    3.排序控制
    4.聚合函数
    5.分组查询
    6.limit子句

一、SQL基础

1.SQL语句分类

  1. DDL(Data definition Language):数据库定义语言,用于定义数据库对象:库、表、列,如创建、删除、删除库/表结构
  2. DML(Data Manipulation Language):数据库操作语言,用于定义数据库记录,如增、删、改表里的记录
  3. DCL(Data Control Language):数据库控制语言,用于定义访问权限和安全级别
  4. DQL(Data Query Language):数据查询语言,用于查询表里的记录

2.SQL数据类型

  1. int:整型
  2. double:浮点型,double(5,2)表示最多5位,其中必须有2位小数点
  3. decimal:浮点型,主要用于表示十进制
  4. char:固定长度字符串,char(255),数据不足255位时,自动补足至255位
  5. varchar:变长字符串,varchar(65535),最多65535位字符
  6. text(clob): 字符串类型,mysql独有,分为thinytext/text/mediumtext/longtext,可变长,对应的公用的存储大字符的类型为clob,用于存文本文件
  7. blob:二进制类型,可变长,分为varbinary/tinyblob/blob/mediumblob/longblob,用于存二进制文件
  8. date:日期类型,格式:yyyy-MM–dd
  9. time:时间类型,格式:hh:mm:ss
  10. timestamp:时间戳,date+time

二、DDL

接下来看下数据库对象(库、表、列)的创建、删除过程。
以我的MySQL为例,登录:

mysql -uroot -p123456

1.库操作

查看数据库:

mysql> show databases;

这里写图片描述

创建库:

create database [if not exists] mydb [charset=utf8];

这里写图片描述

切换库:

use mydb;

这里写图片描述

删除库:

drop database [if exists] mydb;

这里写图片描述

修改库编码:

alter database mydb character set utf8;

这里写图片描述

2.表操作

选择数据库后,use mydb1;

查看mydb1中所有表:

show tables;

创建表:

create table [if not exists] mytable1(name varchar(20),number char(11),age int);

查看表结构:

desc mytable1;

删除表:

drop table mytable1;

修改表:

修改表有add/modify/change/drop/rename,所有的修改都需要同样的前缀:alter table table_name

重命名表 rename:
alter table mytable1 rename to ta_stu;

增加列 add:
alter table mytable1 add (address varchar(100),sex vhar(10));

删除列 drop:
alter table mytable1 drop address;

修改列类型 modify:
alter table mytable1 modify sex varchar(10);

修改列名称(及类型) change:
alter table mytable1 change sex height varchar(20);


三、DML

1.增

前缀 insert into

**插入部分列值记录
insert into mytable1(address,age) values(“hangzhou binjiang”,26);

**插入所有列值记录
insert into mytable1 values(“wh”,”158”,26,”binjiang”,”180”);

2.删

前缀 delete from table_name where condition

3.改

前缀 update table_name set 列名1=value1,列名2=value2 where condition

常用运算符:
=、!=(<>)、>、<、>=、<=、BETWEEN……AND……、IN(……)、IS NULL、NOT、OR、AND


四、DCL

1.创建用户

create user username@ip_address identified by ‘password’
————用户可以在指定的ip上使用username/password登陆数据库

eg:
create user wh@localhost identified by ‘123’;
mysql -uwh -p123;

create user username@’%’ identified by ‘password’
————用户可以在任意ip上使用username/password登陆数据库

eg:
create user wh@’%’ identified by ‘123’;
mysql -uwh -p123;

2.授权

grant select,drop,insert,update….(all) on database_name.* to username@ip_address

eg:
grant all on mydb1.* to wh@localhost;

3.撤销权限

revoke select,delete…(all) on database_name.* from username@ip_address

eg:
revoke all on mydb1.* from wh@localhost;

4.查看权限

show grants for username@ip_address

eg:
show grants for wh@localhost;

5.删除用户

drop user username@ip_address;

eg:
drop user wh@localhost;


五、DQL

1.字段控制

1)查询所有列

select * from table_name;

2)查询指定列

select 列名1,列名2 … from table_name;

3)去除查询结果中的重复记录

select distinct 列名1,列名2… from table_name;

4)列运算

i.数量类型支持四则运算

select 列名1 + 列名2… from table_name where condition;

这里写图片描述

如果类型不支持转换为int类型,则被当成0:
这里写图片描述

任何数与NULL运算,结果均为NULL:
这里写图片描述

ii. 转换NULL值

select 列名1 + ifnull(列名2,default_value) from table_name;

eg:
select sal+ifnull(comm,0) from emp;

iii. 字符串拼接

select concat(字符串…,列名1,列名2…) from table_name where condition;

eg:
select concat(sal,mgr) from emp;
这里写图片描述

iiii.为查询列起别名

select 列名1 as 别名1,列名2 as别名2 from table_name;

这里写图片描述

2.条件控制

1)条件查询

与前面介绍的update/delete中的where子句类似

eg:
select * from emp where mgr in (‘1003’,’1006’,’1009’);
select ename from emp where sal between 8000 and 27500;
select job,mgr where sal >= 20000 and COMM is not null;

2)模糊查询

i.匹配一个字符

select * from table_name where 列名 like ‘_’;

eg:
select * from emp where mgr like ‘_006’;
select * from emp where job like ‘董__’;

ii.匹配多个字符

select * from table_name where 列名 like ‘%’;

eg:
select ename from emp where mgr like ‘销%’;
select sal from emp where job like ‘%员’;

3.排序控制

关键字 order by

1)升序

select * from table_name ORDER BY 列名 [ASC];

这里写图片描述

2)降序

select * from table_name ORDER BY 列名 DESC;

这里写图片描述

3)多列排序

select * from table_name ORDER BY 列名1 ,列名2 DESC…;

这里写图片描述

4.聚合函数

1) count—查询结果中的记录条数

select count(列名) from 表名;

2) max—-查询结果中某列的最大值

select max(列名) from 表名;

3) min—查询结果中某列的最小值

select min(列名) from 表名;

4) sum—查询结果中某列的和

select sum(列名) from 表名;

5) avg—查询结果中某列的平均值

select avg(列名) from 表名;

5.分组查询

关键字:group by

分组查询,只能查两个内容:
1.查询分组的列信息(主信息,即group by后面的列)
2.使用聚合函数的列。

eg:
select 列1 ,sum(列2),avg(列3)…,count(列n) from 表名 where condition1 group by 列1 having condition2;
condition1—分组前条件,对满足条件的记录进行分组,即先剔除不满足条件的记录,然后进行分组
condition2—分组后条件,对分组后查询的结果进行condition2限制,针对分组查询后的结果
这里写图片描述

也可以使用多列来进行分组查询

select … from 列名 group by 列名1,列名2…

这里写图片描述

6.limit子句

关键字:limit

主要用于分页查询

select * from 表名 limit m,n;
m—表示第几条记录,从0开始
n—表示查询的条数

eg: select * from emp limit 0,10;

这里写图片描述


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值