相关连接:

mysql和sqlserver的区别:https://www.cnblogs.com/vic-tory/p/12760197.html

sqlserver基本操作:https://www.cnblogs.com/vic-tory/p/12760871.html

一.创建数据库

CREATE DATABASE IF NOT EXISTS student;

DROP DATABASE `student`;

二.表

CREATE TABLE IF NOT EXISTS `user`(
userId int PRIMARY KEY AUTO_INCREMENT,
userName varchar(20) NOT NULL,
userSex char(1) CHECK(userSex='男' OR userSex='女'), #MYSQL不支持检查约束
createTime timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
userPhone varchar(20) UNIQUE
); CREATE TABLE company (`companyId` int PRIMARY KEY AUTO_INCREMENT,`companyName` varchar(20) NOT NULL); ALTER TABLE `user` ADD `userAge` int COMMENT '用户年龄'; #添加字段 ALTER TABLE `user` MODIFY COLUMN `userAge` int NOT NULL COMMENT '用户年龄'; #修改字段 ALTER TABLE `user` DROP COLUMN `userAge`; #删除字段 ALTER TABLE `user` ADD CONSTRAINT FK_userId_companyId FOREIGN KEY (`companyId`) REFERENCES `company`(`companyId`); DESC `user`; DROP TABLE `user`;

三.添加

INSERT INTO `user` SET `userName`='Robin',`userSex`='男',  `userPhone`='123456789',`userAge`=18;

INSERT INTO `user`(`userName`,`userSex`,`userPhone`,`userAge`,`createTime`) VALUES ('Robin','男','123456','18','2019-04-06');

INSERT INTO `user` SELECT * FROM `#user`;#一般用于表的数据添加到主表

四.查询

SELECT MAX(`createTime`),MIN(`createTime`),COUNT(*) AS count,AVG(`userAge`),SUM(`userAge`),userId,userName
FROM `user`
WHERE `userSex` ='男'
GROUP BY `userSex`,`userId`,`userName`
HAVING MIN(`createTime`)>'2019-04-05'
ORDER BY `userId` DESC /*ASC*/ ; SELECT * FROM `user` WHERE `userId` IN /*NOT IN*/(SELECT `userId` FROM `user`); SELECT * FROM `user` LIMIT 0,1; SELECT * FROM `user` WHERE EXISTS /*NOT EXISTS*/(SELECT * FROM `user` WHERE `userId`='3'); #EXISTS 返回TRUE 或者FALSE SELECT * FROM `user` u LEFT JOIN /*INNER JOIN,LEFT OUTER JOIN,RIGHT OUTER JOIN,RIGHT JOIN ,CROSS JOIN*/ `company` c ON u.companyId=c.companyId ; SELECT * FROM `user` UNION /*UNION ALL*/ SELECT * FROM `user`; SELECT DISTINCT `userName`,`userSex` FROM `user`;

五.更新

UPDATE `user` SET `userAge`=20 WHERE `userId` =1;

UPDATE `user` u JOIN `company` c ON u.companyId=c.companyId
SET c.companyName='BCD',u.userName='RoBin'
WHERE u.userId='1'

六.删除

DELETE FROM `user` WHERE `userId`='1';

TRUNCATE `user`;

七.视图

CREATE VIEW v_user_company AS
SELECT userId,c.companyId FROM `user` AS u JOIN `company` AS c
ON u.companyId=c.companyId
WHERE u.userId=1; SELECT * FROM v_user_company; ALTER VIEW v_user_company AS SELECT * FROM `user`; DROP TABLE IF EXISTS v_user_company;

八.存储过程

CREATE PROCEDURE sp_user_company(
IN inPara int,
OUT outPara int,
INOUT inOutPara int
)
BEGIN
DECLARE count int ;
SELECT COUNT(*) INTO count FROM `user`;
SET outPara=count;
SET inOutPara=count;
END; #SET @outPara=0; #可省略
#SET @inOutPara=0;
CALL sp_user_company(1,@outPara,@inOutPara);
SELECT @inOutPara;
SELECT @outPara; #MYSQL 不提供存储过程中的代码修改 DROP PROCEDURE `sp_user_company`;

九.事务

SHOW GLOBAL VARIABLES LIKE 'autocommit';

SET GLOBAL AUTOCOMMIT=0;

SET GLOBAL AUTOCOMMIT=1;

START TRANSACTION;

ROLLBACK;

COMMIT;

十.自定义函数

CREATE FUNCTION fn_user_company() RETURNS int
BEGIN
DECLARE count int ;
SELECT COUNT(*) INTO count FROM `user`;
RETURN count;
END; SELECT fn_user_company(); CREATE FUNCTION fn_user_company1(count int) RETURNS int
BEGIN
RETURN count;
END; SELECT fn_user_company1(1); SHOW CREATE FUNCTION `fn_user_company`; #函数不能内部的内容 DROP FUNCTION `fn_user_company`;

十一.游标

CREATE PROCEDURE `sp_logic`()
BEGIN
DECLARE stuId int;
DECLARE stuName varchar(20) CHARACTER SET UTF8;
DECLARE done int DEFAULT 0;
DECLARE myCursor CURSOR FOR SELECT * FROM `user`;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=1;
OPEN myCursor;
SET total=0;
c:LOOP
FETCH myCursor INTO stuId,stuName;
IF done=1 THEN
LEAVE c;
END IF ;
SET total =total+1;
END LOOP;
CLOSE myCursor;
SELECT total;
END;

十二.常用函数

数值型函数

