1、SQL语句可以单行或多行书写,以分号结尾。
2、MySQL数据库的SQL语句不区分大小写(关键字建议大写)
3、注释:
单行注释:--空格+注释内容 或 #注释内容(MySQL特有)
多行注释:/* 注释 */
DDL(Data Definition Language)数据定义语言,用来定义数据库对象:数据库,表,列等
DML(Data Manipulation Language)数据操作语言,用来对数据库中表的数据进行增删改
DQL(Data Query Language)数据查询语言,用来查询数据库中表的记录(数据)
DCL(Data Control Language)数据控制语言,用来定义数据库的访问权限和安全级别,及创建用户
1.1操作数据库
1、查询
show databases;
2、创建
· 创建数据库
create database 数据库名称;
· 创建数据库(判断,如果不存在则创建)
Create database if not exists 数据库名称;
3、删除
· 删除数据库
Drop database 数据库名称;
· 删除数据库(判断,如果存在则删除)
Drop database if exists 数据库名称;
4、使用数据库
· 查看当前使用的数据库
Select database();
· 使用数据库
Use 数据库名称;
1.2操作表
1、查询表
· 查询当前数据库下所有表的名称
show tables;
· 查询表的结构
desc表名称
2、创建表
· Create table 表名(
字段名1 数据类型1,
字段名2 数据类型2,
字段名n 数据类型n
);
· 最后一行末尾,不加逗号
· 字符串类型:varchar
3、修改表
· 修改表名
Alter table 表名 rename to 新的表名;
· 添加一行
Alter table 表名 add 列名 数据类型;
· 修改数据类型
Alter table 表名 modify 列名 数据类型;
· 修改列名和数据类型
Alter table 表名 change 列名 新列名 新数据类型;
删除列
Alter table 表名 drop列名;
4、删除表
· 删除表
Drop table 表名;
· 删除表时判断表是否存在
Drop table if exists 表名;
2.1添加数据
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, ... ),(值1,值2, .. ), ...;
2.2修改数据
1、修改表数据
Update 表名 set 列名1=值1,列名2=值2, .. where条件;
2.3删除数据
1、删除数据
Delete from 表名 where条件;
注意:删除语句中如果不加条件,则将所有数据都删除
3.1基础查询
1、查询多个字段
Select 字段列表 from 表名;
Select*from 表名 ;-- 查询所有数据
2、去除重复记录
Select distinct 字段列表 from表名;
3、起别名
as: as也可省略
3.2条件查询
1、条件查询语法
Select 字段列表 from 表名 where条件列表;
3.3排序查询
1、语法
Select 字段列表 from表名 order by 排序字段名1排序方式,排序字段名2排序方式,
2、排序方式
· Asc:升序排列(默认值)
· Desc:降序排列
注意:如果有多个排列条件,当前边的条件值一直时,才会根据第二个条件进行排序
3.4聚合函数
1、概念:
将一列数据作为一个整体,进行纵向计算。
2. 聚合函教分类:
3、聚合函数语法:
Select 聚合函数名(列名)from 表;
注意:null值不参与所有聚合函数运算
3.5分组查询
1、分组查询语法
select 字段列表from 表名[where 分组前条件限定]group by 分组字段名[having分组后条件过滤];
注意:分组之后,查询的字段为聚合函数和分组字段,查询其他字段无任何意义
where和 having 区别:
· 执行时机不一样:where是分组之前进行限定,不满足where条件,则不参与分组,而having是分组之后对结果进行过滤。
· 可判断的条件不一样:where不能对聚合函数进行判断,having 可以。
执行顺序:where>聚合函数>having
3.6分页查询
1.分页查询语法
select 字段列表 from 表名 limit 起始索引,查询条目数;
· 起始索引:从0开始
计算公式:起始索引=(当前页码-1)*每页显示的条数
tips:
分页查询limit是MySQL数据库的方言
Oracle 分页查询使用 rownumber
SQL Server分页查询使用top
1.1约束的概念和分类
1、约束的概念
- 约束是作用于表中列上的规则,用于限制加入表的数据
- 约束的存在保证了数据库中数据的正确性、有效性和完整性
2、约束的分类
Tips:MySQL不支持检查约束
自动增长:auto_increment :当列是数字类型并且 唯一约束
非空约束
1、概念
- 非空约束用于保证列中所有数据不能有NULL值
2、语法
(1)添加约束
-- 创建表时添加非空约束
CREATE TABLE 表名(
列名 数据类型 NOT NULL,
);
-- 建完表后添加非空约束
ALTER TABLE 表名 MODIFY 字段名 数据类型 NOT NULL;
(2)删除约束
ALTER TABLE 表名 MODIFY 字段名 数据类型;
1.2外键约束
1、概念
外键用来让两个表的数据之间建立链接,保证数据的一致性和完整性
2、语法
(1)添加约束
-- 创建表时添加外键约束
CREATE TABLE 表名(
列名 数据类型,
CONSTRAINT 外键名称 FOREIGN KEY(外键列名) REFERENCES 主表(主表列名)
);
-- 建完表后添加外键约束
alter table 表名 add constraint 外键名称 foreign key(外键字段名称) references 主表名称(主表列名称);
(2)删除约束
ALTER TABLE 表名 DROP FOREIGN KEY 外键名称;
(3)建完表后,添加外键
Alter table 表名 add constraint 外键名称 foreign key (外键字段名称) references 主表(主表列名);
2.1表关系一对多
- 一对多(多对一):
如:部门表 和 员工表
一个部门对应多个员工,一个员工对应一个部门
- 实现方式:在多的一方建立外键,指向一的一方的主键
2.2表关系多对多
- 多对多:
如:订单和商品
一个商品对应多个订单,一个订单包含多个商品
- 实现方式:建立第三张中间表,中间表至少包含两个外键,分别关联两方主键
2.3表关系一对一
- 一对一:
如:用户和用户详情
一对一关系多用于表拆分,将一个实体中经常使用的字段放一张表,不经常使用的字段放另一张表,用于提升查询性能
3.1 内连接
内连接也称为等值连接,只返回两个表中键值匹配的行,即只有在两个表中都有匹配的数据时才会返回
1、隐式内连接
Select 字段名 from 表1,表2… where 条件;
2、显示内连接
Select 字段名 from 表1 inner join 表2 on 条件;
内连接相当于查询 A,B 表交集数据
3.2外连接
1、左外连接
Select 字段名 from 表1 left outer join 表2 on 条件;
2、右外连接
Select 字段名 from 表1 right outer join 表2 on 条件;
- 左外连接:相当于查询A表所有数据和B表中匹配的数据
如果B表没有匹配的记录,则返回null值
- 右外连接:相当于查询B表所有数据和A表中匹配的数据
3.3子查询
1、子查询根据查询结果不同,作用不同:
- 单行单列:作为条件值,使用 = != ><等进行条件判断
SELECT 字段列表 FROM 表 WHERE 字段名=(子查询);
- 多行单列:作为条件值,使用in等关键字进行条件判断
SELECT 字段列表 FROM 表 WHERE 字段名 in(子查询);
- 多行多列:作为虚拟表
SELECT 字段列表 FROM (子查询) WHERE 条件;
3.1 事务简介
- 数据库的事务(Transaction)是一种机制、一个操作序列,包含了一组数据库操作命令
- 事务把所有的命令作为一个整体一起向系统提交或撤销操作请求,即这一组数据库命令要么同时成功,要么同时失败
- 事务是一个不可分割的工作逻辑单元
3.2语法
-- 开启事务
Start transaction; 或者 begin;
-- 提交事务
commit;
-- 回滚事务
rollback;
1、开启事务
开启事务之后,修改是临时的,修改在其他地方查不到
2、提交事务
持久化变化,在其他地方可以查到
3、回滚事务
相当于回滚到开启事务之前的状态
3.3事务四大特征
- 原子性(Atomicity):事务是不可分割的最小操作单位,要么同时成功,要么同时失败
- 一致性(Consistency):事务完成时,必须使所有的数据都保持一致状态
- 隔离性(Isolation):多个事务之间,操作的可见性
- 持久性(Durability):事务一旦提交或回滚,它对数据库中的数据的改变就是永久的
MySQL事务默认自动提交
-- 查看事务的默认提交方式
Select @@autocommit;
-- 1自动提交 0手动提交
-- 修改事务提交方式
set @@autocommit = 0;
到此这篇mysql主键可以是字符串吗(mysql主键可以是字符串吗)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/sqlbc/71856.html