本单元目标
文章目录
1. 基础介绍
1. 数据库的好处
1.持久化数据到本地
2.可以实现结构化查询,方便管理
2. 数据库相关概念:DBMS、DB、SQL
1、DB:数据库,保存一组有组织的数据的容器
2、DBMS:数据库管理系统,又称为数据库软件(产品),用于管理DB中的数据
3、SQL:结构化查询语言,用于和DBMS通信的语言
3. 数据库存储数据的特点
1、将数据放到表中,表再放到库中
2、一个数据库中可以有多个表,每个表都有一个的名字,用来标识自己。表名具有唯一性。
3、表具有一些特性,这些特性定义了数据在表中如何存储,类似java中 “类”的设计。
4、表由列组成,我们也称为字段。所有表都是由一个或多个列组成的,每一列类似java 中的”属性”
5、表中的数据是按行存储的,每一行类似于java中的“对象”。
4. 初始MySQL
4.1 MySQL产品的介绍和安装
配置环境变量:C:\Program Files\MySQL\MySQL Server 8.0\bin
复制到环境变量Path
中
4.2 MySQL服务的启动和停止
方式一:计算机——右击管理——服务
方式二:通过管理员身份运行cmd
- net start 服务名(启动服务)
- net stop 服务名(停止服务)
net start MySQL80;
net stop MySQL80;
4.3 MySQL服务的登录和退出
方式一:通过mysql自带的客户端
只限于root用户
方式二:通过windows自带的客户端
登录:
mysql 【-h主机名 -P端口号 】-u用户名 -p密码
退出:
exit或ctrl+C
4.4 MySQL的常见命令
查看当前所有的数据库
show databases;
+--------------------+
| Database |
+--------------------+
| bank |
| information_schema |
| mysql |
| performance_schema |
| sakila |
| sys |
| test_db |
| world |
+--------------------+
# 前三个不能动哦
8 rows in set (0.01 sec)
打开指定的库
use test_db
Database changed
查看当前库的所有表
show tables;
+-------------------+
| Tables_in_test_db |
+-------------------+
| branch_info |
| customer_info |
| sales_info |
| worker_info |
+-------------------+
4 rows in set (0.01 sec)
查看其它库的所有表
show tables from 库名;
show tables from mysql
# 但现在还是在test_db中,并未出去
+----------------------------------------------+
| Tables_in_mysql |
+----------------------------------------------+
| columns_priv |
| component |
| db |
| default_roles |
| engine_cost |
| func |
| general_log |
| global_grants |
| gtid_executed |
| help_category |
| help_keyword |
| help_relation |
| help_topic |
| innodb_index_stats |
| innodb_table_stats |
| password_history |
| plugin |
| procs_priv |
| proxies_priv |
| replication_asynchronous_connection_failover |
| role_edges |
| server_cost |
| servers |
| slave_master_info |
| slave_relay_log_info |
| slave_worker_info |
| slow_log |
| tables_priv |
| time_zone |
| time_zone_leap_second |
| time_zone_name |
| time_zone_transition |
| time_zone_transition_type |
| user |
+----------------------------------------------+
34 rows in set (0.01 sec)
查看自己现在哪个库
select database();
+------------+
| database() |
+------------+
| test_db |
+------------+
1 row in set (0.00 sec)
创建表
create table 表名(
列名 列类型,
列名 列类型,
。。。
);
mysql> create table stuinfo(
-> id int,
-> name varchar(20));
-------------------------------
Query OK, 0 rows affected (0.07 sec)
show tables;
--------------------------------------------------------
+-------------------+
| Tables_in_test_db |
+-------------------+
| branch_info |
| customer_info |
| sales_info |
| stuinfo |
| worker_info |
+-------------------+
5 rows in set (0.00 sec)
---------------------------------------------------------------------------
desc stuinfo;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int | YES | | NULL | |
| name | varchar(20) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.01 sec)
# 查看具体数据
select * from stuinfo;
Empty set (0.01 sec)
# 插入数据
insert into stuinfo (id,name) values(1,'john');
Query OK, 1 row affected (0.01 sec)
insert into stuinfo (id,name) values(2,'rose');
Query OK, 1 row affected (0.01 sec)
# 按上建切换之前的历史语句
select * from stuinfo;
+------+------+
| id | name |
+------+------+
| 1 | john |
| 2 | rose |
+------+------+
# 更改数据
update stuinfo set name='lilei' where id=1;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> select * from stuinfo;
+------+-------+
| id | name |
+------+-------+
| 1 | lilei |
| 2 | rose |
+------+-------+
# 删除某一列数据
delete from stuinfo where id=1;
Query OK, 1 row affected (0.01 sec)
select * from stuinfo;
+------+------+
| id | name |
+------+------+
| 2 | rose |
+------+------+
1 row in set (0.01 sec)
查看表结构
desc 表名;
查看服务器的版本
方式一:登录到mysql服务端
select version();
+-----------+
| version() |
+-----------+
| 8.0.22 |
+-----------+
方式二:没有登录到mysql服务端
mysql --version
或
mysql --V
4.5 MySQL的语法规范
1.不区分大小写,但建议**关键字大写,表名、列名小写**
2.每条命令最好用分号结尾
3.每条命令根据需要,可以进行缩进或换行
4.注释
单行注释:#注释文字
单行注释:-- 注释文字(注意要加空格)
多行注释:/* 注释文字 */
4.6 SQL的语言分类
- DQL(Data Query Language):数据查询语言
select
- DML(Data Manipulate Language) : 数据操作语言
insert 、update、delete
- DDL(Data Define Languge):数据定义语言
create、drop、alter
- TCL(Transaction Control Language):事务控制语言
commit、rollback
4.7 SQL的常见命令
show databases
; 查看所有的数据库
use 库名
; 打开指定 的库
show tables
; 显示库中的所有表
show tables from 库名
;显示指定库中的所有表
创建表
`create table 表名(
字段名 字段类型,
字段名 字段类型
);
desc 表名
; 查看指定表的结构
select * from 表名
;显示表中的所有数据