MySQL基础(一)

数据库简介

1、数据库
数据库(database)就是存储数据的仓库,为了方便数据的存储和管理,将数据按照特定的规律存储在磁盘上,通过数据库管理系统,有效地组织和管理存储改据库中的数据。
2、数据库系统
数据库系统和数据库不是一个概念,数据库系统(DBS)比数据库大很多,由数据库、数据库管理系统、应用开发工具构成。
3、数据库管理系统
数据库管理系统(DataBase Management System,简称DBMS),用来定义数据、管理和维护数据的软件,它是数据库系统的一种重要的组成部分。

MySQL数据库简介

MySQL 是最流行的关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

MySQL数据库的优点
1、MySQL是开放源代码的数据库;
2、MysQL的跨平台性;
3、开源免费;
4、功能强大使用方便;
······

SQL简介

Structured Query Language简称SQL,结构化查询语言,数据库管理系统通过SQL语言来管理数据库中的数据。
SQL语言的组成
1、DDL(Data Defination Language):数据定义语言,主要用于定义数据库、表、视图、索引和触发器等。像DROP, CREATE, ALTER等语句;
2、DML(Data Manipulation Language):主要包括对数据的增m改。 INSERT插入数据、UPDATE更新数据、DELETE删除数据;
3、DQL(Data Query Language):数据检索语句,用来从表中获得数据,确定数据怎样在应用程序中给出,像SELECT查询数据;
4、DCL(Data Control Language):数据控制语言,主要用于控制用户的访问权限像GRANT、REVOKE、COMMIT、ROLLBACK等语句。

MySQL基本操作

登录与退出

首先要开启MySQL服务。
在这里插入图片描述
登录
常用参数:
-u 用户名
-p 密码
-h 服务器名称
-P 端口号
-D 打开指定数据库
–prompt=name 设置命令提示符
–delimiter=name 指定外隔符
-V,–version 输出版本信息并且退出

C:\Users\HP>mysql -uroot -p
Enter password: ****
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.5.27 MySQL Community Server (GPL)

Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

退出
常用参数:
exit
quit
\q

mysql> exit
Bye

修改命令提示符

1、连接客户端时通过参数指定prompt提示符:mysql -uroot -proot --prompt 提示符。
例:将命令提示符改为sql

C:\Users\HP>mysql -uroot -proot --prompt sql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.5.27 MySQL Community Server (GPL)

Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

sql

2、 连接上客户端后,通过prompt命令修改。
例:将命令提示符改为mysql>

sqlprompt mysql>
PROMPT set to 'mysql>'
mysql>

命令提示符常用参数
\D:完整的日期
\d:当前数据库
\h:服务器名称
\u:当前用户名

