数据库基本操作

数据库基本操作

一、数据库定义

1.创建数据库

CREATE DATABASE [IF NOT EXISTS] 数据库名[CHARACTER set 'utf8mb4'];
  • 中括号内为可选参数
  • sql语句不区分大小写
  • 示例

    CREATE DATABASE IF NOT EXISTS school 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 子句,将删除表中的所有行。
上一篇
下一篇