数据库的五个基本单位
- 数据库服务器 db
- 数据库
- 数据表
- 数据字段
- 数据行
1数据库的操作命令
- mysql -u root -h ip地址 -p 输入密码
- -u 用户名
- -p密码
- -h ip地址
1.1数据库的创建
1创建数据库 如果存在报错
create database 数据库名称;
2如果数据库不存在创建,存在就不创建不报错
create database if not exists 数据库名;
1.2查看数据库
1查看所有的数据库
show databases;
1.3删除数据库
警告不要删除mysql数据库密码权限都在里面
警告不要删除mysql数据库密码权限都在里面
警告不要删除mysql数据库密码权限都在里面
1删除数据库
show database 数据库名字;
1.4选中数据库
1在操作数据库时第一步先选中
use 数据库名称;
下方出现 这个代表选中成功
Database changed
2数据表操作
2.1查看数据表
1查看当前数据库下所有的数据表
show databases;
2 desc 标明 查看表结构
+-------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| id | int(10) | YES | | NULL | |
+-------+---------+------+-----+---------+-------+
|外键否?|
字段名| 字段类型|可否为空| 主键否?|默认值|附加功能
3查看指定表的创建语句(也叫查看表结构)
show create table 表明;
+---------+-------------------------------------------------------------------------------------------+
| Table | Create Table |
+---------+-------------------------------------------------------------------------------------------+
| student | CREATE TABLE `student` (
`id` int(10) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+---------+-------------------------------------------------------------------------------------------+
ENGINE 数据表用的搜索引擎 5.5.5以后默认 InnoDB
CHARSET 字符集编码
2.2数据表的创建
if not exists 有就不创建 没有就创建
1创建表(表结构)
creat table if not exists 表命(
字段名1 字段类型(字段长度) 限制条件(可有可无),
字段名2 字段类型(字段长度) 限制条件(可有可无),.....
字段名n 字段类型(字段长度) 限制条件(可有可无
);
我的栗子
create table dog(
dogid int(11)unsigned primary key auto_increment,
dogname varchar(20) not null default "狗东西",
dogmasterid int(11) not null unique,
dogmastername char(14) comment "我有心爱的狗东西"
)engine=INNODB CHARSET=utf8mb4;
字段限制 unsigned 数值无符号(int本来是(-2 147 483 648,2 147 483 647)加了无符号之后(0,4 294 967 295))
not null 非空
unique 唯一
comment 字段注释
primary key 主键 (自带唯一非空) auto_increment 自增
default 默认值
engine 指定表引擎默认就是5.5.5以上innodb
charset 设置编码字符集
CASE
WHEN OD_DAYS =0 THEN "值1"
WHEN OD_DAYS BETWEEN 0 and 89 THEN "值n"
else "值3"
END as 表字段,
和if一样但是可以用来建表字段
常用字段类型
#整数
int()
float()
#字符串
char() 定长 说几个位置就占几个位子
varchar() 变长 说了很多位置 自己没用的补分可以给别人用
常用字符集
utf8_general_ci Unicode 多语言 不区分大小写
2.3删除数据表
1删除数据表
drop table 表名;
3数据表字段操作
- column 可写可不写无意义
- 修改表的操作 都是 alter table 开头
- 修改表名 alter table oldname rename newname;
3.1增加表字段
mysql> desc dog;
+---------------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------+------------------+------+-----+---------+----------------+
| dogid | int(11) unsigned | NO | PRI | NULL | auto_increment |
| dogname | varchar(20) | NO | | 狗东西 | |
| dogmasterid | int(11) | NO | UNI | NULL | |
| dogmastername | char(14) | YES | | NULL | |
+---------------+------------------+------+-----+---------+----------------+
1 在指定字段后面增加字段 after 字段名
alter table dog add money int(10) after dogid;
mysql> desc dog;
+---------------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------+------------------+------+-----+---------+----------------+
| dogid | int(11) unsigned | NO | PRI | NULL | auto_increment |
| money | int(10) | YES | | NULL | |
| dogname | varchar(20) | NO | | 狗东西 | |
| dogmasterid | int(11) | NO | UNI | NULL | |
| dogmastername | char(14) | YES | | NULL | |
+---------------+------------------+------+-----+---------+----------------+
2将字段添加到最上面
alter table dog add dogson enum("有崽子","没有崽子") not null first;
mysql> desc dog;
+---------------+---------------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------+---------------------------+------+-----+---------+----------------+
| dogson | enum('有崽子','没有崽子') | NO | | NULL | |
| dogid | int(11) unsigned | NO | PRI | NULL | auto_increment |
| money | int(10) | YES | | NULL | |
| dogname | varchar(20) | NO | | 狗东西 | |
| dogmasterid | int(11) | NO | UNI | NULL | |
| dogmastername | char(14) | YES | | NULL | |
+---------------+---------------------------+------+-----+---------+----------------+
3.2修改表字段
mysql> desc dog;
+---------------+---------------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------+---------------------------+------+-----+---------+----------------+
| dogson | enum('有崽子','没有崽子') | NO | | NULL | |
| dogid | int(11) unsigned | NO | PRI | NULL | auto_increment |
| money | int(10) | YES | | NULL | |
| dogname | varchar(20) | NO | | 狗东西 | |
| dogmasterid | int(11) | NO | UNI | NULL | |
| dogmastername | char(14) | YES | | NULL | |
+---------------+---------------------------+------+-----+---------+----------------+
1重写表字段 关键词(change)
alter table dog change dogson dogeye varchar(16) default "黑森" first;
mysql> desc dog;
+---------------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------+------------------+------+-----+---------+----------------+
| dogeye | varchar(16) | YES | | 黑森 | |
| dogid | int(11) unsigned | NO | PRI | NULL | auto_increment |
| money | int(10) | YES | | NULL | |
| dogname | varchar(20) | NO | | 狗东西 | |
| dogmasterid | int(11) | NO | UNI | NULL | |
| dogmastername | char(14) | YES | | NULL | |
+---------------+------------------+------+-----+---------+----------------+
2不改变表字段名字只修改表字段类型 关键词(modify)
alter table dog modify dogeye char(10) not null default "紫色";
mysql> desc dog;
+---------------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------+------------------+------+-----+---------+----------------+
| dogeye | char(10) | NO | | 紫色 | |
| dogid | int(11) unsigned | NO | PRI | NULL | auto_increment |
| money | int(10) | YES | | NULL | |
| dogname | varchar(20) | NO | | 狗东西 | |
| dogmasterid | int(11) | NO | UNI | NULL | |
| dogmastername | char(14) | YES | | NULL | |
+---------------+------------------+------+-----+---------+----------------+
数据表中数据的操作
- show engines 查看数据库中所有支持的引擎
- \G 以最佳体验观看
myisam、innodb 区别
- myisam不支持事务 表锁 支持全文索引 不支持外键 读取效率高 如果你这张表读的多那么选择 myisam 引擎 更好
- myisam只缓存索引文件 数据文件的缓存 由 操作系统来完成
- innodb 支持事务、行锁 、支持外键