阅读量: 801
数据库基本操作
一、数据库定义
1.创建数据库
CREATE DATABASE [IF NOT EXISTS] 数据库名[CHARACTER set 'utf8mb4'];
2.修改数据库
# 修改字符编码
alter databases school character set 'gbk';
3.删除数据库
drop databases school;
二、对表操作
1.定义基本表
create teble 表名(列名 数据类型 [列级完整性约束条件],
列名 数据类型 [列级完整性约束条件],
……,
列名 数据类型 [表级完整性约束条件]);
2.数据类型
| 类型 |
大小 |
范围(有符号) |
范围(无符号) |
用途 |
| TINYINT |
1 Bytes |
(-128,127) |
(0,255) |
小整数值 |
| SMALLINT |
2 Bytes |
(-32 768,32 767) |
(0,65 535) |
大整数值 |
| MEDIUMINT |
3 Bytes |
(-8 388 608,8 388 607) |
(0,16 777 215) |
大整数值 |
| INT或INTEGER |
4 Bytes |
(-2 147 483 648,2 147 483 647) |
(0,4 294 967 295) |
大整数值 |
| BIGINT |
8 Bytes |
(-9,223,372,036,854,775,808,9 223 372 036 854 775 807) |
(0,18 446 744 073 709 551 615) |
极大整数值 |
| FLOAT |
4 Bytes |
(-3.402 823 466 E+38,-1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38) |
0,(1.175 494 351 E-38,3.402 823 466 E+38) |
单精度 浮点数值 |
| DOUBLE |
8 Bytes |
(-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) |
0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) |
双精度 浮点数值 |
| DECIMAL |
对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2 |
依赖于M和D的值 |
依赖于M和D的值 |
小数值 |
| 类型 |
大小 ( bytes) |
范围 |
格式 |
用途 |
| DATE |
3 |
1000-01-01/9999-12-31 |
YYYY-MM-DD |
日期值 |
| TIME |
3 |
'-838:59:59'/'838:59:59' |
HH:MM:SS |
时间值或持续时间 |
| YEAR |
1 |
1901/2155 |
YYYY |
年份值 |
| DATETIME |
8 |
'1000-01-01 00:00:00' 到 '9999-12-31 23:59:59' |
YYYY-MM-DD hh:mm:ss |
混合日期和时间值 |
| TIMESTAMP |
4 |
'1970-01-01 00:00:01' UTC 到 '2038-01-19 03:14:07' UTC结束时间是第 2147483647 秒,北京时间 2038-1-19 11:14:07,格林尼治时间 2038年1月19日 凌晨 03:14:07 |
YYYY-MM-DD hh:mm:ss |
混合日期和时间值,时间戳 |
| 类型 |
大小 |
用途 |
| CHAR |
0-255 bytes |
定长字符串 |
| VARCHAR |
0-65535 bytes |
变长字符串 |
| TINYBLOB |
0-255 bytes |
不超过 255 个字符的二进制字符串 |
| TINYTEXT |
0-255 bytes |
短文本字符串 |
| BLOB |
0-65 535 bytes |
二进制形式的长文本数据 |
| TEXT |
0-65 535 bytes |
长文本数据 |
| MEDIUMBLOB |
0-16 777 215 bytes |
二进制形式的中等长度文本数据 |
| MEDIUMTEXT |
0-16 777 215 bytes |
中等长度文本数据 |
| LONGBLOB |
0-4 294 967 295 bytes |
二进制形式的极大文本数据 |
| LONGTEXT |
0-4 294 967 295 bytes |
极大文本数据 |
3.示例
# 使用school数据库
use schol;
# 创建表
create table student
(Sno char(10) primary key, # 列级完整性,Sno是主码
Sname varchar(20) union, # Sname取唯一值,不允许重复
Ssex char(1),
Sage tinyint
);
# 显示该数据库下可用的表
show tables;
# 显示student表结构
desc student;
三、修改数据表
-
修改表名
alter table 表名 rename to 新表名;
-
添加字段
alter table 表名 add [column] 列名 约束条件;
-
修改字段
alter table 表名 change [column] 旧列名 新列名 约束条件;
-
修改字段类型
alter table 表名 modify [column] 列名 约束条件;
-
删除字段
alter table 表名 drop [column] 列名;
四、删除数据表
drop table 表名;
五、操作数据
1.插入数据
INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);
-
table_name 是要插入数据的表的名称。
-
column1, column2, column3, ... 是表中的列名。
-
value1, value2, value3, ... 是要插入的具体数值。
-
如果数据是字符型,必须使用单引号 ' 或者双引号 ",如: 'value1', "value1"。
-
如果每一列都插入数据,那么列名可以不写。
-
如果要插入多行数据,可以在VALUES中指定多组数值,用圆括号包裹,逗号分隔。
2.查询数据
SELECT column1, column2, ...
FROM table_name
[WHERE condition]
[ORDER BY column_name [ASC | DESC]]
[LIMIT number];
column1, column2, ... 是想要选择的列的名称,如果使用 * 表示选择所有列。
table_name 是要从中查询数据的表的名称。
WHERE condition 是一个可选的子句,用于指定过滤条件,只返回符合条件的行。
ORDER BY column_name [ASC | DESC] 是一个可选的子句,用于指定结果集的排序顺序,默认是升序(ASC)。
LIMIT number 是一个可选的子句,用于限制返回的行数。
SELECT DATABASE(); # 查看当前使用的数据库
3.更新数据
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;
table_name 是要更新数据的表的名称。
column1, column2, ... 是要更新的列的名称。
value1, value2, ... 是新的值,用于替换旧的值。
WHERE condition 是一个可选的子句,用于指定更新的行。如果省略 WHERE 子句,将更新表中的所有行。
4.删除数据
DELETE FROM table_name
WHERE condition;
table_name 是要删除数据的表的名称。
WHERE condition 是一个可选的子句,用于指定删除的行。如果省略 WHERE 子句,将删除表中的所有行。