mysql-增删改查操作

-- 查询语句

SELECT * FROM student; -- 效率略低,一般不建议使用

SELECT tid,tname FROM student;

SELECT tname AS 姓名 FROM student;

SELECT * FROM student WHERE 1=1;

SELECT tname FROM student; -- 指定查询个别列

SELECT USER,PASSWORD,HOST FROM mysql.user; -- 跨库查询mysql数据库的user表内的用户名、密码、主机

-- 创建学生信息表

CREATE TABLE stu(

sno INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,

sname VARCHAR(10) NOT NULL,

sgender ENUM(‘男‘,‘女‘) DEFAULT ‘男‘,

saddress VARCHAR(50),

sscore TINYINT UNSIGNED,

sdept VARCHAR(20) NOT NULL

)ENGINE=MYISAM AUTO_INCREMENT=2014270001 DEFAULT CHARSET=utf8;

INSERT INTO stu VALUES(NULL,‘董华‘,‘男‘,‘河南省郑州市‘,80,‘计算机网络‘);

INSERT INTO stu VALUES(NULL,‘代珂‘,‘男‘,‘河南省平顶山‘,85,‘计算机安全‘);

INSERT INTO stu VALUES(NULL,‘小江‘,‘男‘,‘河南省商丘‘,70,‘计算机网络‘);

INSERT INTO stu VALUES(NULL,‘小宾‘,‘男‘,‘河南省商丘市‘,80,‘计算机安全‘);

INSERT INTO stu VALUES(NULL,‘小丽‘,‘女‘,‘河南省安阳市‘,90,‘化工食品‘);

INSERT INTO stu VALUES(NULL,‘小华‘,‘男‘,‘北京市‘,48,‘化工食品‘);

INSERT INTO stu VALUES(NULL,‘凯利‘,‘女‘,‘上海市‘,74,‘生物工程‘);

INSERT INTO stu VALUES(NULL,‘王菲‘,‘女‘,‘上海市‘,81,‘生物工程‘);

INSERT INTO stu VALUES(NULL,‘丽萨‘,‘女‘,‘河北省天津市‘,59,‘生物工程‘);

INSERT INTO stu VALUES(NULL,‘李莉‘,‘女‘,‘河北省天津市‘,0,‘化工食品‘);

INSERT INTO stu VALUES(NULL,‘张闯‘,‘男‘,‘河北省天津市‘,NULL,‘计算机网络‘);

INSERT INTO stu VALUES(NULL,‘张秋千‘,‘男‘,‘安徽省合肥市‘,NULL,‘计算机安全‘);

INSERT INTO stu VALUES(NULL,‘张李秋‘,‘男‘,‘安徽省‘,67,‘建筑工程‘);

INSERT INTO stu VALUES(NULL,‘秋香‘,NULL,‘安徽省‘,95,‘建筑工程‘);

-- 条件查询

-- 空条件判断 IS NULL 或 IS NOT NULL

SELECT * FROM stu WHERE sscore IS NULL;

SELECT sno,sname,sscore FROM stu WHERE sscore IS NOT NULL;

-- IN() 在...范围内 或 NOT IN()不在...范围内

SELECT * FROM stu WHERE sdept IN(‘计算机网络‘,‘计算机安全‘);

SELECT * FROM stu WHERE sdept NOT IN(‘计算机网络‘,‘计算机安全‘);

-- BETWEEN AND 在...之间 或 NOT BETWEEN AND 不在...之间

SELECT * FROM stu WHERE sscore NOT BETWEEN 70 AND 90;

SELECT * FROM stu WHERE sscore BETWEEN 70 AND 90;

-- NOT 取反运算符 ADN 与运算符 OR 或运算符

SELECT * FROM stu WHERE sdept = ‘建筑工程‘ OR sdept = ‘生物工程‘;

SELECT * FROM stu WHERE sgender = ‘男‘ AND sdept = ‘计算机网络‘;

-- LIKE ‘张%‘ 模糊查找运算符(%:代表0-n多个字符,_代表一个字符)

SELECT * FROM stu WHERE sname LIKE ‘李%‘;

SELECT * FROM stu WHERE sname LIKE ‘李_‘;

SELECT * FROM stu WHERE sname LIKE ‘%李%‘;

SELECT * FROM stu WHERE sname NOT LIKE ‘%李%‘;

-- 排序操作 DESC代表降序排序,ASC代表升序排序,默认升序排序

SELECT * FROM stu ORDER BY sscore DESC;

SELECT * FROM stu ORDER BY sscore ASC;

-- LIMIT 限制结果显示行数(用法:LIMIT 5 显示5行  或 LIMIT 0,5 从0位置开始显示5行,0代表数据库内起始行数),LIMIT 在SQL语句最后面

SELECT * FROM stu LIMIT 5;

SELECT * FROM stu LIMIT 0,5;

-- IFNULL() 与 IF()两个函数的使用及区别:IFNULL(exp1,exp2) = IF(exp1 IS NULL,exp2,exp3)

