数据库介绍
一、关系型数据库
基于关系模型的数据库系统
关系模型数据结构使用简单易懂的二维数据表
关系模型可用简单的“实体-关系”表示
实体 关系 属性 三要素
实体:也称实例,对应现实世界中可区别于其他对象的“事件”或“事物”
属性:实体所具有的某一特性,一个实体可以有多个属性
联系:实体集之间的对应关系称为联系,也成为关系
二、非关系型数据库
也成为nosql
存储数据不以关系模型为依据,不需要固定格式
非关系模型数据库优点:
数据库可以高并发读写
对海量数据高效存储访问
对数据库具有高扩展性与高可用性
mysql数据库管理
SQL语言
Structured Query Language缩写,即结构化查询语言
关系型数据库标准语言
用于维护管理数据库
包括数据查询、数据更新、访问控制、对象管理功能
SQL分类
DDL:数据定义语言
DML:数据操纵语言
DQL:数据查询语言
DCL:数据控制语言
常用命令(增、删、改、查)
create database 数据库名
mysql> create database text;
Query OK, 1 row affected (0.00 sec)
create table 表名 (字段定义…)
进入数据库text
use text;
创建users1表第一个字段(属性)username16字符不能为空,第二字段(属性)user_passwd48字符不能为空,主键设置为user_name
mysql> create table users1 (user_name char(16) not null,user_passwd char(48) default '',primary key (user_name));
Query OK, 0 rows affected (0.00 sec)
查看库
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| bbs |
| chengji |
| mysql |
| performance_schema |
| test |
| text |
+--------------------+
7 rows in set (0.00 sec)
进入库,查看有哪些表
mysql> show tables;
+----------------+
| Tables_in_text |
+----------------+
| users1 |
+----------------+
1 row in set (0.00 sec)
显示数据表节构
describe 【数据库名.】表名(可以使用desc代替)
mysql> desc users1;
+-------------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+----------+------+-----+---------+-------+
| user_name | char(16) | NO | PRI | NULL | |
| user_passwd | char(48) | YES | | | |
+-------------+----------+------+-----+---------+-------+
2 rows in set (0.00 sec)
DML语句用于对表中数据进行管理
包括的操作
INSERT:插入新数据
UPDATE:更新原有数据
DELETE:删除不需要的数据
INSERT INTO 表明(字段1,字段2,…)VALUES(字段1的值,字段2的值,…)
mysql> insert into users1 values ('lzy','wang');
Query OK, 1 row affected (0.00 sec)
mysql> select * from users1;
+-----------+-------------+
| user_name | user_passwd |
+-----------+-------------+
| lzy | wang |
+-----------+-------------+
1 row in set (0.00 sec)
修改、更新数据表中数据记录
UPDATE 表名 SET 字段名1(属性)=值1【字段名2=值2】 WHERE 条件表达式
mysql> update users1 set user_passwd='ci' where user_name='lzy';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> select * from users1;
+-----------+-------------+
| user_name | user_passwd |
+-----------+-------------+
| lzy | ci |
+-----------+-------------+
1 row in set (0.00 sec)
关联表信息
mysql> create table users2 (user_name char(16) not null primary key,user_hoby varchar(20) not null);
Query OK, 0 rows affected (0.00 sec)
mysql> show tables;
+----------------+
| Tables_in_text |
+----------------+
| users1 |
| users2 |
+----------------+
2 rows in set (0.00 sec)
插入数据
mysql> insert into users2 values ('lzy','下棋');
Query OK, 1 row affected (0.00 sec)
mysql> select * from users2;
+-----------+-----------+
| user_name | user_hoby |
+-----------+-----------+
| lzy | 下棋 |
+-----------+-----------+
1 row in set (0.00 sec)
mysql> select users1.user_passwd,users2.user_hoby from users1 inner join users2 on users1.user_name=users2.user_name;
+-------------+-----------+
| user_passwd | user_hoby |
+-------------+-----------+
| ci | 下棋 |
+-------------+-----------+
1 row in set (0.00 sec)
可以客观的看到users1和users2的数据被关联显示出来了
表中删除指定数据记录
DELETE FROM 表名 WHERE 条件表达式
mysql> delete from auth.users where user_name=‘lisi’;
*不带where条件语句删除所有记录(高危命令)
mysql> delete from users1;
Query OK, 1 row affected (0.00 sec)
mysql> select * from users1;
Empty set (0.00 sec)
查询时指定条件
SELECT 字段名1(属性1),字段名2… FROM 表名 WHERE 条件表达式(where)
mysql> select * from info;
+----+------+--------+------+
| id | name | score | addr |
+----+------+--------+------+
| 1 | lzy | 80.00 | NULL |
| 2 | tl | 70.00 | NULL |
| 3 | szy | 20.00 | NULL |
| 4 | tx | 90.00 | NULL |
| 5 | yhy | 100.00 | NULL |
| 6 | cyh | 12.00 | NULL |
| 7 | cff | 10.00 | NULL |
+----+------+--------+------+
7 rows in set (0.00 sec)
mysql> select score,name from info where id=3;
+-------+------+
| score | name |
+-------+------+
| 20.00 | szy |
+-------+------+
1 row in set (0.00 sec)