mysql基本操作

本文详细介绍Mysql数据库的各种操作,包括数据的查询、插入、更新、删除,以及表的创建、修改和删除。深入讲解了条件查询、排序、聚合查询、子查询等高级查询技巧,并介绍了主键、唯一、自动增长、非空和默认值等约束。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Mysql

查找数据

基本查询

SELECT 列名 FROM 表名
	列的别名
	SELECT 列名 AS '' FROM 表名
	查询结果去重
	SELECT DISTINCT 列名 FROM 表名

排序查询

SELECT 列名 FROM 表名 ORDER BY 排序列 排序规则
	ASC升序排序 DESC 降序排序

条件查询

SELECT 列名 FROM 表名 WHERE 条件
分支结构查询
	CASE
		WHEN 条件1 THEN 结果1
		WHEN 条件2 THEN 结果2
		WHEN 条件3 THEN 结果3
		ELSE 结果4
	END

时间查询

SELECT 	时间函数(参数列表)
    SYSDATE() 当前系统时间
    CURDATE() 获取当前日期
    CURTIME() 获取当前时间
    WEEK(DATE) 获取指定日期为一年中的第几周
    YEAR(DATE)获取指定日期的年份
    

聚合查询

SELECT 聚合函数 FROM 表名

*分组查询

SELECT 列名 FROM 表名 WHERE 条件 GROUP BY 分组依据
	分组过滤查询
	SELECT 列名 FROM 表名 WHERE 条件 GROUP BY 分组依据 HAVING 过滤规则

限定查询

SELECT 列名 FROM 表名 LIMIT 起始行,查询行数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sSR9aEy0-1594169405348)(G:\笔记\课堂笔记\图片\QQ图片20200707234505.png)]

子查询

SELECT 列名 FROM 表名 WHERE 条件(子查询结果)

合并查询

SELECT * FROm 表名1 UNION SELECT * FROM 表名2
	UNION连接的结果集会去除重复的记录
SELECT * FROM 表名1 UNION ALL SELECT * FROM 表名2
	UNION ALL连接的结果集会保留重复记录

连接查询

SELECT 列名 FROM 表1 连接方式 表2 ON 连接条件
  内连接查询 INNER JOIN
  左外连接 LEFT JOIN
  右外连接 RIGHT JOIN
  #查询朱朝阳的课程都是哪些老师教的
	SELECT subject.subject_name,teacher.teacher_name
	FROM ((teacher INNER JOIN SUBJECT ON teacher.teacher_id=subject.teacher_id)
			INNER JOIN sc ON sc.subject_id =subject.subject_id)
			INNER JOIN student  ON student.student_id=sc.student_id
	WHERE student.student_name='朱朝阳'

添加数据

INSERT INTO 目标表(要添加的表单) VALUES(表单数据);

修改数据

UPDATE 表名 SET 例1=新值1,例2=新值2,例3=新值3 WHERE 条件(必须加where条件)

删除数据

DELETE FROM 表名 where 条件(必须加where,否则会删除表中所有数据)

清空表 TRUNCATE TABLE 表名,和DELETE FROM 表名 一致,
区别:TRUNCATE TABLE 表名  删除整个表再创建
     DELETE FROM 表名  删除所有数据

数值类型

数字类型

int
double
double(m,d)一共m位数字,其中d位小数

日期类型

date 日期值 yyyy-mm-dd
time 时间值 hh:mm:ss
year 年份值 yyyy
datetime 混合日期和时间值yyyy -mm-dd hh:mm:ss
timestamp yyyymmddhhmmss

字符串类型

char 固定字符 char(10)10个字符 不足补空格
varchar 变长字符串 varchar(10) 10个字符 
blob 二进制的长文本数据 
text 长文本数组

创建一个表

CREATE TABLE 表名(
列名 数据类型,
列名 数据类型,
列名 数据类型,
...
)[charset=utf8]

CREATE TABLE SUBJECT(
	id INT,
	birthday DATE,
	PHONE CHAR(11)
)CHARSET=utf8;

sql中的命名规范

不区分大小写,下划线分割单词,大小写分割单词是错误的

数据表的修改

添加列

ALTER TABLE 表单 ADD (所增加的列) 数据类型

修改列中的数据类型

ALTER TABLE 表名 modify 列名 数据类型

删除列

ALTER TABLE 表名 DROP 列;

修改列名

ALTER TABLE 表名 CHANGE 列名 修改后的列名 数据类型

删除表

DROP TABLE 表名

修改表名

ALTER TABLE 前表名 RENAME 后表名

约束

实体完整性约束

主键约束(一个表中只能有1个主键,但可以有多个唯一约束)
PRIMARY KEY
作用:唯一,标识表中的一行数据,此列的值不能重复,且不能null
CREATE TABLE SUBJECT(
	id INT PRIMARY KEY,
	birthday DATE,
	PHONE CHAR(11)
)CHARSET=utf8;
唯一约束
UNIQUE
作用:标识表中的一行数据,不可重复,可以为null
CREATE TABLE SUBJECT(
	id INT PRIMARY KEY,
	birthday DATE,
	PHONE CHAR(11),
    email char(20) UNIQUE
)CHARSET=utf8;
自动增长列
AUTO_INCREMENT
作用:自动增长,给主键数值列添加自动增长
从1开始每次加一,不能单独使用,和主键配合
CREATE TABLE SUBJECT(
	id INT PRIMARY KEY AUTO_INCREMENT,
	birthday DATE,
	PHONE CHAR(11)
)CHARSET=utf8;

域完整性约束(限制列的单元格的数据正确性)

非空约束
NOT NULL
非空,此列必须有值
CREATE TABLE SUBJECT(
	id INT PRIMARY KEY AUTO_INCREMENT,
	birthday DATE NOT NULL,
	PHONE CHAR(11)
)CHARSET=utf8;

默认值约束
DEFAULT 值
新增数据不指定值得时候,书写DEFAULT,以指定的默认值进行填充

引用完整性约束

CONSTRAINT 外键名 FOREIGN KEY (外键字段) REFERENCES 主表(主键)

CREATE TABLE GRADE(
	GRADE_id INT PRIMARY KEY AUTO_INCREMENT,
	GRADE_NAME VARCHAR(20) UNIQUE NOT NULL
)CHARSET=utf8

CREATE TABLE STUDENT(
	student_id VARCHAR(50) PRIMARY KEY ,
	Student_name VARCHAR(50) NOT NULL,
	sex CHAR(2) DEFAULT'男',
	borndate DATE NOT NULL,
	phone VARCHAR(11),
	GRade_id INT NOT NULL,
	CONSTRAINT t_grade FOREIGN KEY (grade_id) REFERENCES GRADE(grade_id) 
)CHARSET=utf8
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值