SELECT sno AS 学号,sname AS 姓名,sgender AS 性别,IFNULL(sscore,‘旷考‘) AS 成绩 FROM stu;

SELECT sno AS 学号,sname AS 姓名,sgender AS 性别,IF(sscore IS NULL,‘旷考‘,sscore) AS 成绩 FROM stu;

-- 集合函数(聚集函数)

AVG() -- 求平均值 (计算平均时,不包含空值)

SUM() -- 求和

COUNT() -- 求总记录数

MAX() -- 最大值

MIN() -- 最小值

SELECT AVG(sscore) 平均分,SUM(sscore) 总分,MAX(sscore) 最高分,MIN(sscore) 最低分,COUNT(*) 总人数,COUNT(sscore) 考试人数 FROM stu;

SELECT COUNT(DISTINCT sdept) 专业 FROM stu; -- DISTINCT 去除重复

SELECT sdept,AVG(sscore) FROM stu GROUP BY sdept; -- 分组查询,一般前面是分组名称,紧跟着是集合函数(聚集函数)

-- 条件中的那个查询是子查询,显示出最高分的学生信息

SELECT * FROM stu WHERE sscore =(

SELECT MAX(sscore) FROM stu -- 子查询,当子查询查到的数据只有一个时,可以用‘=‘,多于一条时只能用‘IN‘

);

SELECT * FROM stu WHERE sscore IN(

SELECT MAX(sscore) FROM stu -- 子查询

);

-- 统计男、女生分别有几人

SELECT IFNULL(sgender,‘保密‘),COUNT(*) FROM stu GROUP BY sgender;

-- 统计各个专业的平均成绩,显示平均成绩不小于60分的专业的前两条数据

SELECT sdept,AVG(sscore) FROM stu WHERE 1=1 GROUP BY sdept HAVING AVG(sscore)>=60 ORDER BY AVG(sscore) DESC LIMIT 2;

WHERE 查询条件

GROUP BY 分组

HAVING 是分组条件(使用前提是使用了分组)

ORDER BY 排序

LIMIT 取几条记录

-- 多表连接查询  查询结果是多个表中的信息

CREATE TABLE student(

sid INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,

sname VARCHAR(10) NOT NULL,

sage TINYINT UNSIGNED,

stid SMALLINT UNSIGNED

)ENGINE=MYISAM DEFAULT CHARSET=utf8;

CREATE TABLE teacher(

tid SMALLINT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,

tname VARCHAR(10) NOT NULL

)ENGINE=MYISAM DEFAULT CHARSET=utf8;

INSERT INTO teacher VALUES(NULL,‘张老师‘);

INSERT INTO teacher VALUES(NULL,‘王老师‘);

INSERT INTO teacher VALUES(NULL,‘赵老师‘);

INSERT INTO teacher VALUES(NULL,‘李老师‘);

SELECT * FROM teacher;

INSERT INTO student VALUES(NULL,‘曹操‘,20,1);

INSERT INTO student VALUES(NULL,‘张飞‘,27,4);

INSERT INTO student VALUES(NULL,‘关羽‘,29,2);

INSERT INTO student VALUES(NULL,‘刘备‘,50,2);

INSERT INTO student VALUES(NULL,‘孙权‘,40,4);

INSERT INTO student VALUES(NULL,‘诸葛亮‘,24,3);

INSERT INTO student VALUES(NULL,‘姚盖‘,25,1);

INSERT INTO student VALUES(NULL,‘大乔‘,25,5);

SELECT * FROM student;

TRUNCATE student;

-- 查询学生学号、姓名、年龄及代课老师的姓名:

-- 等值链接查询

SELECT sid,sname,sage,tname FROM student,teacher WHERE student.stid=teacher.tid;

-- 左链接查询

SELECT sid,sname,sage,IFNULL(tname,‘无‘) FROM student s LEFT JOIN teacher t ON s.stid=t.tid;

-- 右链接查询

SELECT sid,sname,sage,IFNULL(tname,‘无‘) FROM student s RIGHT JOIN teacher t ON s.stid=t.tid;

-- 表的自身链接查询

SELECT a.sid,a.sname,b.sname FROM student a,student b WHERE a.sid<b.sid;

-- INSERT 插入语句

CREATE TABLE t1(

tid INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,

tname VARCHAR(10) NOT NULL,

tage TINYINT UNSIGNED

)ENGINE=MYISAM DEFAULT CHARSET=utf8;

INSERT INTO t1 VALUES(NULL,‘jack‘,18); -- 插入一条数据

INSERT INTO t1 VALUES(NULL,‘jane‘,20),(NULL,‘lili‘,10); -- 插入多条数据

INSERT INTO t1 (tname,tage) VALUES(‘张三‘,20); -- 插入一条数据,字段对应

INSERT INTO t1 SELECT * FROM t1; -- 将查询的数据插入数据库(前提是没有主键约束)

REPLACE INTO t1 VALUES(1,‘库克‘,35); -- 如果主键相同则替换插入,不同则插入

-- DELETE 删除语句

DELETE FROM t1 WHERE tid=1; -- 删除t1表内tid为1的数据

