查看数据库信息
show database
查看数据库中的表信息
use 数据库名 #切换到书库中
show tables
show tables in mysql
显示数据表的结构(字段)
describe user;
Field:字段名称
type:数据类型
Null :是否允许为空
Key :主键
Type:数据类型
Null :是否允许为空key :主键
Default :默认值
Extra :扩展属性,例如:标志符列(标识了种子,增量/步长)1 2
id:1 3 5 7
常用的数据类型:
int:整型 用于定义整数类型的数据
float:单精度浮点4字节32位 准确表示到小数点后六位
double:双精度浮点8字节64位
char:固定长度的字符类型 用于定义字符类型数据。 20字节 4
varchar:可变长度的字符类型 20 4
text:文本
image:图片
decimal(5,2):5个有效长度数字,小数点后面有2位 指定长度数组
#Char如果存入数据的实际长度比指定长度要小,会补空格至指定长度,如果存入的数据的实际长度大于指定长度,低版本会被截取,高版本会报错
主键是唯一的,但主键可以由多个字段构成
MySQL数据库的数据文件存放在/usr/local/mysql/data目录下,每个数据库对应一个子目录,用于存储数据表文件。每个数据表对应为三个文件,扩展名分别为“.frm”、“.MYD”和“.MYI”。
MYD”文件是MyISAM存储引擎专用,存放MyISAM表的数据。每一个MyISAM表都会有一个“.MYD”文件与之对应,同样存放于所属数据库的文件夹下,和“.frm”文件在一起。
“.MYI”文件也是专属于 MyISAM 存储引擎的,主要存放 MyISAM 表的索引相关信息。对于 MyISAM 存储来说,可以被 cache 的内容主要就是来源于“.MYI”文件中。每一个MyISAM 表对应一个“.MYI”文件,存放于位置和“.frm”以及“.MYD”一样。
MyISAM 存储引擎的表在数据库中,每一个表都被存放为三个以表名命名的物理文件
(frm,myd,myi)。 每个表都有且仅有这样三个文件做为 MyISAM 存储类型的表的存储,也就是说不管这个表有多少个索引,都是存放在同一个.MYI 文件中。
另外还有“.ibd”和 ibdata 文件,这两种文件都是用来存放 Innodb 数据的,之所以有两种文件来存放 Innodb 的数据(包括索引),是因为Innodb的数据存储方式能够通过配置来决定是使用共享表空间存放存储数据,还是独享表空间存放存储数据。独享表空间存储 方式使用“.ibd”文件来存放数据,且每个表一个“.ibd”文件,文件存放在和 MyISAM 数据相同的位置。如果选用共享存储表空间来存放数据,则会使用 ibdata 文件来存放,所有表共同使用一个(或者多个,可自行配置)ibdata 文件。
#NOT NULL 不允许为空值
#DEFAULT'' 默认值为空
PRIMARY KEY :主键一般选择没有重复并且不为空值的字段
删除指定的数据表
use 数据库名
DROP TABLE 表名
DROP TABLE [数据库名.] 表名;
#如不用USE进入库中,则需加上数据库名
删除指定的数据库
DROP DATABASE 数据库名;
DML管理表中的数据记录 ---- 数据操纵语言,用于对表中的数据进行管理,用来插入、删除和修改数据库中的数据
insert
update
delete
3、DQL查询数据记录
select
格式:
SELECT 字段名1,字段名2[,...] FROM 表名[WHERE 条件表达式];
示例:
SELECT * FROM zzz;
SELECT id,name,score FROM zzz WHERE id=2;
select name from zzz\G #以列表方式竖向显示
select * from info limit 2; #只显示头2行
select * from info limit 2,3; #显示第2行后的前3行
#修改、更新数据表中的数据记录
格式:
UPDATE 表名 SET 字段名1=字段值1[,字段名2=字段值2] [WHERE 条件表达式];
示例:
UPDATE zzz SET passwd=PASSWORD('') WHERE name='zhangsan';
UPDATE zzz SET name='wangxiaoer',passwd='' WHERE id=3;
数据表高级操作
扩展
在数据表中删除指定的数据记录
格式:
DELETE FROM 表名 [WHERE 条件表达式];
示例:
DELETE FROM zzz WHERE id=4;
4、DCL
修改表名和表结构
ALTER TABLE 旧表名 RENAME 新表名;
例:
ALTER TABLE zzz RENAME yyy;
ALTER TABLE yyy RENAME zzz;
扩展表结构(增加字段)
ALTER TABLE 表名 ADD address varchar(50) default '地址不详';
#default '地址不详':表示此字段设置默认值为地址不详,可与NOT NULL配合使用
ALTER TABLE yyy ADD address varchar(50) NOT NULL default '地址不详';
修改字段(列)名,添加唯一键
ALTER TABLE 表名 CHANGE 旧列名 新列名 数据类型 [unique key];
unique key:唯一键(特性:唯一,但可以为空,空值只允许出现一次)
Primary key:唯一且非空(主键一般选择能代表唯一性的字段不允许取空值(NULL),一个表只能有一个主键。)
ALTER TABLE yyy CHANGE name user_name varchar(10) unique key;
#CHANGE可修改字段名、数据类型、约束等所有项。
ALTER TABLE 表名 modify column 字段名 类型。
数据库中表 字段是varchar(30),修改类型可以用(谨慎修改类型,可能会导致原有数据出错)
删除字段
格式:
ALTER TABLE 表名 DROP 字段名;
示例:
ALTER TABLE yyy DROP passwd;
##案列扩展
use school;
create table if not exists info (
id int(4) zerofill primary key auto_increment, #指定主键的第二种方式
name varchar(10) not null,
cardid int(18) not null unique key,
hobby varchar(50));
------------------------------------------------------------------------------------------------------------------------
#if not exists:表示检测要创建的表是否已存在,如果不存在就继续创建
#int(4) zerofill:表示若数值不满4位数,则前面用"0"填充,例0001
#auto_increment:表示此字段为自增长字段,即每条记录自动递增1,默认从1开始递增;
自增长字段数据不可以重复;自增长字段必须是主键;如添加的记录数据没有指定此字段的值且添加失败也会自动递增一次
#unique key:表示此字段唯一键约束,此字段数据不可以重复:一张表中只能有一个主键,但是一张表中可以有多个唯一键
#not null:表示此字段不允许为NULL