一.什么是数据库
数据库是存储数据和管理的仓库,进行复杂度较高的数据交换业务处理。
二.数据库工具安装下载
1.安装服务器控制面板控制数据库的启动
下载网址: 小皮面板-好用、安全、稳定的Linux服务器面板! (xp.cn)
点击启动显示上图所示即可完成
2.安装数据库操作工具
安装好Navicat for MySQL我们就可以操作我们的数据库了
进入工具里面,我们点击连接,可以看到相对应的选项,连接名可以随便使用,但不能重复
主机号,端口,默认即可 用户名跟密码我们在小皮面板工具中查看相对应的用户名及密码
三. 数据库能够做些什么呢?
1.存储大量数据,方便检索和访问
2.保持数据信息的一致,完整
3.共享和安全
4.通过组合分析,产生新的有用信息
四. 命令行操作数据库
1.命令行连接MySQL
javascript
//语法
mysql -h 服务器主机地址(本机可省略) -u 用户名 -p密码(回车输入密码)
//示例
mysql -u root -proot
mysql -u root -p
2. 结构化查询语言
|--------------|----------------------|-----------------------|
| 名称 | 解释 | 命令举例 |
| DML (数据操作语言) | 用来操作数据库中所包含的数据 | insert update delete |
| DDl (数据定义语言) | 用于创建和删除数据库对象等操作 | create drop alter |
| DQL (数据查询语言) | 用来对数据库中的数据进行查询 | select |
| DCL (数据控制语言) | 用来控制数据库组件的存取许可、存取权限等 | grant commlt rollback |
3.操作数据库用户
javascript
// 创建用户语法
create user '用户名'@'localhost' identified by '密码'
//例子 localhost/127.0.0.1都可以使用
CREATE USER 'aaaa'@'127.0.0.1' IDENTIFIED BY '123';
4.创建数据库
javascript
//创建数据库语法
create database 数据库名;
//例子 创建了一个名为abc的数据库
create database abc;
注意:分号为结束符,不可缺
5.查看数据库列表
javascript
//查看数据库列表语法
show databases;
6.选择数据库
javascript
//选择数据库语法
use 数据库名;
注意:数据库名不存在会报错
报错代码:[SQL]use aaa;
[Err] 1049 - Unknown database 'aaa'
7.删除数据库
javascript
//删除数据库语法
drop database 数据库名;
五. SQL中的运算符
1.算术运算符
|---------|----------------------------------|
| 运算符 | 说明 |
| + | 加运算,求两个数或两个表达式相加的和 |
| - | 减运算,求两个数或表达式相减的差 |
| * | 乘运算,求两个数或表达式相乘的积 |
| / | 除运算,求两个数或表达式相除的商,如5/3的值为1 |
| % | 取模运算,求两个数或表达式相除的余数,如:5/3的值为2 |
sql
#算数运算
select 3+2;
select 50-3;
select 32*2;
select 50/10;
select 50%2;
2.赋值运算符
|---------|-------------------------------------|
| 运算符 | 说明 |
| = | 把一个数或变量或表达式赋值给另一个变量,如:Name='王华' |
3.逻辑运算符
|---------|-----------------------------------|
| 运算符 | 说明 |
| AND | 当且仅当两个布尔表达式都为true时,返回TRUE。与 |
| OR | 当且仅当两个布尔表达式 都为false,返回FALSE。或 |
| NOT | 布尔表达式的值取反 非 |
4.比较运算符
|----------|----------------------|
| 运算符 | 说明 |
| = | 等于,例如:age=23 |
| > | 大于,例如:price>100 |
| < | 小于 |
| <> | 不等于 |
| >= | 大于等于 |
| <= | 小于等于 |
| != | 不等于(非SQL_92标准) |
sql
select 5>2
#结果为1
注意 :数据库中的数据类型没有布尔类型,数据库中数据比较时结果返回0或10表示错误,1表示正确
六. 创建表
创建表时多字段使用逗号分隔,保留字用反引号括起来,单行注释:# ,多行注释/**/
sql
/*
创建表语法
create table 表名(
字段 类型,
字段 类型,
字段 类型
)
*/
#创建一个学生表
#if not exists :如果不存在
#zerofill 数值位数小于长度时以0填充,数值位数大于长度时,以实际位数显示
create table if not exists student(
id int(5) zerofill,
names varchar(255),
sex char(1),
birthday Date
)
创建了一个数据表是不是里面内容有很多看不懂,没有关系,我们继续往底下学习一下MySQL的数据类型
1.数值类型
|---------------|---------------|------------------------------------------------------|------------|
| 类型 | 说明 | 取值范围 | 存储需求 |
| TINYINT | 非常小的数据 | 有符值: -2的7次方 ~ 2的7次方-1 无符号值:0 ~ 2的8次方-1 | 1字节 |
| SMALLINT | 较小的数据 | 有符值: -2的15次方 ~ 2的15次方-1 无符号值: 0 ~ 2的16次方-1 | 2字节 |
| MEDIUMINT | 中等大小的数据 | 有符值: -2的23次方 ~ 2的23次方-1 无符号值: 0 ~ 2的24次方-1 | 3字节 |
| INT | 标准整数 | 有符值: -2的31次方 ~ 2的31次方-1 无符号值:0 ~ 2的32次方-1 | 4字节 |
| BIGINT | 较大的整数 | 有符值: -2的63次方 ~2的63次方-1 无符号值:0 ~2的64次方-1 | 8字节 |
| FLOAT | 单精度浮点数 | ±1.1754351e -38 | 4字节 |
| DOUBLE | 双精度浮点数 | ±2.2250738585072014e -308 | 8字节 |
| DECIMAL | 字符串形式的浮点数 | Decimal(M,D) | M+2个字节 |
其中tinyint, int,double最为常用。
2.字符串类型
|------------------|-----------|--------------------|
| 字符串类型 | 说明 | 长度 |
| CHAR[(M)] | 定长字符串 | M字节 |
| VARCHAR[(M) | 可变字符串 | 可变长度 |
| TINYTEXT | 微型文本串 | 0~2的8次方--1字节 |
| TEXT | 文本串 | 0~2的16次方--1字节 |
3.日期类型
|---------------|------------------------|----------------------------------------------------|
| 日期类型 | 格式 | 取值范围 |
| DATE | YYYY-MM-DD,日期格式 | 1000-01-01~ 9999-12-31 |
| DATETIME | YY-MM-DD hh:mm:ss: | 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59 |
| TIME | hh:mm:ss: | -835:59:59 ~ 838:59:59 |
| TIMESTAMP | YYYYMMDDHHMMSS | 1970年某时刻~2038年某时刻,精度为1秒 |
| YEAR | YYYY格式的年份 | 1901~2155 |
若某日期字段默认值为当前日期,一般设置为TIMESTAMP类型
4.表的操作
1.查看表
sql
# 查看表是否存在
# 选择myschool数据库
use myschool;
#查看所有表
show tables;
# 查看表的定义
# DESCRIBE 表名;或DESC 表名
# 选择myschool数据库
use myschool;
# 查看student表的定义内容
desc student;
2.删除表
在删除表之前,先使用 if exists语句验证表是否存在
sql
# 删除表语法
DROP table 【if exists】表名;
use myschool;
drop table if exists student;
3.修改表
sql
#修改表名
alter table 旧表名 rename 【to】 新表名;
#添加字段
alter table 表名 add 字段名 数据类型【属性】;
#修改字段
alter table 表名 change 原字段名 新字段名 数据类型【属性】;
#删除字段
alter table 表名 drop 字段名;