字符串函数

日期和时间函数

聚合函数和流程控制函数

温故而知新——MYSQL基本操作的更多相关文章

  1. mysql 基本操作语句

    mysql 基本操作笔记: 创建表demo:CREATE TABLE `role` ( `role_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMME ...

  2. css属性编写顺序+mysql基本操作+html细节(个人笔记)

    css属性编写顺序: 影响文档流的属性(比如:display, position, float, clear, visibility, table-layout等) 自身盒模型的属性(比如:width ...

  3. 【mysql】mysql基本操作

    mysql基本操作 1.mysql表复制 mysql 表结构的复制 create table t2 like t2 mysql 表数据的复制 insert into t2 select * from ...

  4. 数据库相关 Mysql基本操作

    数据库相关 设计三范式: 第一范式: 主要强调原子性 即表的每一列(字段)包含的内容,不能再拆分.如果,某张表的列,还可以细分,则违背了数据库设计的第一范式. 第二范式: 主要强调主键,即:数据库中的 ...

  5. 温故而知新-mysql高级管理

    温故而知新-mysql高级管理 1 mysql的一些授权信息都保存在授权表中 授权表是6个 db,user,host,tables_priv,columns_priv,procs_priv 这6个表 ...

  6. Mysql基本操作、C++Mysql简单应用、PythonMysql简单应用

    MySql基本操作 -- 当指定名称的数据库不存在时创建它并且指定使用的字符集和排序方式 CREATE DATABASE IF NOT EXISTS db_name CHARACTER SET UTF ...

  7. MySQL必知必会笔记-Mysql基本操作

    Mysql基本操作 mysql的基本操作包括增.删.改.查,本书中前三章简单的介绍MySQL为何物,查是mysql中非常重要的功能,4-6章展示了mysql的查(查询--select)的简单实现,my ...

  8. day02 MySQL基本操作

    day02 MySQL基本操作 昨日内容回顾 数据库演变史 1.纯文件阶段 2.目录规范 3.单机游戏 4.联网游戏 # 数据库就是一款帮助我们管理数据的程序 软件开发架构及数据库本质 cs架构与bs ...

  9. MYSQL基本操作(上)

    很久之前,就想做个Mysql的小结,毕竟数据库知识是软件研发的基本技能,这里话不多说,开始总结一波. 数据库基本概念 数据库为高效的存储和处理数据的介质(主要分为磁盘和内存两种),一般关系型数据库存储 ...

  10. MySQL(二) MySQL基本操作

    数据库的基本操作 启动关闭 MySQL 服务 MySQL 安装好后,默认是当 Windows 启动.停止时,MySQL 也自动.停止.不过,用户可以使用 Windows 下的服务管理器或从命令行使用 ...

随机推荐

  1. python系列:argparse详解 外部传参给python的库

    一.argparse简介 argparse 模块是 Python 内置的用于命令项选项与参数解析的模块,argparse 模块可以让人轻松编写用户友好的命令行接口,能够帮助程序员为模型定义参数. ar ...

  2. py2neo函数merge参数报错

    代码 a1 = Node("house", name='303') g.merge(a1) 执行报错 Primary label and primary key are requi ...

  3. 21.4 Python 使用GeoIP2地图定位

    GeoIP2是一种IP地址定位库,它允许开发人员根据IP地址查找有关位置和地理位置的信息.它使用MaxMind公司的IP地址数据库,并提供一个方便的Python API.GeoIP2可以用于许多不同的 ...

  4. kingbase sql 回表优化案例

    同事找我优化SQL,同一条SQL语句LIKE过滤条件不同,执行时间差别很多,废话不说安排一下. LIKE过滤条件执行快的SQL和执行计划: EXPLAIN ANALYZE SELECT case_id ...

  5. 文心一言 VS 讯飞星火 VS chatgpt (131)-- 算法导论11.2 3题

    三.用go语言,Marley 教授做了这样一个假设,即如果将链模式改动一下,使得每个链表都能保持已排好序的顺序,散列的性能就可以有较大的提高.Marley 教授的改动对成功查找.不成功查找.插入和删除 ...

  6. 关于MM32F001无法debug的问题

    以下问题仅来自于个人的调试发现和猜测, 并不代表芯片有任何问题. 实际上我也仅仅是试用了一下. 主要发现芯片总是被锁住(FLASH被写保护?),具体如下: (1) 内存溢出时芯片被写保护, 导致再次d ...

  7. nodejs 实现MQTT协议的服务器端和客户端的双向交互

    一.项目背景 公司和第三方合作开发一个传感器项目,想要通过电脑或者手机去控制项目现场的传感器控制情况.现在的最大问题在于,现场的边缘终端设备接入的公网方式是无线接入,无法获取固定IP,所以常规的HTT ...

  8. Codeforces Round #707 (Div. 2)A~C题解

    写在前边 链接:Codeforces Round #707 (Div. 2) 心态真的越来越不好了,看A没看懂,赛后模拟了一遍就过了,B很简单,但是漏了个判断重复的条件. A. Alexey and ...

  9. 手撕Vue-Router-提取路由信息

    前言 好了经过上一篇的学习,我们已经知道了如何监听 Hash 的变化,如何监听路径的一个变化,本篇我们就可以来实现我们自己的 VueRouter 了, 那么怎么实现呢,在实现之前我们先来回顾一下官方的 ...

  10. 新手VSCode配置C++20

    最近买了本C++20的书,想要自己配置下在VScode的环境 例子代码: #include <iostream> #include <format> int main() { ...