当前位置: 首页 > news >正文

SQL命令一:SQL 基础操作与建表约束

目录

引言

一、SQL 基础命令

(一)数据库相关操作

(二)表格相关操作

(三)MySQL 常用数据类型

二、增删改查(CRUD)操作

(一)增加数据

(二)删除数据

(三)修改数据

(四)查询数据

三、建表约束

(一)非空约束(NK,not null)

(二)唯一约束(UK,unique)

(三)主键约束(PK,primary key)

(四)自动递增

(五)联合主键

(六)外键约束(FK,foreign key)

总结


引言

        在当今数字化时代,数据处理和管理变得至关重要。SQL(Structured Query Language,结构化查询语言)作为操作关系型数据库的核心工具,掌握它的基本命令和建表约束是迈向数据处理领域的关键一步。

一、SQL 基础命令

(一)数据库相关操作

  1. 登录 MySQL
    要与 MySQL 数据库进行交互,首先得登录到数据库系统。使用命令 mysql -u root -p 登录,其中 -u 后面跟着用户名,这里是 root-p 表示需要输入密码。输入密码后回车,就能成功登录。
  2. 查看所有数据库
    登录成功后,使用 show databases; 命令可以查看当前 MySQL 服务器上的所有数据库。例如,执行该命令后,可能会看到 information_schemamysqlperformance_schema 等系统自带数据库,以及你自己创建的数据库。
  3. 使用数据库
    若要对某个特定数据库进行操作,需先指定使用该数据库。使用 use +数据库名称; 语句,比如 use testdb;,就可以切换到名为 testdb 的数据库,后续操作都将在这个数据库中进行。
  4. 删除数据库
    当某个数据库不再需要时,可以使用 drop database +数据库名称; 命令将其删除。例如,drop database olddb; 会永久删除 olddb 数据库及其所有数据,此操作需谨慎执行。
  5. 创建数据库
    使用 create database +数据库名称; 命令创建新的数据库。例如,create database newdb; 会在服务器上创建一个名为 newdb 的数据库。还可以通过 show create database +数据库名称; 查看数据库的详细创建信息,包括编码设置等。比如 show create database newdb; 可能会显示如下结果:
+----------+----------------------------------------------------------------+
| Database | Create Database                                                |
+----------+----------------------------------------------------------------+
| newdb    | CREATE DATABASE `newdb` /*!40100 DEFAULT CHARACTER SET utf8mb4 */ |
+----------+----------------------------------------------------------------+

(二)表格相关操作

  1. 查看所有表格
    在选定的数据库中,使用 show tables; 命令可以查看该数据库下的所有表格。假设在 testdb 数据库中已经创建了 users 和 orders 表,执行该命令就会显示这两个表名。
  2. 创建表格
    创建表格使用 create table +表名+(字段1 类型(长度),字段2 类型(长度),字段3 类型(长度)) 语法。例如,创建一个 users 表,包含姓名、年龄和地址信息:
create table users (name varchar(10),age int(3),address varchar(50)
);
  1. 删除表格
    若要删除某个表格,使用 drop table +表名 命令。例如,drop table users; 会删除 users 表及其所有数据。
  2. 修改表结构
    • 删除列:使用 alter table t_user drop column name; 可以删除 t_user 表中的 name 列。
    • 添加列alter table t_user add column name varchar(10); 会在 t_user 表中添加一个名为 name 的 varchar(10) 类型的列。
    • 修改列alter table t_user change column name username varchar(15); 会将 t_user 表中的 name 列名改为 username,并将其数据类型修改为 varchar(15)
  3. 查看表格详细信息
    使用 desc +表名 命令可以查看表格的详细结构,包括字段名、数据类型、是否允许为空等信息。例如,desc users; 可能会显示如下结果:
+---------+-------------+------+-----+---------+-------+
| Field   | Type        | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| name    | varchar(10) | YES  |     | NULL    |       |
| age     | int(3)      | YES  |     | NULL    |       |
| address | varchar(50) | YES  |     | NULL    |       |
+---------+-------------+------+-----+---------+-------+

(三)MySQL 常用数据类型

  • 整数(int):用于存储整数数值,如年龄、数量等。例如,age int(3) 可以存储三位整数的年龄信息。
  • 小数(double):适用于需要高精度小数的场景,如商品价格。例如,price double(10, 2) 可以存储最多十位数字,其中小数部分占两位的价格信息。
  • 字符串(varchar):可存储可变长度的文本,如姓名、地址等。例如,name varchar(10) 可以存储最长为 10 个字符的姓名。
  • 日期(datetime):用于记录日期和时间信息,如订单创建时间、用户注册时间等。例如,create_time datetime 可以存储具体的日期和时间。

二、增删改查(CRUD)操作

(一)增加数据

  1. 方式一:添加所有字段
    可以使用 insert into 表格名称 values (字段1,字段2,字段3) 或 insert into 表格名称(全部字段)values (字段1,字段2,字段3); 语句插入数据。例如,向 users 表插入数据:
insert into users values ('张三', 20, '北京市');
insert into users (name, age, address) values ('李四', 22, '上海市');
  1. 方式二:挑一部分字段添加
    使用 insert into t_user (age,address) value (12,"beijing") 这种方式,只插入部分字段的数据。例如:
insert into users (name, age) values ('王五', 25);

(二)删除数据

  1. 物理删除:使用 delete from 表格名称 where 条件 语句。例如,删除 users 表中地址为 “北京市” 的记录:
delete from users where address = '北京市';

若要清空表格所有数据,去掉 where 条件,即 delete from users;
2. 逻辑删除:通常通过 update 语句实现。例如,在 users 表中添加一个 is_deleted 字段,将其值设为 1 表示已删除:

