今天开始就开始正式学习my_sql了
今天学习的内容有基本结构,MySQL账户操作,MySQL库操作,MySQL表操作,MySQL表数据操作
首先我们列举常见的关系型数据库和非关系型数据库有哪些
关系型数据库:
Mysql数据库 (美国,甲骨文公司)
Oracle数据库 (美国,甲骨文公司)
Sql Server数据库 (美国,微软公司)
DB2数据库 (美国,IBM公司)
Access数据库 (美国,微软公司)
PostgreSQL数据库(美国,加州大学伯克利分校)
SqLite数据库( 一个团队 )
OceanBase数据库(中国,阿里巴巴)
GaussDB数据库(中国,华为)
TDSQL数据库(中国,腾讯)
DM数据库 (中国,武汉达梦数据库公司
非关系型数据库:
Redis数据库 [划分:键值存储数据库]【用作缓存 / 持久存储】
Memcached数据库 [划分:键值存储数据库]【用作缓存 】
MongoDB数据库 [划分:文档存储数据库]
CouchDB数据库 [划分:文档存储数据库]
Couchbase数据库 [划分:文档存储数据库]【CouchDB 与 Membase 合并后的】
HBase数据库 [划分:列存储数据库]
Neo4j数据库 [划分:图形存储数据库]
db4o数据库 [划分:对象存储数据库]
BaseX数据库 [划分:xml存储数据库]
关系型数据库好比是将汽车拆成各个零件进行存储,而非关系型数据库就好像将整个汽车进行存储
一.基本结构
端口号3306
如图所示,mysql为数据库操作系统,里面包含很多库,而库中包含很多表

二.操作
那么从我们的环境当中如何进入mysql呢,
建立连接后 在终端使用 sudo mysql 输入密码后进入mysql
1.MySQL账户操作
#创造账户
1.创建账户
create user "jianqi"@"%" identified by "密码"
2.给权限
grant all on *.* to "jianqi"@"%"; #第一个*为所有库,第二个*为所有点
3.刷新
flush privileges;
查看账户
selec user();
删除
drop user "jianqi"@"%";
2.MySQL库操作
#查看当前所在的库
select database();
#查看当前所有的库
show databases;
#创建数据库
create database test01;
#进入数据库
use test01;
#删库
drop database test01
3.MySQL表操作
#查看当前所有的表
show tables;
#创建表
create table test01 (id int ,name varchar(20));
#create table test01 if not exsits (id int ,name varchar(20))
#查看表结构
show create table test01;
| test01 | CREATE TABLE `test01` (
`id` int DEFAULT NULL,
`name` varchar(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci |
desc test01;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int | YES | | NULL | |
| name | varchar(20) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
#删除表
drop table test01;
#修改表名
alter table old_tb rename to new_tb;
#改字段
alter table new_tb modify column name varchar(10);
#添加字段
alter table new_tb add sex int;
#删除字段
ALTER TABLE <表名> DROP <字段名>;
4.MySQL表数据操作
#插入表数据
insert into test01(id,name) values(1,"jianqi"),(2,"fufu");
insert into test01 values(3,"beibei"); #value加s可以插入多条数据 没加(id,name)后面所有字段都要插入
#查询
select * from test01;
select id,name from test01 where id <3;
+------+--------+
| id | name |
+------+--------+
| 1 | jianqi |
| 2 | fufu |
| 3 | beibei |
+------+--------+
#条件查询
select * from test01 where id <3;
+------+--------+
| id | name |
+------+--------+
| 1 | jianqi |
| 2 | fufu |
+------+--------+
#更新数据
update test01 set name="jianqididi" where id=3;
#删除数据
delete from test01 where id = 3;
delete from test01 #会删除表中所有数据
#时间格式
create table qiye(id int,time timestamp default current_timestamp;
insert into qiye(id,time) value(1,default);
+------+---------------------+
| id | time |
+------+---------------------+
| 1 | 2024-11-06 15:56:38 |
+------+---------------------+
#补充
char(5) varchar(5) "hei"
hei00 hei #0代表空格 char速度快,varchar节约内存
1603





