一、MySQL数据库管理
1、常用的数据类型
类型 | 说明 |
int | 整型(定义整数类型数据) |
float | 单精度浮点,4字节32位,准确到小数点后六位 |
double | 双精度浮点,8字节64位 |
char | 固定长度的字符类型,定义字符类数据 |
varchar | 可变长度的字符类型 |
text | 文本 |
image | 图片 |
decimal (5,2) | 5个有效长度数字,小数点后面有2位,指定长度数组 |
Value | CHAR(4) | Storage | VARCHAR(4) | Storage Required |
' ' | ' ' | 4 bytes | ' ' | 1 byte |
'ab' | 'ab ' | 4 bytes | 'ab' | 3 bytes |
'abcd' | 'abcd' | 4 bytes | 'abcd' | 5 bytes |
'abcdefgh' | 'abcd' | 4 bytes | 'abcd' | 5 bytes |
(1)char为固定长度值,不足的以空格替代。
(2)varchar为可变值,最大为设置的长度值,当不足时,即为当前长度大小。
(3)例如:定义char(4)和varchar(4) ,当输入ab时,char的长度就为4,虽然不足,但是不足的部分
使用了空格进行补充;而varchar的长度就为3,因为ab两个字节再加一个结尾字符也算一个字节
2、SQL语句
SQL语句用于维护管理数据库,宝库数据查询、数据更新、访问控制、对象管理等功能
分类 | 说明 |
DDL | 数据定义语言,用于创建数据库对象,如库、表、索引等 |
DML | 数据操纵语言,用于对表中的数据进行管理 |
DQL | 数据查询语言,用于从数据表中查找符合条件的数据记录 |
DCL | 数据控制语言,用于设置或者更改数据库用户或角色权限 |
二、MySQL数据库(增删改查)
1、查看数据库结构
(1)进入数据库
1 2 3 | mysql -u root -p密码 -u 连接数据库的用户名 -p 后面跟的是连接数据库的密码(不能有空格) |
(2)查看当前服务器中的数据库
1 | SHOW DATABASES; #大小写不区分,分号“;”表示结束 |
(3)查看数据库中包含的表
1 2 | USE 数据库名; SHOW TABLES; |
(4)查看表的结构(字段)
1 2 3 | USE 数据库名; DESCRIBE [数据库名.]表名; 可缩写成:DESC 表名; |
2、创建及删除数据库和表
(1)创建新的数据库
(2)创建新的表
1 2 3 4 5 6 7 8 9 | CREATE TABLE 表名 (字段1 数据类型,字段2 数据类型[,...][,PRIMARY KEY (主键名)]); #主键一般选择能代表唯一性的字段不允许取空值(NULL),一个表只能有一个主键。 例: CREATE DATABASE jc; USE jc; CREATE TABLE kfc (id int NOT NULL,name char (10) NOT NULL,score decimal (5,2),passwd char (48) DEFAULT '' ,PRIMARY KEY (id)); DESC kfc; |
(3)删除指定的数据表
1 | DROP TABLE [数据库名.]表名; #如不用USE进入库中,则需加上数据库名 |
(4)删除指定的数据库
3、管理表中的数据记录
(1)向数据表中插入新的数据记录
1 | insert into 表名(字段1,字段2,.....) values (字段一的值,字段2的值,......); |
(2)查询数据记录
1 2 3 4 5 6 7 | select 字段1,字段2,.... from 表名 [ where 条件表达式]; select * from 表名; #查看表中所有数据 select 字段1,字段2,.... from 表名/G #以列表方式竖向显示 select * from 表名 limit 2; #只显示前两行 select * from 表名 limit 2,3; #显示第二行后的前三行 |
(3)修改、更新数据表中的数据记录
1 2 3 4 5 | UPDATE 表名 SET 字段名1=字段值1[,字段名2=字段值2] [WHERE 条件表达式]; 例: UPDATE kfc SET passwd=PASSWORD( '' ) WHERE name= 'zhangsan' ; UPDATE kfc SET name= 'wangxiaoer' ,passwd= '' WHERE id=3; |
(4)在数据表中删除指定的数据记录
1 2 3 4 | DELETE FROM 表名 [WHERE 条件表达式]; 例: DELETE FROM kfc WHERE id=4; |
4、修改表名和表结构
(1)修改表名
1 2 3 4 5 | ALTER TABLE 旧表名 RENAME 新表名; 例: ALTER TABLE KFC RENAME AAA; ALTER TABLE AAA RENAME KFC; |
(2)扩展表结构(增加字段)
1 2 | ALTER TABLE 表名 ADD address varchar(50) default '地址不详' ; #default '地址不详':表示此字段设置默认值 地址不详;可与 NOT NULL 配合使用 |
(3)修改字段(列)名,添加唯一键
1 2 3 4 5 | ALTER TABLE 表名 CHANGE 旧列名 新列名 数据类型 [unique key]; 例: ALTER TABLE KFC CHANGE name user_name varchar(10) unique key; #CHANGE可修改字段名、数据类型、约束等所有项。 |
(4)删除字段
1 2 3 4 | ALTER TABLE 表名 drop 字段名; 例: ALTER TABLE KFC drop address; |
5、扩展
1 2 3 4 5 6 7 8 9 10 11 12 | use 数据库名; create table if not exists aaa ( id int (5) zerofill primary key auto_increment, name varchar(10) not null , cid char (10) unique key; if not exists:检查要创建的表是否存在,不存在就创建 id int (5) zerofill:不满5位数,用0填充,例如00001 auto_increment:自增长字段,默认从1开始自动递增1,数据不可重复。自增长字段必须为主键,如果添加数据失败也会自动递增1 not null :字段数据不允许为空 主键:唯一,但不可为空值 |