数据库基础
什么是数据库
- 数据库是一个用来存储各种数据的容器
- 数据库管理系统:专门用于创建和管理数据库的统一软件,介于应用和操作系统之间,保证数据的完整性、可靠性和安全性
- 数据库应用程序:通过数据库管理系统提供的接口与之通信,访问和管理数据的应用程序
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 来查询 等
来源:https://www.cnblogs.com/TJTO/p/12380234.html