类型 | 说明 |
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两个字节再加一个结尾字符也算一个字节
SQL语句用于维护管理数据库,宝库数据查询、数据更新、访问控制、对象管理等功能
分类 | 说明 |
DDL | 数据定义语言,用于创建数据库对象,如库、表、索引等 |
DML | 数据操纵语言,用于对表中的数据进行管理 |
DQL | 数据查询语言,用于从数据表中查找符合条件的数据记录 |
DCL | 数据控制语言,用于设置或者更改数据库用户或角色权限 |
(1)进入数据库
mysql -u root -p密码
-u 连接数据库的用户名
-p 后面跟的是连接数据库的密码(不能有空格)
(2)查看当前服务器中的数据库
SHOW DATABASES; #大小写不区分,分号“;”表示结束
(3)查看数据库中包含的表
USE 数据库名;
SHOW TABLES;
(4)查看表的结构(字段)
USE 数据库名;
DESCRIBE [数据库名.]表名;
可缩写成:DESC 表名;
(1)创建新的数据库
CREATE DATABASE 数据库名;
(2)创建新的表
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)删除指定的数据表
DROP TABLE [数据库名.]表名; #如不用USE进入库中,则需加上数据库名
(4)删除指定的数据库
DROP DATABASE 数据库名;
(1)向数据表中插入新的数据记录
insert into 表名(字段1,字段2,.....) values (字段一的值,字段2的值,......);
(2)查询数据记录
select 字段1,字段2,.... from 表名 [where 条件表达式];
select * from 表名; #查看表中所有数据
select 字段1,字段2,.... from 表名/G #以列表方式竖向显示
select * from 表名 limit 2; #只显示前两行
select * from 表名 limit 2,3; #显示第二行后的前三行
(3)修改、更新数据表中的数据记录
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)在数据表中删除指定的数据记录
DELETE FROM 表名 [WHERE 条件表达式];
例:
DELETE FROM kfc WHERE id=4;
(1)修改表名
ALTER TABLE 旧表名 RENAME 新表名;
例:
ALTER TABLE KFC RENAME AAA;
ALTER TABLE AAA RENAME KFC;
(2)扩展表结构(增加字段)
ALTER TABLE 表名 ADD address varchar(50) default ‘地址不详‘;
#default ‘地址不详‘:表示此字段设置默认值 地址不详;可与 NOT NULL 配合使用
(3)修改字段(列)名,添加唯一键
ALTER TABLE 表名 CHANGE 旧列名 新列名 数据类型 [unique key];
例:
ALTER TABLE KFC CHANGE name user_name varchar(10) unique key;
#CHANGE可修改字段名、数据类型、约束等所有项。
(4)删除字段
ALTER TABLE 表名 drop 字段名;
例:
ALTER TABLE KFC drop address;
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:字段数据不允许为空
主键:唯一,但不可为空值