一、MySQL简介
MySQL是一个非常流行的小型关系型数据库管理系统,2008年1月16号被Sun公司收购。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。
二、MySQL安装 略过
三、MySQL基本语法
MySQL和常规软件不一样 这是开发软件 没有快捷方式
他是基于命令行操作的软件
我们使用MySQL 首先应该知道 我们安装的是MySQL数据库管理系统
也就是MySQL服务 而我们操作的是客户端
在操作客户端之前 我们需要先进行登录
登录MySQL
-h host 主机 127.0.0.1 || localhost
-u user 用户 root(安装自带的用户名 绝对权限)
-p password 密码 你安装的时候设定的密码
打开命令行 一般情况下 我们在安装的时候已经配置好环境变量
所以说 直接使用命令行登录即可
其实在我们本地登录的时候 我们可以省略-h 因为服务器在本地
基本语法
数据库每完成一个语句 那么必须使用分号进行结束
如果说 忘了加分号 在下面的行 补上一个分号
\c : 退出编辑
\g : 当分号处理
数据库结构操作
1、查看当前数据库中有那些库 show databases
2、选择进入一个数据库中 进行操作这个数据库 use 库名
3、创建一个数据库 create database 库名
4、删除一个数据库 drop database 库名
MySQL数据库结构
数据库服务 -> 数据库 -> 数据表 -> 字段 -> 数据
5、查看库中有那些表 show tables
6、创建一个表 create table 表名(字段名1 数据类型 字段属性,……)
7、查看表的信息 desc 表名
8、查看表的创建信息 show create table 表名
9、修改表名 alter table user rename login
10、添加字段 alter table login add school char(30)
11、修改字段 alter table login change school address char(30)
12、删除字段 alter table login drop address
13、删除表 drop table login
4、MySQL数据类型
MySQL的数据类型有四种
1、空 null
2、时间
Year : 年
Date : 年月日 日期
Time : 时分秒 时间
Datetime : 年月日时分秒
Timestamp : 自动生成时间 年月日时分秒
3、数值
Tinyint : 一个字节 -128—127
Smallint : 两个字节 -32768-32767
Mediumint : 三个字节 -8388608-8388607
Int : 四个字节 -2147483648-2147483647
Bigint : 八个字节 - 9223372036854775808 — 9223372036854775807
Float : 浮点型 单精度
Double : 浮点型 双精度
4、字符串
数据库中 一个汉字是两个字节
Char : 定长字符串
Varchar : 变长字符串
Enum : 枚举型 该字段只能填充已有参数
Text : 文本类型 最多存储16KB
Char和varchar的区别
Varchar是char的升级产品 varchar是变长字符串
Char是定长字符串
Char和varchar后面的括号里面的数字是该字段最多存放的字节
如果说 我们一次只存储了Eric四个字母 那么应该占用几个字节
如果是char 他会补齐六个空格 统一提交 占用十个字节
如果是varchar 先多占用一个字节 而实际存储的时候 我们存储的是5个字节 其他的六个空 白字符 被过滤掉
Varchar比较占用时间 节约内存
Char比较占用内存 但是能节约时间
量才取用
5、MySQL字段属性
Unsigned : 整形负数的部分去掉 挪到正数的部分
Null : 空
Not null : 非空
Default : 默认值
Zerofill : 零填充 零填充不能是负数 会自动添加Unsigned
6、MySQL字符集
Gb2312-80:国标2312 80年代:双字节编码:6700多个汉字
Gb13000:1993年发布的27400多个字
Gbk:国标扩展:1995年发布扩充Gb2312,将前二者全部录入
Gb18030:2000年发布:超级gbk
Big5 : 繁体字
7、MySQL存储引擎
myisam
特点
成熟、稳定、易于管理
表级锁、优化高并发
optimize table:处理碎片,该属性可以优化空间
缺点 : 不支持一些功能
对比innodb
不支持事务处理
不支持行级锁,支持表级锁
空间占有量相对小
支持全文索引
innodb
特点:
他是myisam的更新产品
支持事物、回滚等功能
与myisam不同的是,他属于行级锁
缺点:空间占用量太大,操作慢,不支持全文索引
对比myisam:
支持事务处理
不支持表级锁,支持行级锁
空间占有大约是myisam的两倍
不支持全文索引
主外键约束
8、主键索引
主键是以某个字段为主
第一避免重复 第二删除或者是修改不发生冲突
主键 : 不能重复 不能为空 我们可以设定其为自增长
主键索引
作用 : 确定数据表中一条特定数据记录的位置
关键字 : primary key
创建 : 一般创建在建表时 id int not null auto_increment primary key
创建 : 一般创建在建表时 primary key(主键)
注意 : 主键不能为空,一个表中只能有一个主键索引
自增长属性 : auto_increment 不能单独使用 必须和索引一起使用
9、MySQL创建表
Create table 表名(
字段1 数据类型([数据类型长度]) 字段属性,
字段2 数据类型([数据类型长度]) 字段属性,
字段3 数据类型([数据类型长度]) 字段属性,
字段4 数据类型([数据类型长度]) 字段属性,
……
)
create table student(id int not null auto_increment primary key,name varchar(30) not null default ‘’,age tinyint unsigned not null default 0,sex enum(‘boy’,‘girl’) not null default ‘boy’,birth date not null default ‘2020-09-14’,school varchar(30) not null default ‘’,tel char(11) not null default ‘’) engine = myisam;
10、操作语句—插入语句
Ddl : 数据库定义语句
Dml : 数据库操作语句
Dql : 数据库查询语句
Dcl : 数据库控制语句
Dtl : 数据库事务语句
操作语句是dml
对数据的增删改操作都是操作语句
插入语句 : insert into
修改语句 : update
删除语句 : delete
插入语句
Insert into 表名(字段列表) values (值列表)
其中字段列表可以省略
Insert添加语句(已过时)
Insert set语句 (更老)
使用insert into方法插入数据库
在插入数据的时候 可以省略字段的名字
但是有一个要求 省略字段的名字 那么必须将数据表中所有的字段都进行插入
而且必须按照顺序进行插入