mysql概述
MySQL是一种广泛使用的开源关系型数据库管理系统(RDBMS),它是最流行的开源数据库之一。MySQL由瑞典的MySQL AB公司开发,后来被sun收购,最终被Oracle收购。MySQL以其开源免费、简单易用、高性能和可靠性而闻名。
关系型数据库
关系型数据库: 由多张相互连接的二维表组成的数据库,就像Excel一样,由行和列组成的二维表。
特点:
- 使用表存储数据,格式统一,便于维护
- 使用SQL语句操作,标准统一,使用方便
- 数据存储在磁盘中,安全
数据库操作
1 连接数据库
- 打开navicate
- 点击连接
- 选择Mysql
- 填写数据库连接信息
- 确认连接(连接前也可以测试连接)
2 创建数据库
- 选择数据库
- 右键选择新建数据库
- 填写数据库名,字符集,排序规则
mysql里的数据类型
- 数字
类型 | 大小 | 描述 |
---|---|---|
TINYINT | 1 byte | 小整数值 |
INT或INTEGER | 4 bytes | 整数值 |
FLOAT | 4 bytes | 单精度浮点数值 |
DECIMAL |
- 字符串
类型 | 大小 | 描述 |
---|---|---|
CHAR | 0-255 bytes | 定长字符串 |
VARCHAR | 0-65535 bytes | 变长字符串 |
TEXT | 0-65 535 bytes | 长文本数据 |
- 日期类型
类型 | 格式 | 描述 |
---|---|---|
DATE | YYYY-MM-DD | 日期值 |
TIME | HH:MM:SS | 时间值或持续时间 |
YEAR | YYYY | 年份值 |
DATETIME | YYYY-MM-DD HH:MM:SS | 混合日期和时间值 |
TIMESTAMP | YYYY-MM-DD HH:MM:SS | 混合日期和时间值,时间戳 |
CHAR和VARCHAR的区别:
- char不论你实际存储了多少的字符,都会占用设置的n个字符空间 , 比如手机号码,性别,身份证号等
- varchar**它存储的长度并不固定, 实际使用多少就占用多少
DATETIME和TIMESTAMP区别:
- TIMESTAMP: 1970-01-01 00:00:01.000000’到 2038-01-19 03:14:07.999999。
- DATETIME: 1000-01-01 00:00:00.000000到 9999-12-31 23:59:59.999999。
- 对于跨时区的业务,TIMESTAMP更为合适。
2 创建表
- 打开数据库,右键表–新建表
- 填写字段名,类型,长度等信息
sql通用语句
- SQL语句可以单行或多行书写,以分号结尾。
- SQL语句可以使用空格/缩进来增强语句的可读性
- 注释
- 单行注释:-- 注释内容 或 # 注释内容
- 多行注释: /* 注释内容 */
表操作
添加数据(INSERT)
# 给指定字段添加数据
insert into 表名 (字段1,字段2...) values (值1,值2...);
# 给全部字段添加数据
insert into 表名 values (值1,值2...);
# 批量添加数据
insert into 表名 (字段1,字段2...) values (值1,值2...),(值1,值2...),(值1,值2...);
insert into 表名 values (值1,值2...),(值1,值2...),(值1,值2...);
例:
INSERT INTO student(name,age,sex,brith,money,ismarry) VALUES('张三',19,'男','2023-1-5 6:00:00',0.05,1),
('李四',12,'男','2023-1-5 6:00:00',0.05,1),
('王五',13,'男','2023-1-5 6:00:00',0.05,1),
('赵六',14,'男','2023-1-5 6:00:00',0.05,1),
('七七',15,'男','2023-1-5 6:00:00',0.05,1),
('八八',16,'男','2023-1-5 6:00:00',0.05,1);
-- -- 向student表中为name,age,brith,money,ismarry五个字段插入6条新内容
INSERT INTO student(name,age,sex,brith,money,ismarry) VALUES('张三',110,'男','2023-1-5 6:00:00',0.05,1);
-- 向student表中为name,age,brith,money,ismarry五个字段插入新内容
INSERT INTO student(name,age,sex,brith,money,ismarry) VALUES('路人甲',29,'男','2023-1-5 16:00:00',0.05,1),
('路人乙',28,'男','2023-1-5 7:00:00',0.05,1),
('路人丙',72,'男','2023-1-5 8:00:00',0.05,1),
('路人丁',98,'男','2023-1-5 9:00:00',0.05,1),
('郭好靓',45,'男','2023-1-5 10:00:00',0.05,1),
('南迎着',15,'男','2023-1-5 15:00:00',0.05,1);
-- -- 向student表中为name,age,brith,money,ismarry五个字段插入6条新内容
修改数据(UPDATE)
update 表名 set 字段1=值1, 字段2=值2,...[where 条件]
修改语句的条件可以有,也可以没有,如果没有条件,则会修改整张表的所有数据。
UPDATE student SET name='李四',age=120 WHERE name='张三';
-- 将name为张三的那一行中的name改成李四age改为120
UPDATE student SET money=100 WHERE id>5;
-- 将表中id大于五的money改为100
UPDATE student SET sex='女' WHERE age<30;
-- 将age小于50的数据中的sex改为女
删除数据(DELETE)
delete from 表名 [where 条件]
DELETE 语句的条件可以有,也可以没有,如果没有条件,则会删除整张表的所有数据。
DELETE FROM student WHERE name='张三';
-- 删除学生表中name为张三的一行
DELETE FROM student WHERE id<5;
--删除表中id小于5的内容
DELETE FROM student ;
-- 删除表所有内容
条件(where)
sql语句里,where后面跟条件
# 运算符
=、!=、<>、<、<=、>、>=、
# 关键字
BETWEEN…AND、IN(set)、IS NULL、AND、OR、NOT