MySQL数据库简介及基本管理命令

一、MySQL数据库介绍

  • MySQL是一款深受欢迎的开源关系型数据库
  • 它是Oracle旗下的产品
  • 遵守GPL协议,可以免费使用与修改
  • 特点如下:
  1. 性能卓越、服务稳定
  2. 开源、无版权限制、成本低
  3. 多线程、多用户
  4. 基于C/S(客户端/服务器)架构
  5. 安全可靠
  • MySQL商业版是由MySQL AB公司负责开发与维护,需要支付费用才能使用

  • MySQL社区版是由分散咋世界各地的MySQL开发者、爱好者仪器开发与维护,可以免费使用

  • 两者区别:

  1. 商业版组织管理与测试环节更加严格,会比社区版更稳定
  2. 商业版不遵守GPL,社区版遵从GPL可以免费使用
  3. 商业版可获得7*24小时的服务,社区版则没有

二、MYSQL基本操作命令

  • 查看数据库信息:
mysql> show databases;     ## 查看数据库信息(注意:大部分MYSQL命令要以分号结尾)
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.01 sec)
  • 查看数据库中表的信息
mysql> use mysql;       ## 使用某个数据库
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed

mysql> show tables;        ## 查看数据库中所有表项信息
+---------------------------+
| Tables_in_mysql           |
+---------------------------+
| columns_priv              |
| db                        |
| engine_cost               |
| event                     |
| func                      |
| general_log               |
| gtid_executed             |
| help_category             |
| help_keyword              |
| help_relation             |
| help_topic                |
| user                      |
+---------------------------+
31 rows in set (0.00 sec)

  • 显示数据表的结构(字段)
mysql> describe user;
+------------------------+-----------------------------------+------+-----+-----------------------+-------+
| Field                  | Type                              | Null | Key | Default               | Extra |
+------------------------+-----------------------------------+------+-----+-----------------------+-------+
| Host                   | char(60)                          | NO   | PRI |                       |       |
| User                   | char(32)                          | NO   | PRI |                       |       |
| Select_priv            | enum('N','Y')                     | NO   |     | N                     |       |
| Insert_priv            | enum('N','Y')                     | NO   |     | N                     |       |
+------------------------+-----------------------------------+------+-----+-----------------------+-------+
45 rows in set (0.00 sec)

SQL语句概述

  • SQL语言
  1. Structured Query Language的缩写,即结构化查询语言
  2. 关系型数据库的标准语言
  3. 用于维护管理数据库(包括数据查询、数据更新、访问控制、对象管理等功能)
  • SQL分类
  1. DDL:数据定义语言
  2. DML:数据操纵语言
  3. DQL:数据查询语言
  4. DCL:数据控制语言

创建数据库和表

  • DDL语句可用于创建数据库对象,如库、表、索引等
  • 使用DDL语句新建库、表

创建数据库

语法格式:CREATE DATABASE 数据库名

例:创建一个名为bbs的数据库

mysql> create database bbs;
Query OK, 1 row affected (0.00 sec)

创建数据表

语法格式:CREATE TABLE 表名(字段定义......)

例:create table info (id int(3) not null primary key auto_increment,name varchar(10) not null,score decimal(5,2),address varchar(50) default '未知');
Query OK, 0 rows affected (0.01 sec)

含义:创建一个名为info的数据表(字段1是id,类型为整型000-999,不允许为空,定义为主键,并让它自增长;字段2是name,类型为字符串长度为10,不允许为空,长度为5,小数点后保留2位;字段3是address,类型为字符串,长度为50,约束default如果不填地址则自动用‘未知’替代它);

mysql> desc info;     ## 显示数据表的结构
+---------+--------------+------+-----+---------+----------------+
| Field   | Type         | Null | Key | Default | Extra          |
+---------+--------------+------+-----+---------+----------------+
| id      | int(3)       | NO   | PRI | NULL    | auto_increment |
| name    | varchar(10)  | NO   |     | NULL    |                |
| score   | decimal(5,2) | YES  |     | NULL    |                |
| address | varchar(50)  | YES  |     | 未知    |                |
+---------+--------------+------+-----+---------+----------------+
4 rows in set (0.02 sec)

数据库提权

mysql> grant all privileges on *.* to 'root'@'%' identified by '123456';
Query OK, 0 rows affected, 1 warning (0.00 sec)

含义:允许使用root用户从任意终端进行访问所有数据库中的所有表

删除数据库和表

  • 使用DDL语句删除库、表

  • 删除指定的数据表

DROP TABLE [数据库名.]表名

例:mysql> drop table bbs.info;    ## 删除数据库bbs中的info表
  • 删除指定的数据库
DROP DATABSES 数据库名

例:mysql> drop database bbs;

管理表中的数据

  • DML语句用户对表中的数据进行管理
  • 包括的操作:
  1. INSERT:插入新数据
  2. UPDATE:更新原有数据
  3. DELETE:删除不需要的数据
  • 向表中插入数据
方法一:insert into info (id,name,score,address) values (3,'zhangsan',99.5,'hangzhou');

方法二:mysql> insert into info values(5,'lisi','80.5','chongqing');
  • 将表中成绩大于等于90的条目筛选出并存放进新表中
mysql> create table new_table as select * from info where score >= 90;

修改、更新数据表中的数据记录

语法格式:UPDATE 表名 SET 字段名1=值1[,字段名2=值2] WHERE 条件表达式

例:update info set score=66 where name='zhangsan';
  • 在数据表中删除指定的数据记录
mysql> delete from bbs.test where name='zhangsan';   ## 删除数据库bbs中test表内name字段为zhangsan的数据
  • 不带where条件的语句表示删除表中所有记录
mysql> delete from test;   ## 删除test表中的所有数据
  • 删除表中符合一定条件的数据
mysql> delete from bbs.test where score >=90;     ## 数据库bbs中test表内score字段值大于等于90的数据
  • DQL是数据库查询语句,只有SELECT

  • 用于从数据表中查找符合条件的数据记录

  • 查询时可不指定条件

语法结构:SELECT 字段名1,字段名2 ...... FROM 表名

例:mysql> select * from bbs.users;   ## 查询bbs数据库中users表内所有内容
  • 清空表
mysql> truncate table info;

猜你喜欢

转载自blog.csdn.net/u014042047/article/details/108052765