数据库基础

数据库基础

什么是数据库

  • 数据库是一个用来存储各种数据的容器
  • 数据库管理系统:专门用于创建和管理数据库的统一软件,介于应用和操作系统之间,保证数据的完整性、可靠性和安全性
  • 数据库应用程序:通过数据库管理系统提供的接口与之通信,访问和管理数据的应用程序

SQL语言

​ SQL语言是一种数据库查询语言和程序设计语言,主要用于管理数据库中的数据,如存储数据,查询数据,更新数据等等

安装与下载

  • 下载社区版(免费)安装略

  • 设置环境变量

  • 初始化数据库

# 安装MySQL
mysqld --initialize

# 进入mysql
mysql -u root -p
# 重新设置密码
mysql> set PASSWORD = '重新设置的密码';

数据库和表的操作

  • 创建和删除数据库
mysql> Show databases; #查看所有的表单
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

# 创建数据库
mysql> Create database Test;
Query OK, 1 row affected (0.06 sec)

# 查询创建好的数据库
mysql> Show create database Test;
+----------+---------------------------------------------------------------+
| Database | Create Database                                               |
+----------+---------------------------------------------------------------+
| Test     | CREATE DATABASE `Test` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+---------------------------------------------------------------+
1 row in set (0.04 sec) # 默认创建的字节集使utf-8

# 修改数据库的默认编码方式
# Alter database 数据库名 default character set 编码方式 collate 编码方式_bin;
mysql> Alter database test default character set gbk collate gbk_bin;
Query OK, 1 row affected (0.29 sec)

# 删除已经创建的数据库
mysql> Drop database 数据库名称;
  • 创建修改删除表
# 创建表
mysql> Use Test
Database changed
# Create table testInfo(字段 数据类型,字段 数据类型);
mysql> Create table testInfo(name char,number int);
Query OK, 0 rows affected (0.43 sec)

# 查看创建的表
mysql> Show create table testInfo;
+----------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table    | Create Table                                                                                                                                                 |
+----------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
| testInfo | CREATE TABLE `testinfo` (
  `name` char(1) COLLATE gbk_bin DEFAULT NULL,
  `number` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=gbk COLLATE=gbk_bin |

mysql> Desc testinfo;
+--------+---------+------+-----+---------+-------+
| Field  | Type    | Null | Key | Default | Extra |
+--------+---------+------+-----+---------+-------+
| name   | char(1) | YES  |     | NULL    |       |
| number | int(11) | YES  |     | NULL    |       |
+--------+---------+------+-----+---------+-------+
# 修改表编码格式
mysql> Alter table testInfo default character set utf8 collate utf8_bin;
Query OK, 0 rows affected (0.17 sec)
Records: 0  Duplicates: 0  Warnings: 0

# 修改对应表中的字段
# Alter table 表名 change 旧字段名 新字段名 新类型;
mysql> Alter table testInfo change name name_new char;
Query OK, 0 rows affected (0.74 sec)
Records: 0  Duplicates: 0  Warnings: 0

# 修改表的名称
mysql> Alter table testInfo rename testInfo_new;
mysql> Desc testinfo_new;
+----------+---------+------+-----+---------+-------+
| Field    | Type    | Null | Key | Default | Extra |
+----------+---------+------+-----+---------+-------+
| name_new | char(1) | YES  |     | NULL    |       |
| number   | int(11) | YES  |     | NULL    |       |
+----------+---------+------+-----+---------+-------+
2 rows in set (0.00 sec)
# 修改字段的属性
# Alter table 表名 modify 字段名 新的数据属性;
mysql> Alter table testInfo_new modify number float;

# 添加新的字段       表名              新的字段名  数据属性               
mysql> Alter table testInfo_new add new_number text;
Query OK, 0 rows affected (0.59 sec)
Records: 0  Duplicates: 0  Warnings: 0

# 删除字段
mysql> Alter table testInfo_new drop number;
Query OK, 0 rows affected (0.63 sec)

# 删除表
mysql> Drop table testInfo_new;
  • 数据类型

表中数据操作

  • 查看表中数据
# 查看字段的详细信息,表中数据信息
# 条件查询 select* from 表名 where 条件
mysql> select* from testinfo;
+------+------+------+
| id   | name | age  |
+------+------+------+
|    1 | jac  |   15 |
+------+------+------+
1 row in set (0.00 sec)

# 向表中增加数据
# insert into 表名 (字段一,字段二,字段三 ...) values(值1,值2,值3 ...);
mysql> insert into testinfo (id,name,age) values(01,"jac",15);
Query OK, 1 row affected (0.06 sec)
# 或者直接添加值 insert into 表名 values(值1,值2,值3 ...);
mysql> insert into testinfo values(02,"bbb",55);

# 添加多行数据 insert into 表名 values(值1,值2,值3 ...),(值1,值2,值3 ...);
mysql> insert into testInfo values(04,"ddd",13),(05,"eee",23);
Query OK, 2 rows affected (0.30 sec)
Records: 2  Duplicates: 0  Warnings: 0
  • 更新表中数据
# update 表的名称 Set 字段 = 值 where 匹配的条件; 例如 id = 2时
mysql> update testInfo Set name = "bbb" where id = 2;
Query OK, 0 rows affected (0.07 sec)
  • 删除表中数据
# delete from 表名 where 匹配条件;
mysql> delete from testInfo where id = 5 or id = 4;
Query OK, 2 rows affected (0.11 sec)

单表查询

  • 精确查询
# 只能字段的来查询,只查看相应字段的数据
mysql> select name,id from studentinfo;

# select 字段 from 表名 where 条件;
mysql> select name from studentinfo where id >3;

# 通过关键字 and or in between 来查询 等

posted on 2020-02-29 17:51  #搬砖仔  阅读(149)  评论(0编辑  收藏  举报

导航