MySQL数据库SQL语句

关系型数据库:建立在关系模型的基础上,由多张相互连接的二维表组成的数据库
特点:格式统一,易于维护

客户端----》DBMS----》数据库-----》创建多张表-----》插入记录
基于表存储的为关系型数据库

---------------------------------------------------------------
SQL
1、mysql数据库的sql语句不区分大小写
2、注释  ---或#  ,/* 多行数据

DDL   数据定义语言,定义数据库,表,字段
DML  数据操作语言,对数据库进行增删改
DQL   数据查询语言,查询数据库中表的记录
DCL    数据控制语言,创建用户,控制数据库访问权限

-----------------------------------------------------------
DDL
[ ]里面的代表可选的
1)SHOW DATABASES;
   SELECT DATABASE();    查询当前数据库
   CREATE DATABASE   【IF NOT EXITS】数据库名  【DEFAULT CHARSET字符集】 【COLLATE排序规则】
   DROP DATABASE 数据库名;  删除
   USE 数据库名;   使用
   DESE 表名; 查询表结构
   SHOW CREATE TABLE 表名; 查询指定表的建表语句
   
   建表语句
   CREATE TABLE 表名(
        字段1  字段1类型  【COMMENT 字段1注释】, 
        .....
        )【COMMENT 表注释】

数据类型:主要分为三类:数值类型、字符串类型、时间日期类型
指定无符号范围   : age TINYINT UNSIGNED
指定精度:   score double(整体长度,小数长度)
   
字符类型:
CHAR    定长字符串,占用固定长度,不足的位数会用空格补位 ------------》性能好
VARCHAR   变长字符串   超出长度会报错,但是会根据内容分配存储空间-----》性能较差
原因:要计算字符长度

时间类型:
DATE               日期
TIME                时间
YEAR                年份
DATETIME        混合时间日期
TIMESTAMP     混合时间日期,时间戳    范围最大到2038年


表操作-修改
 1、添加字段
ALTER TABLE 表名 ADD 字段名  类型(长度) 【COMMET】【约束】
2、修改字段
ALTER TABLE 表名 MODIFY 字段名 新的数据类型();
3、修改字段名和字段类型
ALTER TABLE 表名 CHANGE 旧字段名  新字段名  类型 (长度);
4、删除字段
ALTER TABLE 表名 DROP 字段名;
5、修改表名
ALTER TABLE 表名 RENAME TO 新表名;
6、删除表
DROP TABLE [IF EXITS]  表名;
TRUNCATE TABLE 表名; 删除指定表,并重新创建该表,就是相当于删除表中的所有数据

---------------------------------------------------------------------------------
DML
1、添加数据
INSERT INTO 表名 (字段1,字段2,.....)VALUES(值1,值2,......);
2、给全部字段添加数据
INSERT INTO 表名 VALUES(值1,值2,......);
3、批量添加数据
INSERT INTO 表名 (字段名1,字段名2,....) VALUES(值1,值2,.....),(值1,值2,....);
INSERT INTO 表名   VALUES(值1,值2,......);

注: 插入数据时,指定字段顺序要与值的顺序是一 一对应的。
        字符串和日期类型数据应该包含在引号中。
        插入数据的大小,应该在字段的规定范围内。

二、修改数据
UPDATE 表名 SET 字段名 字段名1=值1 ,字段名2=值2 ,【WHERE 条件】;
没有where条件则是修改整张表的数据

三、删除数据
DELETE FROM 表名 【WHERE 条件】;
不加条件删除的是所有的数据

-----------------------------------------------------------------------------------------
DQL
编写顺序
SELECT   字段列表
FROM     表名列表
WHERE    条件列表
GROUP BY    分组字段列表
HAVING        分组后条件列表
ORDER BY     排序字段列表
LIMIT             分页参数

基本查询
条件查询(WHERE)
聚合函数  (count,max,min,avg,sum)
分组查询    (GROUP BY)
排序查询    (ORDER BY)
分页查询    (LIMIT)

1、基本查询
SELECT 字段1,字段2.... FROM 表名;
SELECT * FROM 表名;

设置别名
SELECT 字段1【AS 别名1】,字段2【AS 别名2】.....FROM 表名;

去除重复记录
SELECT DISTINCT 字段列表 FROM 表名;

2、条件查询
SELECT 字段列表 FROM 表名 WHERE 条件列表;
条件:
>,>=, <, <=, = ,<>或!= (不等于),
BETWEEN...AND...(在某个范围之内) 包含最大值和最小值
IN(.......)在in之后的列表中的值,多选一
LIKE 占位符   (模糊匹配,_匹配单个字符,%匹配任意个字符)可以用来查询指定长度的字段
IS NULL   (是null)
AND 或 &&   (并且,多个条件同时成立)
OR 或 ll      (或者,多个条件任意一个成立)
NOT 或 !  (非,不是)


3、聚合函数与分组查询
聚合函数:讲一列数据作为一个整体,进行纵向计算,所有null值不参与聚合函数运算
SELECT    sum(字段名)FROM TABLE;

分组查询
SELECT 字段列表 FROM 表名 【WHERE 条件】 GROUP BY 分组字段名 【HAVING 分组后过滤条件】;
 
where与having区别:
-执行时机不同,where是分组之前进行过滤,不满足where条件,不参与分组;而having是分组之后
对结果进行过滤。
-判断条件不同:where不能对聚合函数进行判断,而having可以。

示例:select gender,count(*) from emp where id < 5 group by gender having count(*) > 1;

总结:分组之前用where,分组之后过滤用having

排序查询:
SELECT 字段列表 FROM 表名 ORDER BY 字段1 排序方式1,字段2 排序方式2;
排序方式:ASC 升序(默认) DESC(降序)
注意:如果是多字段排序,当第一个字段值相同时,才会根据第二个字段进行排序。

分页查询
SELECT 字段列表 FROM 表名 LIMIT 起始索引,查询记录数;
注意:
起始索引从0开始,起始索引=(查询页码-1)*每页显示记录数。
分页查询是数据库的方言,不同的数据库有不同的实现,MySQL中的是LIMIT。
如果查询的是第一页数据,起始索引可以省略,直接简写为limit 10。

DQL-执行顺序
FROM-->WHERE--->GROUP BY---->HAVING--->SELECT--->ORDER BY--->LIMIT


---------------------------------------------
 


 
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值