【数据库系列教程】MySQL基本语句
一、SQL类型----结构化查询语言
- 
DDL 数据定义语言 - 对库、表、用户定义的管理
- create, drop, alter
 
- 
DML 数据管理/操作语言 - 对表中的数据进行操作
- insert, delete、update、select
 
- 
DCL 数据控制语言 - 对数据库用户、权限进行管理
- grant, revoke
 
二、数据库管理操作
1.查看数据库
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)
2.几个默认的数据库说明
information_schema
- 保存数据库服务器上元数据信息(数据库名称、数据表名、字段名称、数据类型)
mysql
- 保存用户名、密码、权限
performance_schema
- 保存数据服务器性能相关的数据,例如连接数、进程、线程
sys
- 对information_schema数据库的简化,方便数据库管理员查看
3.创建数据库
> create databse <数据库名称>;
mysql> create database caiwu;
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| caiwu              |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4.查看数据库创建信息
mysql> create database testdb charset utf8;		#创建一个名为testdb的库,指定utf8编码格式
Query OK, 1 row affected (0.00 sec)
mysql> show create database testdb;
+----------+-----------------------------------------------------------------+
| Database | Create Database                                                 |
+----------+-----------------------------------------------------------------+
| testdb   | CREATE DATABASE `testdb` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+-----------------------------------------------------------------+
1 row in set (0.00 sec)
5.删除数据库
mysql> drop database caiwu;
Query OK, 0 rows affected (0.00 sec)
6.使用数据库
mysql> use game;
7.切换数据库
mysql> select database();
+------------+
| database() |
+------------+
| game       |
+------------+
1 row in set (0.00 sec)
三、数据表操作
1.创建表
> create table 表名(字段名称 数据类型 [属性], 字段名称 数据类型 [属性], .........)
2.数据表类型
数字
- int、smallint、tinyint、bigint、mediumint 整型
- int unsigned 无符号整型
- float(5,3) 单精度浮点数 4.178
- double(5,3) 双精度浮点数
- decimal(5,3) 财务
字符
- char(10) 定长字符
- varchar(20) 变长字符
- text 字符
- enum(“男”, “女”) 枚举 ENUM(“yes”, “no”)
日期时间
- date YYYY-MM-DD
- datetime YYYY-MM-DD HH:MM:SS
- timestamp YYYY-MM-DD HH:MM:SS
- 在数据变化时,时间会自动更新
属性
- primary key 主键
- unique key 惟一键
- not null 不允许为空
- auto_increment 自动增长, 配合primary key使用
- default “数据” 设置字段的默认值
3.查看表
mysql> show tables;
+----------------+
| Tables_in_game |
+----------------+
| account        |
| tb01           |
+----------------+
2 rows in set (0.00 sec)
4.查看表结构
dexc 表命
mysql> desc account;
+----------+------------------+------+-----+---------+----------------+
| Field    | Type             | Null | Key | Default | Extra          |
+----------+------------------+------+-----+---------+----------------+
| id       | int(11)          | NO   | PRI | NULL    | auto_increment |
| name     | char(20)         | NO   |     | NULL    |                |
| password | char(30)         | NO   |     | NULL    |                |
| level    | int(10) unsigned | YES  |     | 1       |                |
+----------+------------------+------+-----+---------+----------------+
4 rows in set (0.03 sec)
5.删除表
mysql> drop table tb01;
四、MySQL存储引擎storage engine
1.查看表的创建信息
mysql> show create table account\G;
*************************** 1. row ***************************
       Table: account
Create Table: CREATE TABLE `account` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` char(20) NOT NULL,
  `password` char(30) NOT NULL,
  `level` int(10) unsigned DEFAULT '1',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
1 row in set (0.00 sec)
2.查看支持的存储引擎
mysql> show engines;
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine             | Support | Comment                                                        | Transactions | XA   | Savepoints |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| InnoDB             | DEFAULT | Supports transactions, row-level locking, and foreign keys     | YES          | YES  | YES        |
| MRG_MYISAM         | YES     | Collection of identical MyISAM tables                          | NO           | NO   | NO         |
| MEMORY             | YES     | Hash based, stored in memory, useful for temporary tables      | NO           | NO   | NO         |
| BLACKHOLE          | YES     | /dev/null storage engine (anything you write to it disappears) | NO           | NO   | NO         |
| MyISAM             | YES     | MyISAM storage engine                                          | NO           | NO   | NO         |
| CSV                | YES     | CSV storage engine                                             | NO           | NO   | NO         |
| ARCHIVE            | YES     | Archive storage engine                                         | NO           | NO   | NO         |
| PERFORMANCE_SCHEMA | YES     | Performance Schema                                             | NO           | NO   | NO         |
| FEDERATED          | NO      | Federated MySQL storage engine                                 | NULL         | NULL | NULL       |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
9 rows in set (0.00 sec)
3.存储引擎的介绍
- 
不同存储引擎影响数据库性能、功能 
- 
InnoDB(新版本默认引擎) - 支持事务 Transaction、外键
- 支持行级锁 row level lock
 
- 
MYISAM(旧版本默认引擎) - 支持表级锁
- 不支持事务
- 查询性能较高
 
- 
MRG_MYISAM - 支持将多个MYISAM的表进行合并
 
- 
MEMORY - 使用内存来进行存储数据
 
- 
BLACKHOLE - 黑洞 #存一个删除一个
 
4.修改MySQL的默认存储引擎
vim /etc/my.cnf
[mysqld]
default-storage-engine=InnoDB
 
                     
                
             
                 
            
评论