sqlmysql
1. 尚硅谷_MySQL_SQL概述.pdf
2. 尚硅谷_MySQL_MySQL安装与使用.pdf
数据库的好处
- 持久化数据到本地
- 可以实现结构化查询,方便管理
数据库相关概念 ★
DB:数据库,保存一系列有组织的数据的容器
DBMS:数据库管理系统,又称为数据库软件(产品),用于管理DB中的数据
SQL:结构化查询语言,用于和DBMS通信的语言
SQL的优点
- 将数据放到表中,表再放到库中
- 一个数据库中可以有多个表,每个表都有一个的名字,用来标识自己。表名具有唯一性
- 表具有一些特性,这些特性定义了数据在表中如何存储,类似java中 “类”的设计
- 所有表都是由一个或多个列(也称为字段)组成的,每一列类似java 中的“属性”
- 表中的数据是按行存储的,每一行类似于java中的“对象”
常见的数据库管理系统
mysql、oracle、db2、sqlserver
初识MySQL
MySQL产品的介绍和安装
MySQL服务的启动和停止
windows
方式一:计算机——右键管理——服务
方式二:通过管理员身份运行
net start 服务名 (启动服务)
net stop 服务名 (停止服务)
Mac
系统偏好设置——MySQL
MySQL服务的登录和退出
方式一:通过mysql自带的客户端
只限于root用户
方式二:通过windows自带的cmd
登录:
mysql 【-h 主机名 -P 端口号】-u 用户名 -p密码
退出:
exit 或 ctrl+C
MySQL的常见命令
- 查看当前所有的数据库
**show databases;**
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema | -- 信息数据库,保存mysql服务器所维护的所有其他数据库的信息
| mysql | -- 存储数据库的用户、权限设置、关键字等mysql自己需要使用的控制和管理信息
| performance_schema | -- 收集数据库服务器性能参数
| sys | -- Sys库是一个简单版的performance_schema
+--------------------+
4 rows in set (0.00 sec)
- 打开指定的库
**use 库名;**
- 显示所在数据库
**select database();**
- 查看当前库的所有表
**show tables;**
- 查看其它库的所有表
**show tables from 库名;**
mysql> use test;
Database changed
mysql> show tables;
Empty set (0.00 sec)
mysql> show tables from mysql;
+---------------------------+
| Tables_in_mysql |
+---------------------------+
| columns_priv |
| db |
| event |
| func |
| general_log |
| help_category |
| help_keyword |
| help_relation |
| help_topic |
| host |
| ndb_binlog_index |
| plugin |
| proc |
| procs_priv |
| proxies_priv |
| servers |
| slow_log |
| tables_priv |
| time_zone |
| time_zone_leap_second |
| time_zone_name |
| time_zone_transition |
| time_zone_transition_type |
| user |
+---------------------------+
24 rows in set (0.00 sec)
mysql> select database();
+------------+
| database() |
+------------+
| test |
+------------+
1 row in set (0.00 sec)
- 创建表
**create table 表名(**
**列名 列类型,**
**列名 列类型,**
**...**
**);**
mysql> create table stuinfo(
-> id int,
-> name varchar(20));
Query OK, 0 rows affected (0.01 sec)
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| stuinfo |
+----------------+
1 row in set (0.00 sec)
- 查看表结构
**desc 表名;**
mysql> desc stuinfo;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| name | varchar(20) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)
mysql> select * from stuinfo;
Empty set (0.00 sec)
mysql> insert into stuinfo (id,name) values(1,'john');
Query OK, 1 row affected (0.00 sec)
mysql> insert into stuinfo (id,name) values(2,'rose');
Query OK, 1 row affected (0.00 sec)
mysql> select * from stuinfo;
+------+------+
| id | name |
+------+------+
| 1 | john |
| 2 | rose |
+------+------+
2 rows in set (0.00 sec)
mysql> 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 |
+------+-------+
2 rows in set (0.00 sec)
mysql> delete from stuinfo where id=1;
Query OK, 1 row affected (0.00 sec)
mysql> select * from stuinfo;
+------+------+
| id | name |
+------+------+
| 2 | rose |
+------+------+
1 row in set (0.00 sec)
- 查看服务器的版本
方式一:登录到mysql服务端**select version();**
mysql> select version();
+-----------+
| version() |
+-----------+
| 5.7.30 |
+-----------+
1 row in set (0.00 sec)
方式二:没有登录到mysql服务端
mysql —version
或
mysql -V
MySQL的语法规范
- 不区分大小写,但建议关键字大写,表名、列名小写
- 每条命令最好用分号结尾
- 每条命令根据需要,可以进行缩进或换行
- 注释
单行注释:#注释文字
单行注释:— 注释文字
多行注释:/ 注释文字 /
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