服务器和网站空间,外汇平台 网站开发,网站建设工作计划,手机app应用开发1 通用语法规则
SQL语句可以单行或者多行书写#xff0c;以分号结尾SQL语句不区分大小写#xff0c;关键字建议使用大写单行注释 --注释内容#xff08;通用#xff09; # 注释内容#xff08;MySQL独有#xff09;多行注释 /* 注释内容 */
2 语句
数据库
-- 查…1 通用语法规则
SQL语句可以单行或者多行书写以分号结尾SQL语句不区分大小写关键字建议使用大写单行注释 --注释内容通用 # 注释内容MySQL独有多行注释 /* 注释内容 */
2 语句
数据库
-- 查看所有数据库
show databases;-- 创建数据库
create database 数据库名称;-- 创建数据库判断不存在则创建
create database if not exists 数据库名称;
-- 删除数据库
drop database 数据库名称;-- 删除数据库存在才删除
drop database if exists 数据库名称;-- 切换数据库/使用数据库
use 数据库名称;
表
-- 创建表
create table 表名 (字段名 数据类型,字段名 数据类型,...
); 常用数据类型 int整数类型double小数类型varchar(长度)字符串data日期 yyyy-MM-dd 分类 类型名称 类型说明 整数 tinyInt 微整型很小的整数(占8位二进制) 1个字节 smallint 小整型小的整数(占16位二进制) 2个字节 mediumint 中整型中等长度的整数(占24位二进制) 3个字节 int(integer) 整型整数类型(占32位二进制) 4个字节 bigint 大整型占64位二进制 8个字节 小数 float 单精度浮点数占4个字节 double 双精度浮点数占8个字节 decimal(m,n) 数值类型m表示数值的长度n表示小数的位数既可以表示整数也可以表示小数。如decimal(10) decimal(10,2) 日期 time 只表示时间类型 HH:mm:ss date 只表示日期类型 yyyy-MM-dd datetime 表示日期和时间类型时间范围为1000-01-01 00:00:00 到 9999-12-31 23:59:59 timestamp 表示日期和时间类型(时间戳) 时间范围为1970-01-01 00:00:01 到 2038-01-19 03:14:07 字符串 char(m) 定长 固定长度的字符串无论使用几个字符都占满全部M为0~255之间的整数 varchar(m) 变长 可变长度的字符串使用几个字符就占用几个M为0~65535之间的整数
-- 查看数据库A中的所有表
show tables;-- 查看表结构
desc 表名;-- 删除表
drop table 表名;
-- 修改表名
alter table 表名 rename to 新表名;-- 单独添加一个字段
alter table 表名 add 字段名 数据类型;-- 修改某字段的数据类型
alter table 表名 modify 字段名 新数据类型-- 修改字段名和数据类型
alter table 表名 change 字段名 新字段名 新数据类型;-- 删除某一个字段
alter table 表名 drop 字段名;
表数据的增删改
-- 给指定列添加数据
insert into 表名 (字段1字段2...) values (值1值2...);-- 给全部列添加数据
insert into 表名 values (值1值2...);-- 批量添加数据
insert into 表名 values (值1值2...),(值1值2...),(值1值2...);
指定列添加数据 批量添加 删除和修改表中数据必须加条件否则表中数据会全部删除或修改
-- 修改表中数据
update 表名 set 字段名新的值(,字段名新的值) where 条件 (and 条件2);-- 删除表中数据
delete from 表名 where 条件; 查询数据
基础查询
-- 查询指定字段的数据
select 字段1字段2 from 表名;-- 查询所有字段的数据
select * from 表名;
-- 去除重复字段的查询查询出来的重复数据只会显示一个
select distinct 字段名1 from 表名;-- 计算列的值例如算销售额将单价*销量
select 字段名1 ( - * /) 字段名2 from 表名;-- 起别名查询显示的列的名字会显示成别名
select 字段1 as 别名1字段2 as 别名2 from 表名;
条件查询
-- 条件查询
select 字段名 from 表名 where 条件 比较运算符大于()、小于()、大于等于()、小于等于()、等于()、不等于(或!)逻辑运算符并且(and 或 )、或者(or 或 ||)、非(not 或 !)范围在某个范围内(between...and....)(范围包括在内)、多选一(in (非连续的范围) )nll的处理是null(is null)、不是null(is not null)
模糊查询
-- 模糊查询
select * from 表名 where 字段名 like 通配符字符串;
通配符任意多个字符(%)、一个字符(_) 查询排序
-- 排序查询
select 字段名 from 表名 order by 列名 排序方式1排序方式2;
排序方式升序(asc)默认、降序(desc)
如果有多个排序条件只有当前面的条件值一样时才会判断第二个排序条件 复杂查询-聚合函数
使用聚合函数是无法同时查询同行的其它数据
-- 聚合函数查询null值是不会被统计到
select 聚合函数(字段名) from 表名 count统计指定列有几行sum计算指定列的数值和max计算指定列的最大值min计算指定列的最小值avg计算指定列的平均值
-- round(数据小数位) 让小数显示指定位数
select round(avg(grade),2) from student;
复杂查询-分组
-- 分组查询
select 字段名 from 表名 (where 条件) group by 字段名 (having 条件);-- 分组查询,只会查询每个字段的第一个
select * from 表名 group by 字段名;-- 统计字段有几个
select 字段Acount(*) group by 字段A ;-- 例如统计选每个学科的有多少人
select xueke,count(*) group by xueke;
having与where的区别 where是在分组前对数据进行过滤having是在分组后对数据进行过滤 where后面不可以使用聚合函数having后面可以使用聚合函数 复杂查询-分页
limit作用获取部分查询的数据
-- 分页查询
select * from 表名 limit 跳过的记录数默认为0,显示总数;-- 例子跳过前2条获取3条
select * from 表名 limit 2,3;-- 跳过0条显示3条
select * from 表名 limit 3;MySQL数据库limit
Oracle数据库rownumber
SQL Servertop