学习mysql总结

一、数据类型

1.mysql支持多种类型,大致可以分为三类:数值,日期/时间和字符串(字符)类型

2.char和varchar一定要指定长度,float会自动提升为double,timestamp是时间的混合类型,理论上可以存储时间格式和时间戳。

类型用途
int整型,相当于java的int
bigint整型,相当于java的long
float浮点型
double浮点型
datetime日期类型
timestamp日期类型(可存储时间戳)
char(32)定长字符
varchar(255)不定长字符
text大文本,用于存储很长的字符内容
blob字节数据类型,存储图片,音频等文件

二、建库操作

1.创建数据库

create database[if not exists] 数据库名称 [库选项];

数据库名称:由字母、数字和下划线组成的任意字符串。

库选项:用于设置此数据库的相关特性。

如: CHARACTER SET 字符集 #指定数据库字符采用的默认字符集。

        COLLATE 校对规则名 #指定字符集的校对规则。

if not exists:在创建数据库前进行判断,只有该数据库目前尚不存在时才执行create database操作。用此选项可以避免出现数据库已 经存在而再新建的错误。

2.查看数据库

show databases;查看MySQL服务器下所有数据库

show create databases 数据库名称;查看指定数据库的创建信息

3.选择数据库

use 数据库名称;

4.删除数据库

drop database 数据库名称;

5.注释

在服务器实际运行时被忽略:单行注释#

                                               单行注释--

                                               多行注释/**/

注释内容添加道表结构:comment

三、建表操作

1.删除表

drop table 表名

2.创建表

create table [if not exists]表名(

字段名 类型 约束(主键,非空,唯一,默认值),

字段名 类型 约束(主键,非空,唯一,默认值),

)编码,存储引擎;

auto_incremen:自动增长

在sql中,我们有如下约束:

not null非空:只是某列不能存储null值。

unique唯一键:保证某列的每行必须有唯一的值。

primary key主键:not null和unique的结合,确保某列(或两个列多个列的结合)有唯一标识,有助于更容易更快速地找到列表中的一个特定的记录。

foreign key外键:保证一个表中的数据匹配另一个表中的值的参照完整性。

check:保证列中的值符合指定的条件。

default:规定没有给列赋值时的默认值。

3.查看表

show tables;查看数据表

show table status;查看数据表的状态信息

show tables[like匹配模式];

省略可选项,表示查看当前数据库中的所有数据表。

添加可选项like运算符,则按照“匹配模式”模糊查询查看数据表。

匹配模式符 “%”匹配一个或多个字符,代表任意长度的字符串。

匹配模式符“_”仅可以匹配一个字符

show table status [from数据库名][like匹配模式];

省略可选项,表示查看当前数据库中的所有数据表的状态。

添加可选项,则按照“匹配模式”查看数据表的状态。

4.修改数据表

修改数据表名称:alter table 旧表名 rename [to/as] 新表名;

                             rename table 旧表名1 to 新表名1[,旧表名2 to 新表名2]....;

ALTER TABLE…RENAME后的TO或AS可以省略。

RENAME TABLE…TO可以同时修改多个数据表的名称。

修改数据表选项:alter table 表名 表选项[=]值;

常见的表选项有字符集、存储引擎以及校对集。

5.查看表结构

查看所有字段信息:desc 数据表名;

查看指定字段的信息:desc数据表名 字段名;

查看数据表的创建语句:show create table 表名;

查看数据表结构:show [full] columns from 数据表名 [from 数据库名];

                             show [full] columns from 数据库名.数据表名;

省略可选项FULL,查询结果与DESC语法相同。

添加可选项FULL,可额外查看字段权限、COMMENT字段注释等。

上述语法中,数据表名 FROM 数据库名与数据库名.数据表名等价。

6.修改表结构

修改字段名:alter table 数据表名 change [column] 旧字段名 新字段名 字段类型 [字段属性];

“旧字段名”指的是字段修改前的名称。 

“新字段名”指的是字段修改后的名称。

“数据类型”表示新字段名的数据类型,不能为空,即使与旧字段的数据类型相同,也必须重新设置

修改字段类型:alter table 数据表名 modify [column] 字段名 新类型 [字段属性];

修改字段位置:alter table 数据表名 modify [column] 字段名1 数据类型 [字段属性] [first|afte 字段名2];

first:表示将字段名1调整为数据表的第1个字段。

after 字段名2:表示将字段名1插入到字段名2的后面。

新增字段:alter table 数据表名 add [column] 新字段名 字段类型 [first|after字段名];(:新增一个字段,并可指定其位置)

                 alter table 数据表名 add [column] (新字段名1 字段类型1,新字段名2 字段类型2,...);(同时新增多个字段)

在不指定位置的情况下,新增的字段默认添加到表的最后。

新增多个字段时不能指定字段的位置。

删除字段:alter table 数据表名 drop [column] 字段名;

7.插入,删除,更新

插入语句:insert into....values....

删除语句:delete from....where...

更新修改语句:update.....set...where....

8.查询

查询表中全部数据:select *from 数据表名;

四、分页查询

select * from .... limit 2,3;--从第2条(下标从0开始)开始查,查第3条数据。

select *from .....limit 3;--从第0条(下标从0开始)开始查,查第3条数据。

五、distinct关键字

用于返回唯一不同的值。(查询发现很多国家重复,使用distinct就把重复的去除了)

select distinct country from ....

六、where语句

作为条件筛选,运算符:> < >= <= <> = is null in not null like in

在sql语句中 null值和任何东西比较 都为false,包括null

select * from ....where...

七、逻辑条件:and,or

select * from ... where sal >= 0 and sal <= 2000;--收入在0到2000之间

select * from ... where sal between 0 and 2000;--收入在0到2000之间

select * from ... where sal < s or sal > null;--收入小于s 或者没收入

八、order by

排序默认情况下是升序,asc可以省略。

select * from ... order by sal asc,alexa desc;--先根据sal升序再根据alexa降序。

九、in

匹配多个条件

select * from ... where country in ("usa","niaoguo","cn");

等价于

select *from ... where country = "usa" or country ="niaoguo" or country = "cn"; 

十、别名

select tt.name '网站名字' from ... tt;--tt是表的别名

十一、group by 分组查询

分组时候的筛选用having

常见的几个组函数:max() min() avg() count() sum()

select avg(sal) '平均值' ,country from ... group by country having 平均值 > 1200;

十二、子查询

把查询的结果当作一个表来使用

十三、连接查询

(1)全连接:将各个表用逗号分隔,就指定了一个全连接。

SELECT 查询字段 FROM 表1,表2[,表3.....] [WHERE 匹配条件];

(2)JOIN连接: 交叉连接 CROSS JOIN:SELECT 查询字段 FROM 表1 CROSS JOIN 表2;

                             内连接 [INNER] JOIN:SELECT 查询字段 FROM 表1 [INNER] JOIN 表2 ON 匹配条件;

                             左外链接 LEFT [OUTER] JOIN:SELECT 查询字段 FROM 表1 LEFT [OUTER] JOIN 表2 ON 匹配条件;

                            右外连接 RIGHT [OUTER] JOIN:SELECT 查询字段 FROM 表1 RIGHT [OUTER] JOIN 表2 ON 匹配条件;

十四、非空处理

select name,ifnull(count,0),ifnull(date,' ') from ... w left outer join ... a on w.id = a.site_id;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值