sqlmysql
1. 尚硅谷_MySQL_SQL概述.pdf
2. 尚硅谷_MySQL_MySQL安装与使用.pdf

数据库的好处

  1. 持久化数据到本地
  2. 可以实现结构化查询,方便管理

    数据库相关概念 ★

    DB:数据库,保存一系列有组织的数据的容器
    DBMS:数据库管理系统,又称为数据库软件(产品),用于管理DB中的数据
    SQL:结构化查询语言,用于和DBMS通信的语言
    SQL的优点
  • 不是某个特定数据库供应商专有的语言,几乎所有DBMS都支持SQL
  • 简单易学
  • 虽然简单,但实际上是一种强有力的语言,灵活使用其语言元素,可以进行非常复杂和高级的数据库操作

    数据库存储数据的特点

  1. 将数据放到表中,表再放到库中
  2. 一个数据库中可以有多个表,每个表都有一个的名字,用来标识自己。表名具有唯一性
  3. 表具有一些特性,这些特性定义了数据在表中如何存储,类似java中 “类”的设计
  4. 所有表都是由一个或多个列(也称为字段)组成的,每一列类似java 中的“属性”
  5. 表中的数据是按行存储的,每一行类似于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的常见命令

  1. 查看当前所有的数据库

**show databases;**

  1. mysql> show databases;
  2. +--------------------+
  3. | Database |
  4. +--------------------+
  5. | information_schema | -- 信息数据库,保存mysql服务器所维护的所有其他数据库的信息
  6. | mysql | -- 存储数据库的用户、权限设置、关键字等mysql自己需要使用的控制和管理信息
  7. | performance_schema | -- 收集数据库服务器性能参数
  8. | sys | -- Sys库是一个简单版的performance_schema
  9. +--------------------+
  10. 4 rows in set (0.00 sec)
  1. 打开指定的库

**use 库名;**

  1. 显示所在数据库

**select database();**

  1. 查看当前库的所有表

**show tables;**

  1. 查看其它库的所有表

**show tables from 库名;**

  1. mysql> use test;
  2. Database changed
  3. mysql> show tables;
  4. Empty set (0.00 sec)
  5. mysql> show tables from mysql;
  6. +---------------------------+
  7. | Tables_in_mysql |
  8. +---------------------------+
  9. | columns_priv |
  10. | db |
  11. | event |
  12. | func |
  13. | general_log |
  14. | help_category |
  15. | help_keyword |
  16. | help_relation |
  17. | help_topic |
  18. | host |
  19. | ndb_binlog_index |
  20. | plugin |
  21. | proc |
  22. | procs_priv |
  23. | proxies_priv |
  24. | servers |
  25. | slow_log |
  26. | tables_priv |
  27. | time_zone |
  28. | time_zone_leap_second |
  29. | time_zone_name |
  30. | time_zone_transition |
  31. | time_zone_transition_type |
  32. | user |
  33. +---------------------------+
  34. 24 rows in set (0.00 sec)
  35. mysql> select database();
  36. +------------+
  37. | database() |
  38. +------------+
  39. | test |
  40. +------------+
  41. 1 row in set (0.00 sec)
  1. 创建表

**create table 表名(**
**列名 列类型,**
**列名 列类型,**
**...**
**);**

  1. mysql> create table stuinfo(
  2. -> id int,
  3. -> name varchar(20));
  4. Query OK, 0 rows affected (0.01 sec)
  5. mysql> show tables;
  6. +----------------+
  7. | Tables_in_test |
  8. +----------------+
  9. | stuinfo |
  10. +----------------+
  11. 1 row in set (0.00 sec)
  1. 查看表结构

**desc 表名;**

  1. mysql> desc stuinfo;
  2. +-------+-------------+------+-----+---------+-------+
  3. | Field | Type | Null | Key | Default | Extra |
  4. +-------+-------------+------+-----+---------+-------+
  5. | id | int(11) | YES | | NULL | |
  6. | name | varchar(20) | YES | | NULL | |
  7. +-------+-------------+------+-----+---------+-------+
  8. 2 rows in set (0.00 sec)
  9. mysql> select * from stuinfo;
  10. Empty set (0.00 sec)
  11. mysql> insert into stuinfo (id,name) values(1,'john');
  12. Query OK, 1 row affected (0.00 sec)
  13. mysql> insert into stuinfo (id,name) values(2,'rose');
  14. Query OK, 1 row affected (0.00 sec)
  15. mysql> select * from stuinfo;
  16. +------+------+
  17. | id | name |
  18. +------+------+
  19. | 1 | john |
  20. | 2 | rose |
  21. +------+------+
  22. 2 rows in set (0.00 sec)
  23. mysql> update stuinfo set name='lilei' where id=1;
  24. Query OK, 1 row affected (0.00 sec)
  25. Rows matched: 1 Changed: 1 Warnings: 0
  26. mysql> select * from stuinfo;
  27. +------+-------+
  28. | id | name |
  29. +------+-------+
  30. | 1 | lilei |
  31. | 2 | rose |
  32. +------+-------+
  33. 2 rows in set (0.00 sec)
  34. mysql> delete from stuinfo where id=1;
  35. Query OK, 1 row affected (0.00 sec)
  36. mysql> select * from stuinfo;
  37. +------+------+
  38. | id | name |
  39. +------+------+
  40. | 2 | rose |
  41. +------+------+
  42. 1 row in set (0.00 sec)
  1. 查看服务器的版本

方式一:登录到mysql服务端
**select version();**

  1. mysql> select version();
  2. +-----------+
  3. | version() |
  4. +-----------+
  5. | 5.7.30 |
  6. +-----------+
  7. 1 row in set (0.00 sec)

方式二:没有登录到mysql服务端
mysql —version

mysql -V

MySQL的语法规范

  1. 不区分大小写,但建议关键字大写,表名、列名小写
  2. 每条命令最好用分号结尾
  3. 每条命令根据需要,可以进行缩进或换行
  4. 注释

单行注释:#注释文字
单行注释:— 注释文字
多行注释:/ 注释文字 /

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