一、关于数据库(文件夹)、表(文件)、记录(文件中的内容)
必备知识:
show databases;(注意加s) #查看所有的数据库
select database();#查看当前所在的数据库;
use 数据库; #使用数据库(切换数据库)
show tables;#查看数据库里面的内容
#表是由记录(内容)放到结构(结构里包括字段)组成的
二、数据库的增、删、改、查
use数据库; 使用数据库(切换数据库)
select database(); #查看当前所在的数据库
增
create database #数据库名 charset编码方式; #(注意加分号,注意编码问题)
create database db1 charset utf8; # 创建 db1 的数据库 编码方式是 UTF-8
删
drop database 数据库名 charset 编码方式; #(注意加分号)
改
alter database 数据库名 charset 编码方式;
查:查看数据库里面的格式
show create database 数据库; # 查看当前创建的数据库
show databases;(注意加 s ) # 查看所有的数据库
show tables; 查看数据库里面的内容
表(文件)的增删改查
数据库中的表也应该有不同的类型,表的类型不同,会对应mysql不同的存取机制,表类型又称为存储引擎。
即:储存引擎的不同,导致了表的不同。5.5版本以上默认使用innodb引擎
表的不同 导致表内存放的数据也要有不同的类型 每种数据类型都有自己的宽度,但宽度是可选的
show enginesG; # 查看所有支持的引擎
show variables like 'storage_engine%'; # 查看正在使用的存储引擎
use 数据库;#切换数据库
select database(); #查看当前所在文件夹
创建表
create table 表名(字段名1 类型[(宽度) 约束条件],字段名2 类型[(宽度) 约束条件]);
#注意:
1. 在同一张表中,字段名是不能相同;
2. 宽度和约束条件可选;
3. 字段名和类型是必须的
增
create table 表名(id int,name char); #注意这个表没有限制条件 即:id和name可以为空;
删
drop table 表名;
改:只能修改表的字段(即文件名;或者可以理解为表格的表头,想要修改内容只能针对记录(文件的内容)修改)
alter table 表 modify name char(6); # modify修改的意思 修改字段的长度
alter table 表 change name NAMA char(7); # 修改字段名,类型
alter table 表 default character set gbk; 修改默认字符集??
alter table 表 convert to character set gbk; 修改默认字符集??
alter table 表 add 字段,类型; # add 增加的意思 为 表 增加字段,类型
alter table 表 add 新添加 int(4) not null; 添加列
alter table 表 drop 要删除的项目; 删除列
查:
show tables; #查看所有的表
desc t1表; # 查看 t1表 的详细信息(推荐)
字段 类型 是否为空 默认。(空) 信息
+-------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| name | char(1) | YES | | NULL | |
+-------+---------+------+-----+---------+-------+
int 表示的是显示宽度 而不是存储宽度 我们使用默认的就可以 # zerofill 用0填充
char 表示的是字符的长度
show create table t1表; #查看当前的这张 t1表,比 desc 表 丑
记录(文件的内容)的增删改查
增
insert (into 可以不写) 表(id,name) values(1,"mjj01"),(2,"mjj02"),(3,"mjj03");
# 插入一条记录,规定id,name数据
请注意:表的类型中的char 括号里面的 数值 那是字符的长度
复制 (注意在哪里执行命令就复制到哪里)
完全复制:表的结构和记录(注意在哪里执行命令就复制到哪里)
create table 新的表(复制者) select * from 数据库.表(被复制者); 从 数据库.表 选择 所有 进行复制;
不完全复制:只复制表的结构 给一个where条件,条件要求不成立,则只拷贝表结构
create table 新的表(复制者) select * from 数据库.表(被复制者) where false;
从 数据库.表 选择 结构
删
delete from 表; 删除 表 里所有的记录
delete from 表 where id=2; 删除 表 里id为2的记录
若要删除多条,可用范围条件或OR
如
delete from student where id>100
delete from student where id=1 or id =2
甚至可以
delete from student where id<>2
这个表中只剩id=2的记录了
alter table t1 drop id; --》 删除单个字段。(不能全部删除,起码留一个)。
alter table b1 drop name,drop age; --》 删除多个字段。
改
update 表 set name='zhangsan';(请注意:表的类型中的char) 修改 表 里面的 所有的name
update 表 set name='alex' where id=2; 修改 表 里面的 id为2的name
查
select 选项 from 表.记录; 从 表.记录 中选择 选项 进行查找
select * from 表.记录; 从 表.记录 中选择 所有 进行查找