【数据库系列教程】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