DELETE FROM t1; -- 删除t1表内的所有数据(再次插入数据,主键接着之前的增加)

TRUNCATE t1; -- 截断表内的所有数据,清空数据,保留结构(再次插入数据的话,主键重新开始),不触发触发器

-- drop 删除语句

DROP DATABASE db;-- 删除数据库

DROP TABLE t1;-- 删除表

-- UPDATE 更新修改语句

UPDATE t1 SET tname = ‘小可‘,tage=18 WHERE tid =2;

时间: 2024-10-06 07:34:35

mysql-增删改查操作的相关文章

48.Python中ORM模型实现mysql数据库基本的增删改查操作

首先需要配置settings.py文件中的DATABASES与数据库的连接信息, DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'orm_intro_dem', 'USER': 'root', 'PASSWORD': 'root', 'HOST': '127.0.0.1', 'PORT': '3306', } } 之后将创建的app添加到settings.py文件中的INSTALLED_APPS中

(转)SQLite数据库增删改查操作

原文:http://www.cnblogs.com/linjiqin/archive/2011/05/26/2059182.html SQLite数据库增删改查操作 一.使用嵌入式关系型SQLite数据库存储数据 在Android平台上,集成了一个嵌入式关系型数据库--SQLite,SQLite3支持NULL.INTEGER.REAL(浮点数字).TEXT(字符串文本)和BLOB(二进制对象)数据类型,虽然它支持的类型只有五种,但实际上sqlite3也接受varchar(n).char(n).d

Java+MyEclipse+Tomcat (六)详解Servlet和DAO数据库增删改查操作

此篇文章主要讲述DAO.Java Bean和Servlet实现操作数据库,把链接数据库.数据库操作.前端界面显示分模块化实现.其中包括数据的CRUD增删改查操作,并通过一个常用的JSP网站前端模板界面进行描述.参考前文: Java+MyEclipse+Tomcat (一)配置过程及jsp网站开发入门 Java+MyEclipse+Tomcat (二)配置Servlet及简单实现表单提交 Java+MyEclipse+Tomcat (三)配置MySQL及查询数据显示在JSP网页中 Java+MyE

MyBatis批量增删改查操作

前文我们介绍了MyBatis基本的增删该查操作,本文介绍批量的增删改查操作.前文地址:http://blog.csdn.net/mahoking/article/details/43673741 批量增加操作步骤 1. 在接口UserMapper中添加批量增加方法. /** * 批量增加操作 * @param users */ public void batchInsertUsers(List<User> users); 2.在User.xml中添加批量增加操作的配置. <!-- 批量增

mongoVUE的增删改查操作使用说明;一、查询;1、精确查询;1)右键点击集合名,再左键点击Find;或者直接点击工具栏上的Find;2)查询界面,包括四个区域;{Find}区,查询条件格式{&quot;se

mongoVUE的增删改查操作使用说明 一. 查询 1. 精确查询 1)右键点击集合名,再左键点击Find 或者直接点击工具栏上的Find 2)查询界面,包括四个区域 {Find}区,查询条件格式{"sendId":"000101"}表示查询sendId=000101的记录, (注:mongodb区分大小写,写成{"sendid":"000101"}会查询不到) 查询条件包含and时,格式为:{"sendId&quo

mysql增删改查练习

Mysql增删改查sql语句练习 关于数据库的一些操作: 进入mysql 命令行: mysql -uroot –p 查看所有数据库: show databases; 创建数据库: create database wg charset utf8; 删除数据库: drop database wg; 选择数据库: use databases; 查看所有表: show tables; 查看创建数据库的语句:show create database databasename; 查看创建表的语句:show

Mybatis实现简单的数据库增删改查操作

Mybatis实现简单的数据库增删改查操作 框架:mybatis(3.5.2) 数据库:mysql 工具:idea 1.新建一个maven项目,在pom文件中添加mybatis依赖及MySQL依赖 <!-- mybatis核心依赖 --> <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis --> <dependency> <groupId>org.mybatis</groupId&g

Mybatis实现单表增删改查操作

mybatis是对持久层进行了封装.mybatis文档地址:https://mybatis.org/mybatis-3/zh/index.html 下面实现单表的增删改查操作. 1.新建maven项目命名为mybatis.并在pom.xml中引入相关依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0"

Scala对MongoDB的增删改查操作

=========================================== 原文链接: Scala对MongoDB的增删改查操作 转载请注明出处! =========================================== 依赖环境:jdk1.8.Scala 2.12.idea mongodb Driver:3.1.1.注意,mongo for scala的驱动涉及多个jar(如下图),依赖于mongo-java-driver.jar 这里使用的sbt管理依赖,直接在bu

PHP MySql增删改查

mysql_connect()连接数据库 mysql_select_db选择数据库 mysql_fetch_assoc()获取结果集 mysql_query()执行sql语句 实例如下: <?php    [email protected]_connect('localhost','root','root');//连接数据库    mysql_select_db('test',$con);//选择数据库    $userInfo=mysql_query("select * from use