一、SQL與NoSQL 資料庫服務端可以服務多種類型的客戶端 客戶端可以是自己開發的,也可以是python代碼編寫的,也可以是其他編程語言編寫的 SQL 操作關係型數據的語言 NoSQL 操作非關係型數據的語言 須知: 1、SQL有時又也指代關係型資料庫 2、NoSQL有時候也指代非 ...
目錄
一、SQL與NoSQL
資料庫服務端可以服務多種類型的客戶端
客戶端可以是自己開發的,也可以是python代碼編寫的,也可以是其他編程語言編寫的
- SQL
- 操作關係型數據的語言
- NoSQL
- 操作非關係型數據的語言
須知:
1、SQL有時又也指代關係型資料庫
2、NoSQL有時候也指代非關係型資料庫
二、資料庫重要概念
為了更方便的理解資料庫的概念,將資料庫分成了下列三種表述方式
- 庫 >>>>>:文件夾
- show databases 查看庫
- 表 >>>>>:文件夾里的文件
- show tables 查看庫中的文件
- 記錄>>>>>:文件夾里的文件中一行一行的數據
- select * from mysql.user;
三、基本SQL語句
1、基於庫-CRUD
1、1.創建庫
用法:
create database 庫名;
mysql> create database userinfor;
Query OK, 1 row affected (0.00 sec)
1、2.查看庫
- 查看所有庫
用法:
show databases; - 查看指定庫
用法:
show create database 庫名;
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
| userinfor |
+--------------------+
5 rows in set (0.00 sec)
########################################################
show create database userinfor;
---------------------------------------
mysql> show create database userinfor;
+-----------+----------------------------------------------------------------------+
| Database | Create Database |
+-----------+----------------------------------------------------------------------+
| userinfor | CREATE DATABASE `userinfor` /*!40100 DEFAULT CHARACTER SET latin1 */ |
+-----------+----------------------------------------------------------------------+
1 row in set (0.00 sec)
1、3.編輯庫
用法:
- 修改庫的編碼類型
- alter database 庫名 charset='utf8';
- 刪除庫
- drop database 庫名;
mysql> alter database userinfor charset='utf8';
Query OK, 1 row affected (0.02 sec)
1、4.切換庫
用法:
use 庫名;
mysql> use userinfo;
Database changed
2、基於表-CRUD
註意事項:
操作之前需要先確定庫
2、1.創建表
用法:
create table 表名(欄位名1 欄位類型,欄位名2 欄位類型,..)
mysql> create table t1(name varchar(24),age int, gender varchar(23));
Query OK, 0 rows affected (0.01 sec)
2、2.查看表
用法:
- 查看當前庫下所有表
- show tables;
mysql> show tables;
+--------------------+
| Tables_in_userinfo |
+--------------------+
| t1 |
| t2 |
| t3 |
| t4 |
| t6 |
+--------------------+
5 rows in set (0.00 sec)
- 查看當前庫下指定的表的信息
- show create table 表名;
mysql> show create table t1;
+-------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table
|
+-------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
| t1 | CREATE TABLE `t1` (
`name` varchar(24) DEFAULT NULL,
`age` int(11) DEFAULT NULL,
`gender` varchar(23) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
+-------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
- 查看當前庫下指定的表的結構
- describe 表名;
- desc 表名;
mysql> desc t1;
+--------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| name | varchar(24) | YES | | NULL | |
| age | int(11) | YES | | NULL | |
| gender | varchar(23) | YES | | NULL | |
+--------+-------------+------+-----+---------+-------+
3 rows in set (0.02 sec)
2、3.編輯表
用法:
- 修改表名
- alter table 表名 rename 新表名;
mysql> alter table t6 rename t5;
Query OK, 0 rows affected (0.00 sec)
- 刪除表
- drop table 表名;
mysql> drop table t5;
Query OK, 0 rows affected (0.00 sec)
3、基於記錄-CRUD
3、1.插入記錄
用法:
insert into 表名 values(數據值1,數據值2, ...)
mysql> insert into t1 values('kangkang', 18 ,'male'),('lizhi', 18 ,'male');
Query OK, 1 row affected (0.01 sec)
3、2.查詢記錄
用法:
- 查詢表中所有數據
- select * from 表名:
mysql> select * from userinfo.t1;
+----------+------+--------+
| name | age | gender |
+----------+------+--------+
| kangkang | 18 | male |
| lizhi | 18 | male |
+----------+------+--------+
3、3.編輯數據
用法:
- 修改指定欄位名下數據
- update 表名 set 欄位名=新數據 where 賽選條件;
mysql> update t1 set name='kangk' where name='kangkang';
Query OK, 1 row affected (0.02 sec)
Rows matched: 1 Changed: 1 Warnings: 0
- 刪除數據(刪除表內所有數據)
- delete from 表名;
mysql> delete from t1;
Query OK, 2 rows affected (0.00 sec)
mysql> select * from userinfo.t1;
Empty set (0.00 sec)
- 刪除表內指定數據
- delete from 表名 where 篩選條件;
mysql> delete from t1 where name='lizhi';
Query OK, 1 row affected (0.00 sec)