MySQL 详细单表增删改查crud语句


本文整理自网络,侵删。

MySQL 增删改查语句

1.创建练习表

  • 这里练习表没有满足三范式

第一范式(又称 1NF):保证每列的原子性
数据表中的每一列(字段),必须是不可拆分的最小单元,也就是确保每一列的原子性。满足第一范式是关系模式规范化的最低要求,否则,将有很多基本操作在这样的关系模式中实现不了。
第二范式(又称 2NF):保证一张表只描述一件事情
满足1NF后要求表中的所有列,每一行的数据只能与其中一列相关,即一行数据只做一件事。只要数据列中出现数据重复,就要把表拆分开来。
第三范式(又称 3NF):保证每列都和主键直接相关
满足2NF后,要求:表中的每一列都要与主键直接相关,而不是间接相关(表中的每一列只能依赖于主键)。
数据不能存在传递关系,即没个属性都跟主键有直接关系而不是间接关系。像:a–>b–>c 属性之间含有这样的关系,是不符合第三范式的。

  • 五大约束

数据库中的五大约束包括:

1.主键约束(Primay Key Coustraint) 唯一性,非空性;

2.唯一约束 (Unique Counstraint)唯一性,可以空,但只能有一个;

3.默认约束 (Default Counstraint) 该数据的默认值;

4.外键约束 (Foreign Key Counstraint) 需要建立两表间的关系;

5.非空约束(Not Null Counstraint):设置非空约束,该字段不能为空。

五大约束的语法示例:

添加主键约束
Alter table 表名 add Constraint 主键名 primary key(字段)

添加唯一约束
Alter table 表名 add Constraint 约束名 unique(字段)

添加默认约束
Alter table 表名 add Constraint 约束名 default(默认内容) for 字段名

添加检查约束
Alter table 表名 add Constraint 约束名 check (字段表达)

添加外键约束
Alter table 表名 add Constraint 约束名 foreign key(字段) references 表名(字段名)

1.1用户表(user)

CREATE TABLE `user`(
	`id` INT AUTO_INCREMENT PRIMARY KEY COMMENT '用户id(主键)',
	`username` VARCHAR(50) COMMENT '用户姓名', 
	`age` CHAR(3) COMMENT '用户年龄'
);

插入数据

INSERT INTO USER VALUES(2,'小二',12);
INSERT INTO USER VALUES(3,'张三',33);
INSERT INTO USER VALUES(4,'李四',24);
INSERT INTO USER VALUES(5,'王五',17);
INSERT INTO USER VALUES(6,'赵六',36);
INSERT INTO USER VALUES(7,'七七',18);

完成后
表名 user
表数据:

1.2学生表

CREATE TABLE `students`(
	`id` INT AUTO_INCREMENT PRIMARY KEY COMMENT '学生id(主键)',
	`name` VARCHAR(10) COMMENT '学生姓名', 
	`grade` VARCHAR(10) COMMENT '学生年级',
	`chinese` INT COMMENT '语文成绩',
	`math` INT COMMENT '数学成绩',
	`english` INT COMMENT '英语成绩'
);

插入数据

INSERT INTO students VALUES(1,'迪丽热巴','二年级',100,100,100);
INSERT INTO students VALUES(2,'古力娜扎','一年级',99,88,98);
INSERT INTO students VALUES(3,'马尔扎哈','三年级',46,20,99);
INSERT INTO students VALUES(4,'阿里巴巴','一年级',78,81,100);
INSERT INTO students VALUES(5,'哈哈哈哈','六年级',20,10,5);
INSERT INTO students VALUES(6,'作者本人','二年级',100,100,100);
INSERT INTO students VALUES(7,'嘻嘻哈哈','五年级',70,99,60);
INSERT INTO students VALUES(8,'哭哭啼啼','四年级',33,15,54);

列名或者表名和 MySQL 关键字冲突可以使用 ` 符号,键盘esc 下面,1 左边,Tab 上面;
注意 ==> 如果成绩类型是 varcher ,那使用排序将会显示不正确。

完成后
表名 students
表数据:

2.查询

2.1查询全部(这里使用user用户表)

Select * from 表名;

SELECT * FROM USER;

2.2查询已经成年的用户(使用where条件查询)

  • 条件中比较运算符:( 等于: = 大于: > 大于等于: >= 小于: < 小于等于: <= 不等于: != 或 <> )
  • Select * from 表名 where 条件;
SELECT * FROM USER WHERE age >= 18;

2.3查询未成年用户的名字

SELECT 字段名 FROM 表名 WHERE 条件;

SELECT username FROM USER WHERE age < 18;

2.4使用别名查询

使用as关键字(as可以省略)

SELECT u.* FROM USER AS u;

2.5使用逻辑运算符查询

逻辑运算符( 并且:and 或 && 或:or 非:not 或 ! )

查询名字为小二又年龄是12岁的(显示名字和年龄)

SELECT u.`username`,u.`age` FROM USER u WHERE u.`username`='小二' && u.`age`=12;

查询名字为张三又是未成年的(查询结果空,没有这个人)

SELECT * FROM USER WHERE username='张三' && age < 18;

2.6使用运算符查询(这里开始使用students学生表)

查询 哈哈哈哈 的三科总分
运算符优先级:
1.乘法和除法的优先级高于加法和减法
2.同级运算的顺序是从左到右
3.表达式中使用"括号"可强行改变优先级的运算顺序
select 列1[ ±*/ ]列2 from 表名 where 条件;

SELECT s.chinese + s.math + s.english FROM students s WHERE s.name = '哈哈哈哈';

2.7范围查询(between 条件1 and 条件2)

(良 60-70,中70-80,优80-90,优秀90-100)

查询语文成绩是 良到中 的同学名字一
where 字段(列名) between 条件1 and 条件2;

SELECT NAME FROM students WHERE chinese BETWEEN 60 AND 80;

查询数学成绩不合格的同学名字


where 字段(列名)not between 条件1 and 条件2;

SELECT NAME FROM students WHERE math NOT BETWEEN 60 AND 100;

查询英语成绩优秀的同学id和名字;


where !( 字段名 between 条件1 and 条件2);

SELECT s.`id`,s.`name` FROM students s WHERE !(s.`english` BETWEEN 0 AND 90);

2.8集合查询查询一年级和二年级的学生信息

where 列名 in (值1,值2,值3);

SELECT * FROM students WHERE grade IN ('一年级','二年级');

*查询一年级,二年级,三年级以外的学生信息
where 列名 not in (值1,值2,值3);

SELECT * FROM students WHERE grade NOT IN ('一年级','二年级','三年级');

2.9 NULL值查询

注意:列中值为null不能使用=去查询

查询名字为 null 的学生数据(没有存储有,所以啥也没有)
where 列名 is null;

SELECT * FROM students WHERE `name` IS NULL;

阅读剩余部分

相关阅读 >>

mysql建表与索引使用规范详解

mysql如何正确地利用aes_encrypt()与aes_decrypt()加解密

下载的mysql怎么无法安装

在linux系统安装mysql步骤截图详解

mysql数据库忘记登录密码了怎么办?如何修改?

如何修改mysql的默认时区

详解mysql数据库优化的八种方式(经典必看)

mysql数字类型如何转换函数

mysql视图简介与操作的介绍(附代码)

mysql如何统计一个数据库所有表的数据量

更多相关阅读请进入《mysql》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...