alter table users add column is_deleted tinyint(1) default 0;
update users set is_deleted = 1 where age = 22;

(三)修改数据

使用 update 表格名称 set 字段=修改的值 where 条件 语句。例如,将 users 表中姓名为 “王五” 的年龄修改为 26:

update users set age = 26 where name = '王五';

若要修改所有记录,去掉 where 条件,如 update users set age = age + 1; 会将所有用户的年龄加 1。

(四)查询数据

  • 查询所有数据:使用 select * from +表名 语句,例如 select * from users; 会返回 users 表的所有记录。
  • 查询特定字段:使用 select 字段1, 字段2 from 表名 语句,如 select name, age from users; 只查询姓名和年龄字段。
  • 使用别名:使用 select 字段1 别名, 字段2 别名 from 表名 语句,例如 select name 姓名, age 年龄 from users; 会将查询结果的列名显示为 “姓名” 和 “年龄”。
  • 去重查询:使用 distinct 关键字,如 select distinct address from users; 会查询出 users 表中不重复的地址。

三、建表约束

(一)非空约束(NK,not null)

非空约束用于确保字段不能为空值。创建表时,在字段定义后添加 not null。例如:

create table admins (id int(5),adminname varchar(10) not null,password varchar(20)
);

当尝试向 adminname 字段插入空值时,会报错 ERROR 1364(HY000):Field "adminname" doesn't have a default value。创建表后,也可以使用 alter table student1 change age age int( 3 ) not null; 来添加非空约束。

(二)唯一约束(UK,unique)

唯一约束保证字段值的唯一性。创建表时,可以将字段定义为 unique,例如:

create table persons (id int(5) unique,adminname varchar(10) not null,password varchar(20)
);

也可以通过指定名称创建唯一约束:

create table cats (id int(5),name varchar(10),password varchar(20),constraint uk_name unique(name)
);

创建表后,使用 alter table student1 change age age int( 3 ) Unique; 可添加唯一约束。

(三)主键约束(PK,primary key)

主键约束兼具非空和唯一的特性,是表中记录的唯一标识,一般将 id 编号设置为主键,且一张表至少有一个主键。例如:

create table cats (id int(5) primary key,name varchar(10),password varchar(20)
);

或者指定主键名称:

create table cats (id int(5),name varchar(10),password varchar(20),constraint pk_name primary key(id)
);

(四)自动递增

当主键为 int 类型时,常设置为自动递增。在 MySQL 中,创表时追加 AUTO_INCREMENT 即可实现。例如:

create table persons (id int(5) primary key AUTO_INCREMENT,name varchar(10),password varchar(20)
);

插入数据时无需指定 id,它会自动递增。如果删除了 id 为 3 的记录,再插入新记录时,id 会自动递增到 4。

(五)联合主键

当需要两个或两个以上字段共同约束非空和唯一时,可使用联合主键。例如:

create table cats (id int(5),name varchar(10),password varchar(20),constraint pk_name primary key(id, name)
);

只要 id 和 name 的组合不重复即可。

(六)外键约束(FK,foreign key)

外键约束用于建立表与表之间的关系,常见于一对多或多对多关系。例如,有 departments 表和 employees 表,员工属于某个部门,通过外键建立关联:

create table departments (department_id int(11) primary key,department_name varchar(50)
);create table employees (employee_id int(11) primary key,employee_name varchar(50),department_id int(11),constraint fk_department_id foreign key(department_id) references departments(department_id)
);

总结

        通过本文,我们学习了 SQL 的基础命令,包括数据库和表格的操作,以及数据的增删改查。同时,了解了建表约束的各种类型及其作用,这些约束能够确保数据的完整性和一致性。掌握这些知识是进一步学习 SQL 高级应用的基础。

相关文章:

  • 从车道检测项目入门open cv
  • 长短期记忆网络(LSTM)
  • 内核spi驱动流程图
  • 特征工程四-2:使用GridSearchCV 进行超参数网格搜索(Hyperparameter Tuning)的用途
  • HarmonyOS NEXT 诗词元服务项目开发上架全流程实战(一、项目介绍及实现效果)
  • [OS_9] C 标准库和实现 | musl libc | offset
  • 打印及判断回文数组、打印N阶数组、蛇形矩阵
  • 高炉项目中DeviceNET到Ethernet的转换奥秘
  • 基于STM32、HAL库的DS2401P安全验证及加密芯片驱动程序设计
  • mysql community 8.0.23升级到8.0.42再到8.4.5
  • 风力发电领域canopen转Profinet网关的应用
  • terraform local-exec与remote-exec详解
  • [OS] POSIX C库介绍
  • Java后端接口调用拦截处理:注解与拦截器的实现
  • 【线性规划】对偶问题的实际意义与重要性质 学习笔记
  • 大数据应用开发与实战(1)
  • 模板--进阶
  • 民办生从零学C的第十二天:指针(1)
  • 辛格迪客户案例 | 华道生物细胞治疗生产及追溯项目(CGTS)
  • Qt内置图标速查表
  • 中国人保不再设监事会,国寿集团未再设置监事长职务
  • “自己生病却让别人吃药”——抹黑中国经济解决不了美国自身问题
  • 马上评丨市长信箱“已读乱回”,群众在意的是什么
  • 跨海论汉|专访白馥兰:对中国农业史的兴趣,从翻译《齐民要术》开始
  • 解放日报头版头条:“五个中心”蹄疾步稳谱新篇
  • 人民日报:应对外贸行业风险挑战,稳企业就是稳就业