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

面试康复训练-SQL语句

一,数据库操作

1查看所有库

show databases;    --查看所有库

2使用数据库

use 数据库名;  --使用数据库;

3查看当前使用数据库

select database(); --查看当前使用的数据库

4 创建数据库

create databse 数据库名 charset=utf8; --创建数据库

5删除数据库

drop database 数据库名; --删除数据库

6修改utf8,gbk等格式

alter database数据库名称 default charset=新的编码格式;

场景:导入数据库

source 具体地址/aresa.sql

一、导入前的准备工作

  1. 确认数据格式

    • SQL 文件:包含表结构和数据的 .sql 文件。

    • CSV/Excel 文件:结构化数据文件。

    • 其他数据库备份文件:如 MySQL 的 .dump、PostgreSQL 的 .pgdump

  2. 创建目标数据库和表结构

    • 如果导入的是纯数据文件(如 CSV),需先手动创建匹配的表结构。

    • 如果导入的是 SQL 文件,通常会自动创建表。

  3. 检查权限

    • 确保数据库用户有权限执行导入操作(如 FILE 权限、写入权限)。

二,常见错误

  1. 错误:Access denied for file import

    • 原因:数据库用户无文件读取权限。

    • 解决

      • MySQL:在 my.cnf 中设置 secure_file_priv = '' 并重启服务。

      • PostgreSQL:使用 \copy 代替 COPY

  2. 错误:Incorrect datetime format

    • 原因:CSV 中的日期格式与数据库不匹配。

    • 解决:预处理数据或指定格式:

二,数据表操作

1查看所有表

show tables;

2查看表结构

desc 表名;

3创建表

create table 表名 (
    
    字段,类型,约束,

    字段,类型,约束
)
                                
--int unsigned 无符号整形
--auto_increment 自动增长
--not null 不能为空
--parmary key 表示主键
--default 默认值

例
CREATE TABLE `teachers` (
`Tid` varchar(11) NOT NULL,
`Tname` varchar(20) DEFAULT NULL,
PRIMARY KEY (`Tid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

4查看建表语句

show create table 表名;

5修改表-添加字段

alter table 表名 add 列名 类型;

6修改表-修改字段,不重命名

alter table 表名 modify 列名 类型及约束

7修改表-修改字段-重命名

alter table 表名 change 字段原名字 字段新名字 类型及约束

8修改表-删除字

alter table 表名 drop 列名 

9删除表,库

drop table 表名;
drop databese 数据库名;

三,数据表的CURD

一 C-插入操作

1全列插入,多行插入

insert into 表名 (字段1,字段2) values (值1,值2);
例子
INSERT INTO students (name, sex, hometown, age, class, card)
VALUES ('王昭君', '女', '北京', '20', '1班', '340322199001247654'),
('诸葛亮', '男', '上海', '18', '2班', '340322199002242354'),
( '张飞', '男', '南京', '24', '3班', '340322199003247654'),
( '白起', '男', '安徽', '22', '4班', '3403221 99005247654');

省略写法,值对应上就行。
INSERT INTO courses
VALUES ('1', '数据库'),
('2', 'qtp'),
('3', 'linux'),
('4', '系统测试');

主键字段可用0 null,default,占位。

二 U-改操作

1全部修改

update 表名 set 字段 = 值;

2按条件修改

update 表名 set 字段 = 值  where 条件

update students set age = 18 where name='百里守约'

3按条件修改多个值

update student set gender = 4,high =1.80 where id = 3;

三 D-删除操作

1物理删除

delete from 表名 where 条件;

delete from student where id =4;

2逻辑删除

--用一个字段标识是否删除
--给student表添加一个is_delete字段bit类型。
--alter table 表名 add 字段 类型 default 默认值

alter table students add is_delete bit defalult 0;

四 R-查看(读)操作

1查询所有字段

select * from 表名

2查询指定字段

select 列1,列2 from 表名;

3使用as给字段起别名

select 字段 as 别名 from 表名;
select name as "名字",age from students;

4 distinct字段,消除重复行

select distinct gender from students;

5条件查询-比较运算符 > ,<, >= , <=

select * from students where age > 18;
select * from students where age < 18;
select * from students where age >= 18;
select * from students where age >= 18;
-- !=和 <>均表示不等于,使用较少,了解即可
SELECT * FROM users WHERE age != 30;
SELECT * FROM users WHERE age <> 30;

6条件查询-逻辑运算符and ,or,not

-- and,18和28之间的学生信息
select * from students where age>18 and age<28;

--and ,18岁以上女性
select * from students where age>18 and gender="女";

--or 18以上或者身高180以上
select * from students where age >18 or height>=180;
 
--not 不在18岁以上的女性
select * from students where not(age>18 and gender="女")

7条件查询-模糊查询like%__

--like
--%替换任意个, _ 替换一个

--查询姓名中,以‘小’开头的名字
select * from students where name like'小';

--查询姓名中有‘小’字的所以名字;
select * from students where name like'%小%';

--查询有2个字的名字
select * from students where name like '__';

--查询至少有2个字的名字
select * from students where name like'__%';
select * from students where name not like '__';

8条件查询-范围查询in, not in, between ... and ...

--in(1,3,8)表示在一个非连续范围内
--查询年龄为18或35的名字
select * from students where age in (18,35);
select * from students where age>18 or age<35;
--not in 不在范围内
--查询年龄为18或35的名字
select * from students where age not in (18,35);

--between and在连续范围之间
--查询年龄在18到36之间的信息;
select * from students where age between 18 and 34;
select * from students where age >18 and age<35 ;

9空判断is null

--判空
--查询身高信息为空的信息
select * from student where heigh is null;

--判非空

select * from student where heigh  is not null;

10条件查询-排序order by

11条件查询-聚合函数count max min sum avg  round

12条件查询-分页分组

13条件查询左链接 left join , inner join

四, 进阶一  分页查询limit关键字

SELECT * FROM 表名
ORDER BY 排序字段  -- 分页必须明确排序规则
LIMIT 每页数量 OFFSET 偏移量;

相关文章:

  • RIP实验
  • CloudStack安装部署
  • 【10】高效存储MongoDB的用法
  • 长列表局部渲染(监听window滚动),wndonw滚动同理
  • Learn:C++ Primer Plus Chapter13
  • ChainLit快速接入DeepSeek实现一个深度推理的网站应用图文教程-附完整代码
  • Swift 并发任务的协作式取消
  • Mysql 安装教程和Workbench的安装教程以及workbench的菜单栏汉化
  • Python 常用内建模块-itertools
  • HTML(超文本标记语言)
  • Python FastApi(2):基础使用
  • 【SpringBoot】MorningBox小程序的完整后端接口文档
  • 第3章 Internet主机与网络枚举(网络安全评估)
  • Python 爬取 1688 详情接口数据返回说明
  • Mysql架构理论部分
  • github代理 | 快速clone项目
  • 简单理解机器学习中top_k、top_p、temperature三个参数的作用
  • 前端开发:Vue以及Vue的路由
  • AsyncHttpClient使用说明书
  • Android Compose 切换按钮深度剖析:从源码到实践(六)
  • 王毅谈中拉论坛第四届部长级会议重要共识
  • 京东一季度净利增长五成,营收增速创近三年新高,称外卖业务取得显著进展
  • 外交部:正确认识和对待历史是检验日本能否恪守和平发展承诺的重要标准
  • 英国首相斯塔默住所起火,警方紧急调查情况
  • 新华时评:中美经贸会谈为全球经济纾压增信
  • “无锡景・江南韵”:中国评弹艺术在尼日利亚收获众多粉丝