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 changedmysql> 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: 0mysql> 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
