一,数据库
–1,概述
用来存储数据和管理数据,最终形成类似于表格的样子,有行有列(字段)
分类: 关系型数据库 和 非关系型数据库
关系型数据库的产品有很多: Mysql(免费) Oracle SqlServer
非关系型数据库的产品有很多: Redis
–2,Mysql数据库的安装
本质就是一些软件,需要下一步下一步的安装
服务器的安装: 端口号默认使用3306 , 字符集默认使用了latin1(最好改成u8) , 密码可以设置成root
客户端的安装: sqlYog软件
检验: 从开始菜单里找到MySQL/Mariadb
–3,Mysql数据库的使用
使用客户端连接服务器 , 操作服务器里的数据
客户端有两种: DOS窗口 / 可视化的工具
数据库的结构: 数据库 -> 表 -> 记录(行 和列/字段 组成的)
–4,操作数据库的语言
SQL全称是结构化查询语言,对数据库里的数据进行各种操作,常见操作就是增删改查CRUD
SQL的分类:
DML 数据操作语言 , 对数据进行CRUD
DDL 数据库定义语言 , 创建库 , 创建表
DCL 数据库控制语言 , 细粒度的管理操作数据库的权限…
DQL 数据库查询语言,对数据发起查询需求
二,常见的操作
–1,数据库
查看所有的库: show databases ;
mysql> show databases;
mysql> show databases;
创建库: create database 库名;
mysql> create database cgb2106;
Query OK, 1 row affected (0.00 sec)
mysql> show databases;
删除库: drop database 库名;
mysql> drop database cgb2106;
Query OK, 0 rows affected (0.00 sec)
mysql> show databases;
–2,表
查看表: show tables;
mysql> use cgb2106;
Database changed
mysql> show tables;
Empty set (0.00 sec)
创建表: create table 表名(字段名 字段类型(长度) , 2 , 3 , 4 , 5…)
mysql> create table user(name varchar(10));
Query OK, 0 rows affected (0.10 sec)
mysql> create table user2(
-> name varchar(10),
-> age int,
-> sex varchar(3)
-> );
Query OK, 0 rows affected (0.08 sec)
mysql> show tables;
删除表: drop table 表名;
mysql> drop table user;
Query OK, 0 rows affected (0.08 sec)
修改表: alter table 表名 add column 字段名 字段类型(长度)
mysql> alter table user2 add column address varchar(20);
Query OK, 0 rows affected (0.15 sec)
Records: 0 Duplicates: 0 Warnings: 0
描述表:
mysql> desc user2;
+---------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| name | varchar(10) | YES | | NULL | |
| age | int(11) | YES | | NULL | |
| sex | varchar(3) | YES | | NULL | |
| address | varchar(20) | YES | | NULL | |
+---------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)
–!!!3,记录
查询: select * from 表名 ;
mysql> select * from user2;
Empty set (0.00 sec)
创建: insert into 表名 values(字段1的值,字段2的值,字段3的值,字段4的值)
mysql> insert into user2 values('jack',10,'nan','beijing');
Query OK, 1 row affected (0.06 sec)
# 注意: 值的个数必须和表里字段的个数一致,值的顺序也必须和字段的顺序一致
mysql> insert into user2 values('jack',10,'nan');
ERROR 1136 (21S01): Column count doesn't match value count at row 1
# 注意: 粗暴的解决中文乱码的方案
mysql> set names gbk;
Query OK, 0 rows affected (0.00 sec)
mysql> insert into user2 values('jack',10,'男','郑州');
Query OK, 1 row affected (0.06 sec)
# 要先解决中文乱码问题,否则插入中文会ERROR
ERROR 1406 (22001): Data too long for column 'sex' at row 1
修改: update 表名 set 字段名=新值
mysql> update user2 set name='肉丝' ;
Query OK, 2 rows affected (0.05 sec)
删除: delete from 表名
mysql> delete from user2;
Query OK, 2 rows affected (0.05 sec)
mysql> select * from user2;
Empty set (0.00 sec)
三,使用工具sqlyog
–1,数据库
–2,表
–3,记录
4.复习
#向dept表中插入数据
INSERT INTO dept VALUES(10,'php开发部','中鼎大厦');
INSERT INTO dept VALUES(11,'ios开发部',NULL);
#只给指定的字段设置值,表名(指定的字段名)
INSERT INTO dept(deptno) VALUES(100);
INSERT INTO dept(deptno,loc) VALUES(100,'上海');
#查询,可以查指定的列,也可以查所有列*
SELECT * FROM dept
SELECT loc FROM dept
SELECT deptno,dname FROM dept
#修改
UPDATE dept SET loc='北京'
#删除
DELETE FROM dept