mysql>prompt \h`\u`\D`\d
PROMPT set to '\h`\u`\D`\d'
localhost`root`Tue Mar 03 18:52:02 2020`(none)

常用命令

SELECT VERSION(); 显示当前版本
SELECT NOW(); 显示当前日期时间
SELECT USER(); 显示当前用户

mysql>SELECT VERSION();
+-----------+
| VERSION() |
+-----------+
| 5.5.27    |
+-----------+
1 row in set (0.00 sec)

mysql>SELECT NOW();
+---------------------+
| NOW()               |
+---------------------+
| 2020-03-03 19:04:47 |
+---------------------+
1 row in set (0.00 sec)

mysql>SELECT USER();
+----------------+
| USER()         |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec)

MysQL语句的规范

1、关键字与函数名称全部大写;
2、数据库名称、表名称、字段名称等全部小写;
3、SQL语句必须以分隔符结尾;
4、SQL语句支持折行操作,只要不把单词、标记或引号字符串分割为两部分,可以在下一行继续写;
5、数据库名称、表名称、字段名称等尽量不要使用MysQL的保留字,如果需要使用的时候需要使用反引号(’’)将名称括起来。

数据库相关操作

1、创建数据库
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [[DEFAULT] CHARACTEA SET [=] charset_name]

mysql> CREATE DATABASE maizi1;
Query OK, 1 row affected (0.29 sec)

在这里插入图片描述
2、查看当前服务器下的数据库列表
SHOW {DATABASES | SCHEMAS}

mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| maizi1             |
| mysql              |
| performance_schema |
| test               |
+--------------------+
5 rows in set (0.08 sec)

3、查看指定数据库的定义
SHOW CREATE {DATABASE | SCHEMA} db_name

mysql> SHOW CREATE DATABASE maizi1;
+----------+-----------------------------------------------------------------+
| Database | Create Database                                                 |
+----------+-----------------------------------------------------------------+
| maizi1   | CREATE DATABASE `maizi1` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+-----------------------------------------------------------------+
1 row in set (0.28 sec)

4、修改指定数据库的编码方式
ALTER {DATABASE | SCHEMA} db_name [DEFAULT] CHARACTER SET [=] charset_name

mysql> ALTER DATABASE maizi1 DEFAULT CHARACTER SET=GBK;
Query OK, 1 row affected (0.00 sec)

mysql> SHOW CREATE DATABASE maizi1;
+----------+----------------------------------------------------------------+
| Database | Create Database                                                |
+----------+----------------------------------------------------------------+
| maizi1   | CREATE DATABASE `maizi1` /*!40100 DEFAULT CHARACTER SET gbk */ |
+----------+----------------------------------------------------------------+
1 row in set (0.00 sec)

5、打开指定数据库
USE db_name

mysql> USE maizi1;
Database changed

6、删除指定数据库
DROP {DATABASE | SCHEMA} [IF EXISTS] db_name

mysql> DROP DATABASE IF EXISTS maizi1;
Query OK, 0 rows affected (0.33 sec)

在这里插入图片描述

数据表相关操作

数据表是数据库最重要的组成部分之一,是其它对象的基础。数据表是存储数据的数据结构,包含了特定实体类型的数据。数据表是由行(row)和列(column)构成的二维网络,一定要先有表结构,再有数据。数据表至少有一列,可以没有行或者多行。数据表名称要求唯一,而且不要包含特殊字符。

MysQL数值类型

1、整形
在这里插入图片描述
2、浮点型
在这里插入图片描述
3、日期和时间类型
在这里插入图片描述
4、字符串类型
在这里插入图片描述

MySQL存储引擎

存储引擎就是指表的类型,数据库的存储类型决定了表在计算机中的存储方式。用户可以根据不同的存储方式、是否进行事务处理等来选择合适的存储引擎。

1、如何查看MysQL的存储引擎
(1)查看MySQL支持的存储引擎: SHOW ENGINES
(2)查看显示支持的存储引擎信息: SHOW VARIABLES LIKE ‘have%’
(3)查看默认的存储引擎: SHOW VARIABLES LIKE ‘storage_engine’

2、MySQL常用存储引擎及特点
InnoDB存储引擎、MyISAM存储引擎、MEMORY存储引擎
InnoDB
特点:
· 提供的功能有事务、回滚、奔溃修复和多版本并发控制的事务安全;
· 是Mysql是第一个提供外键约束的表引擎;
· 支持自动增长列AUTO_INCREMENT。

优缺点:
· 优势在于提供了良好的事务管理、奔溃修复能力和并发控制。
· 缺点是读写效率稍差,占用的数据空间相对比较大。

适用场合:
· 更新密集的表:InnoDB存储引擎特别适合处理多重并发的更新请求;
· 事务:InnoDB存储引擎是唯一支持事务的标准MySQL存储引擎,这是管理敏感数据(如金融信息和用户注册信息)的必须软件;
· 自动灾难恢复:与其他存储引擎不一样,InnoDB表能够自动从灾难中恢复。虽然MyISAM表也能在灾难后修复,但其过程要长的多。

MyISAM
优缺点:
· MyISAM存储引擎的优势在于占用空间小,处理速度快,缺点是不支持事务和并发性。

MEMORY
优缺点:
· MEMORY表的大小是受到限制的。表的大小主要取决于两个参数,分别是max_rows和max_heap_table_size。其中,max_rows可以在创建表时指定:max_heap_table_size的大小默认为16MB,可以按需要进行扩大。因其存在内存中的特性,这类表的处理速度非常快。但是其数据容易丢失,生命周期短;(mysqld守护进程奔溃时,所有的MEMORY数据都会丢失)
· MEMORY表不支持VARCHAR、BLOB、TEXT数据类型,因为这种表类型按固定长度的记录格式存储。

适用场景:
· 暂时:目标数据只是临时需要,在其生命周期中必须立即可用;
· 相对无关:存储在MEMORY表中的数据如果突然丢失,不会对应用服务产生实质的负面影响,而且不会对数据完整性有长期影响。

创建数据表

mysql> CREATE DATABASE test1;
Query OK, 1 row affected (0.00 sec)

mysql> USE test1;
Database changed

mysql> #创建学员表(user)
mysql> #编号id
mysql> #用户名username
mysql> #年龄age
mysql> #性别sex
mysql> #邮箱email
mysql> #地址addr
mysql> #生日birth
mysql> #薪水salary
mysql> #电话tel
mysql> #是否结婚married
mysql> CREATE TABLE IF NOT EXISTS `USER`(
    -> id SMALLINT,
    -> username VARCHAR(20),
    -> age TINYINT,
    -> sex ENUM('男','女','保密'),
    -> email VARCHAR(50),
    -> addr VARCHAR(200),
    -> birth YEAR,
    -> salary FLOAT(8,2),
    -> tel INT,
    -> married TINYINT(1) COMMENT '0代表未结婚,非0代表已婚'
    -> )ENGINE=INNODB CHARSET=UTF8;
Query OK, 0 rows affected (0.29 sec)

mysql> SHOW TABLES;
+-----------------+
| Tables_in_test1 |
+-----------------+
| user            |
+-----------------+
1 row in set (0.00 sec)

在这里插入图片描述
查看表结构
1、DESC tbl_name
2、DESCRIBE tbl name
3、SHOW COLUMNS FROM tbl name

mysql> DESC user;
+----------+--------------+------+-----+---------+-------+
| Field    | Type         | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| id       | smallint(6)  | YES  |     | NULL    |       |
| username | varchar(20)  | YES  |     | NULL    |       |
| age      | tinyint(4)   | YES  |     | NULL    |       |
| sex      | enum('       | YES  |     | NULL    |       |
| email    | varchar(50)  | YES  |     | NULL    |       |
| addr     | varchar(200) | YES  |     | NULL    |       |
| birth    | year(4)      | YES  |     | NULL    |       |
| salary   | float(8,2)   | YES  |     | NULL    |       |
| tel      | int(11)      | YES  |     | NULL    |       |
| married  | tinyint(1)   | YES  |     | NULL    |       |
+----------+--------------+------+-----+---------+-------+
10 rows in set, 3 warnings (0.31 sec)

插入数据

mysql> INSERT user VALUES(1,'Tom',18,'男','1234567890@qq.com','Beijing',2002,5123.45,12345678,0);
Query OK, 1 row affected (0.30 sec)

查看表格

mysql> SELECT * FROM user;
+------+----------+------+------+-------------------+---------+-------+---------+----------+---------+
| id   | username | age  | sex  | email             | addr    | birth | salary  | tel      | married |
+------+----------+------+------+-------------------+---------+-------+---------+----------+---------+
|    1 | Tom      |   18 || 1234567890@qq.com | Beijing |  2002 | 5123.45 | 12345678 |       0 |
+------+----------+------+------+-------------------+---------+-------+---------+----------+---------+
1 row in set (0.00 sec)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值