数据库介绍
关系数据库
基于关系模型的数据库系统
关系模型数据结构使用简单易懂的二维数据表
关系模型可用简单的“实体-关系”表示
实体 关系 属性 三要素
实体:也称实例,对应现实世界中可区别于其他对象的“事件”或“事物”
属性:实体所具有的某一特性,一个实体可以有多个属性
联系:实体集之间的对应关系称为联系,也成为关系
非关系数据库
也成为nosql
存储数据不以关系模型为依据,不需要固定格式
非关系模型数据库优点:
数据库可以高并发读写
对海量数据高效存储访问
对数据库具有高扩展性与高可用性
mysql数据库管理
SQL语言
Structured Query Language缩写,即结构化查询语言
关系型数据库标准语言
用于维护管理数据库
包括数据查询、数据更新、访问控制、对象管理功能
SQL分类
DDL:数据定义语言
DML:数据操纵语言
DQL:数据查询语言
DCL:数据控制语言
创建数据库
create database 数据库名
mysql> create database auth1;
Query OK, 1 row affected (0.00 sec)
创建数据表
create table 表名 (字段定义…)
进入数据库auth1
use auth1
创建users1表第一个字段(属性)username16字符不能为空,第二字段(属性)user_passwd48字符不能为空,指定user_name开头删除username开头就是删掉一整行
mysql> create table users1 (user_name char(16) not null,user_passwd char(48) default’’,primary key (user_name));
查看库
mysql> show databases
-> ;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
进入库,并查看表
mysql> use mysql
mysql> show tables
-> ;
+---------------------------+
| Tables_in_mysql |
+---------------------------+
| columns_priv |
| db |
| engine_cost |
| event |
| func |
| general_log |
| gtid_executed |
| help_category |
----------------------------+
显示数据表节构
describe 【数据库名.】表名(可以使用desc代替)
mysql> desc yu;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(4) | NO | PRI | NULL | |
| name | varchar(10) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
DML语句用于对表中数据进行管理
包括的操作
INSERT:插入新数据
UPDATE:更新原有数据
DELETE:删除不需要的数据
INSERT INTO 表明(字段1,字段2,…)VALUES(字段1的值,字段2的值,…)
mysql> insert into yu (id,name) values (3,'wu'),(4,'ki');
修改、更新数据表中数据记录
UPDATE 表名 SET 字段名1(属性)=值1【字段名2=值2】 WHERE 条件表达式
mysql> update yu set name='shi' where name='si';
mysql> select * from yu;
+----+-------+
| id | name |
+----+-------+
| 1 | zhang |
| 2 | shi |
| 3 | wu |
| 4 | ki |
+----+-------+
创建两张表将两张表关联起来,需要注意有一项要一样的这里指定的是id号
先创建表
mysql> create table yu2 (id int(4) primary key,aihao varcchar(6));
Query OK, 0 rows affected (0.00 sec)
插入表中数据
mysql> insert into yu2 values (1,'lest'),(2,'read'),(3,'open'),(4,'dou');
在创建一个表
mysql> create table yu3 (id int(4) primary key,name varchhar(6));
Query OK, 0 rows affected (0.01 sec)
然后插入数据
mysql> insert into yu3 values (1,'chen'),(2,'yu'),(3,'heng'),(4,'oo');
里面id号是一样的然后我们用id号做关联
mysql> select yu2.aihao,yu3.name from yu2 inner join yu3 on yu2.id=yu3.id;
前面是关联的内容后面是用什么关联。
表中删除指定数据记录
DELETE FROM 表名 WHERE 条件表达式
mysql> delete from auth.users where user_name=‘lisi’;
*不带where条件语句删除所有记录(高危命令)
delete from auth.users;
管理表中数据
DQL是数据查询语句,只有SELECT
用于从数据表中查询符合条件的记录
查询时可不指定条件
SELECT 字段名1(属性1),字段名2…FROM 表名
查看auth库中users表中所有内容
mysql> select * from auth.users;
+-----------+-------------------------------------------+
| user_name | user_passwd |
+-----------+-------------------------------------------+
查询时指定条件
SELECT 字段名1(属性1),字段名2… FROM 表名 WHERE 条件表达式(where)
查找auth库中users表中zhangsan两个属性的信息
mysql> select user_name,user_passwd from auth.users where user_name='zhangsan';
+-----------+-------------------------------------------+
| user_name | user_passwd |
+-----------+-------------------------------------------+
| zhangsan | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |